Produce a solid from offset of a free form face

Hi

The documentation states that BRepOffsetAPI_MakeOffsetShape()can not produce a result if the underlying geometry of S is BSpline. I have tried with Bezier surfaces and I also don´t manage to produce a result. Is it supposed to be like this ? And if so, what are the alternatives to generate a solid from the offset of a face with a free form ?

Igor Feoktistov's picture

Hi,

perhaps, documentation is a bit obsolete for that topic.

Really it is possible to make offset for BSpline geometry of faces, but it is necessary to take in account some points:

1. offset surface cannot be build if initial surface has C0 continuity. Because of offset surface has continuity n-1, if initial surface has continuity n, continuity of initial surface has to be enough to provide at least C1 for offset surface (to avoid problems with calculations of derivatives).

2. If offset value is positive (case when offset sape covers initial shape) join type must be only GeomAbs_Arc, because extension of BSpline surface is not defined.

Best regards, Igor

m-ventura's picture

Hi Igor

Thank you for your quick reply. I still don't manage to obtain a solid from the offset of a given face generated from a BSpline surface. Maybe you could comment on the folowing piece of code I am using:

// Convert BSURFACE to BSplineSurface Handle(Geom_BSplineSurface) bsplSurf = .....

// Convert BSpline surface to face TopoDS_Face Fs = BRepBuilderAPI_MakeFace( bsplSurf );

TopoDS_Shape Ss = BRepOffsetAPI_MakeOffsetShape(

Fs,

thickness,

1.0e-6,

BRepOffset_Skin,

Standard_False,

Standard_False,

GeomAbs_Arc ); .....

Thank you in advance for your help.

Best regards, Manuel Ventura