And this write the spline as entity 126 to the IGES file
If I look at IGESCAFControl_Reader for reading the spline, typically a TopoDS_Shape is returned, so in the case of a spline you would get a wire.
But I would like to get the original spline back: poles, breaks,....
I did find some traces back
IGESConvGeom::SplineCurveFromIGES can be used to convert IGESData_IGESEntity to Geom_BSplineCurve, so that is getting close to what I want.
How can I get all the IGESData_IGESEntity out of my iges file?
IGESControl_Reader::IGESModel returns only 1 Entity.
Discussion
1 archived reply
Posts are displayed in their archived order.
01Author
Did a bit of further research and came up with this
IGESControl_Reader aReader;
IFSelect_ReturnStatus stat = aReader.ReadFile(FilePath);
if (stat != IFSelect_RetDone)
return false;
Handle(IGESData_IGESModel) IgesDataModel = aReader.IGESModel();
IGESToBRep_BasicCurve Convertor;
for (int i=1;i<=IgesDataModel->NbEntities();i++)
{
Handle(IGESData_IGESEntity) IgesEntity = IgesDataModel->Entity(i);
Handle(IGESGeom_BSplineCurve) hIGESSpline = Handle(IGESGeom_BSplineCurve)::DownCast(IgesEntity);
if (hIGESSpline)
{
Handle(Geom_Curve) hGeomCurve = Convertor.TransferBSplineCurve(hIGESSpline);
if (hGeomCurve)
{
m_hBSpline = Handle(Geom_BSplineCurve)::DownCast(hGeomCurve);
if (m_hBSpline)
return true;
}
}
}