0

我遇到了一些 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())

请您提供更好的方法或解决我的解决方案。先感谢您。

4

1 回答 1

1

您可以使用该BrepAdaptor::GetType()方法来确定曲线的类型。显然,第二行中的崩溃发生在边缘不是 BSpline 曲线,并且该BrepAdaptor::BSpline()方法创建了一个副本,并且没有任何东西可以制作它。

于 2020-03-10T19:04:16.290 回答