我遇到了一些 IGES/STEP 模型的挑战,我的代码无法根据边缘的基础分类对面进行分类,即边缘是直线(非有理 B 样条曲线)还是弧(有理 B 样条曲线)。我一直在使用下面的代码(适用于某些模型):
edgex.setIsRational(BRepAdaptor_Curve(edge).IsRational());
,其中边缘是 TopoDS_Edge 而 edgex 是自定义边缘对象。我也尝试了以下代码,但它在第二行使程序崩溃:
BRepAdaptor_Curve curve = BRepAdaptor_Curve(edge);
Handle_Geom_BSplineCurve spline = curve.BSpline();
edgex.setIsRational(spline.IsRational())
请您提供更好的方法或解决我的解决方案。先感谢您。