Tue, 12/23/2025 - 10:38
Forums:
static TopoDS_Shape readModel(const std::string& filepath)
{
STEPControl_Reader stepReader;
IFSelect_ReturnStatus ret = stepReader.ReadFile(filepath.c_str());
Standard_Integer count = stepReader.TransferRoots();
Standard_Integer shapeCount = stepReader.NbShapes();
TopoDS_Shape stepShape = stepReader.OneShape();
return stepShape;
}
int main()
{
std::cout << "OCCT Version: " << OCC_VERSION_STRING << std::endl; // OCCT Version: 7.9
TopoDS_Shape model = readModel("./11.step");
BRepCheck_Analyzer ana(model);
std::cout << "isValid:" << ana.IsValid() << std::endl; // isValid:1
ShapeUpgrade_UnifySameDomain unify(model);
unify.Build();
TopoDS_Shape res = unify.Shape();
}the model is valid.
When executing Build(), the program got stuck in an infinite loop. The infinite loop occurs in the RelocatePCurvesToNewUorigin function.
Tue, 12/23/2025 - 12:58
Infinite Loop in 7.9.1
7.9.3 is ok.It unified the cone face,but still have a piece of cylinder face. What may cause this result?