Work on unit issues with step and iges files

This commit is contained in:
aothms
2015-12-01 11:14:50 +01:00
parent b6e2d78bfa
commit e62ce005dc
3 changed files with 8 additions and 0 deletions
+1
View File
@@ -46,6 +46,7 @@ public:
void setUnitNameAndMagnitude(const std::string& name, float magnitude) {
const char* symbol = getSymbolForUnitMagnitude(magnitude);
if (symbol) {
Interface_Static::SetCVal("xstep.cascade.unit", symbol);
Interface_Static::SetCVal("write.iges.unit", symbol);
}
}
@@ -42,6 +42,12 @@ void OpenCascadeBasedSerializer::write(const IfcGeom::BRepElement<double>* o) {
const gp_Trsf& o_trsf = o->transformation().data();
gtrsf.PreMultiply(o_trsf);
if (o->geometry().settings().convert_back_units()) {
gp_Trsf scale;
scale.SetScaleFactor(1.0 / o->geometry().settings().unit_magnitude());
gtrsf.PreMultiply(scale);
}
const TopoDS_Shape& s = it->Shape();
+1
View File
@@ -52,6 +52,7 @@ public:
void setUnitNameAndMagnitude(const std::string& name, float magnitude) {
const char* symbol = getSymbolForUnitMagnitude(magnitude);
if (symbol) {
Interface_Static::SetCVal("xstep.cascade.unit", symbol);
Interface_Static::SetCVal("write.step.unit", symbol);
}
}