curve on surface "parallel" to edge

I have a face which is a BSplineSurface.
I want to find a curve that belong to the surface and is at a fixed distance from an edge. The distance have to be computed on the surface.

There is an native method in OpenCascade to perform this task?

Gerhard Hofmann's picture

this is geometrically not very well defined. The distances in the u/v parametric space of the surface is not directly related to the distances in the 3d space. That is why "BRepOffsetAPI_MakeOffset" only works on planar surfaces. Maybe you could take the 2d parametric curve of the edge on the BSplineSurface, put it on a plane and use "BRepOffsetAPI_MakeOffset".
More geomerically exact would be the following: Make a pipe with a circle with the required radius (fixed distance) along the edge and get the intersection curve of the pipe with your BSplineSurface.
But if "the distance have to be computed on the surface" there will probably be no other way than finding sample points by iterating and connecting these points with a BSpline.
best regards

Marco Matt's picture

Thanks for your suggestions.

The idea to use sample points and an iterative method was also my best hypothesis.