OpenCascade: чтение урезанных поверхностей из IGES - PullRequest
0 голосов
/ 21 октября 2018

Я пытаюсь прочитать обрезанные поверхности из файла IGES, используя OpenCascade.Я могу получить поверхности, но как я могу получить кривые обрезки. Границы от чего-то вроде Entity 144?Любая помощь будет отличной.Я ищу фактическую геометрию, которая определяет кривую обрезки в параметрическом пространстве обрезаемой поверхности.

IGESControl_Reader reader; 
IFSelect_ReturnStatus stat = reader.ReadFile("144-000.igs"); 

Handle(TColStd_HSequenceOfTransient) facesList = reader.GiveList("iges-faces");
reader.TransferRoots();

Standard_Integer nbs = reader.NbShapes();
cout << nbs << endl;
for (int i = 1; i <= nbs; i++) {
  TopoDS_Shape shape = reader.Shape(i);

  TopoDS_Face& face = TopoDS::Face(shape);

  Handle(Geom_Surface) surf = BRep_Tool::Surface(face);
  Handle(Geom_BSplineSurface) bsplineSurf = GeomConvert::SurfaceToBSplineSurface(surf);

  cout << bsplineSurf->UDegree() << " " << bsplineSurf->VDegree() << endl;
}

1 Ответ

0 голосов
/ 22 октября 2018

вы пробовали TopExp_Explorer, чтобы исследовать форму и получить провода / края, а затем получить из нее кривую?

...