У меня возникают проблемы с некоторыми моделями IGES/STEP, где мой код не может классифицировать грани на основе базовой классификации ребер, т.е. является ли ребро прямой линией (нерациональная кривая B-сплайна) или дугой (рациональная кривая B-сплайна). Я использовал приведенный ниже код (который работает для некоторых моделей):
edgex.setIsRational(BRepAdaptor_Curve(edge).IsRational());
, где ребро — это TopoDS_Edge, а edgex — это настраиваемый объект Edge. Я также попробовал следующий код, но он приводит к сбою программы во второй строке:
BRepAdaptor_Curve curve = BRepAdaptor_Curve(edge);
Handle_Geom_BSplineCurve spline = curve.BSpline();
edgex.setIsRational(spline.IsRational())
Не могли бы вы помочь с лучшим методом или исправить мои решения. Заранее спасибо.