У меня проблемы с некоторыми моделями IGES / STEP, в которых мой код не может классифицировать грани на основе базовой классификации ребер, т. Е. Является ли ребро прямой линией (нерациональная кривая Bspline) или ar c (рациональная кривая Bspline). Я использовал код ниже (который работает для некоторых моделей):
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())
Можете ли вы помочь с лучшим методом или исправить мои решения. Заранее спасибо.