【问题标题】:Classifying TopoDS_Edge objects in opencascade在 opencascade 中对 TopoDS_Edge 对象进行分类
【发布时间】:2020-03-11 03:04:16
【问题描述】:

我遇到了一些 IGES/STEP 模型的挑战,我的代码无法根据边缘的基础分类对面进行分类,即边缘是直线(非有理 B 样条曲线)还是弧(有理 B 样条曲线)曲线)。我一直在使用下面的代码(适用于某些模型):

edgex.setIsRational(BRepAdaptor_Curve(edge).IsRational());

,其中 edge 是 TopoDS_Edge 而 edgex 是自定义 Edge 对象。 我也尝试了以下代码,但它在第二行使程序崩溃:

BRepAdaptor_Curve curve = BRepAdaptor_Curve(edge);
Handle_Geom_BSplineCurve spline = curve.BSpline();
edgex.setIsRational(spline.IsRational())

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

【问题讨论】:

    标签: opencascade


    【解决方案1】:

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

    【讨论】:

    • 谢谢。对于 GeomAbs_BSplineCurve 类型,我还必须测试曲线是否合理。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-05-29
    • 1970-01-01
    • 2019-10-31
    • 1970-01-01
    • 2020-12-12
    • 2022-12-14
    • 1970-01-01
    相关资源
    最近更新 更多