1
0
mirror of https://git.dev.opencascade.org/repos/occt.git synced 2025-08-09 13:22:24 +03:00

0025092: COMPSOLIDs are not exported to STEP

Now COMPSOLID is translated like a set of SOLIDs.

Test cases for issue CR25092
This commit is contained in:
ika
2014-07-24 13:06:30 +04:00
committed by bugmaster
parent 9cc773b5ad
commit 846c92e0f5
2 changed files with 27 additions and 4 deletions

View File

@@ -827,14 +827,23 @@ Handle(Transfer_Binder) STEPControl_ActorWrite::TransferShape (const Handle(Tran
else if (theShape.ShapeType() == TopAbs_FACE) {
RepItemSeq->Append(TopoDS::Face(theShape));
}
else if (theShape.ShapeType() == TopAbs_COMPSOLID) {
FP->AddWarning(start,"NonManifold COMPSOLID was translated like a set of SOLIDs");
if ( GroupMode() > 0)
return TransferCompound(start, SDR0, FP);
else {
TopExp_Explorer SolidExp;
for (SolidExp.Init(theShape, TopAbs_SOLID);
SolidExp.More();SolidExp.Next()) {
RepItemSeq->Append(TopoDS::Solid(SolidExp.Current()));
}
}
}
else if (mymode != STEPControl_GeometricCurveSet && mymode != STEPControl_AsIs) {
FP->AddFail(start,"The Shape is not a SOLID, nor a SHELL, nor a FACE");
return binder;
}
else if (theShape.ShapeType() == TopAbs_COMPSOLID) {
FP->AddWarning(start, "COMPSOLID is not exported yet");
return binder;
}
else RepItemSeq->Append (theShape);
// COMPUTING 3D TOLERANCE