Project wire on surface

Hi,

I am trying to project a wire on a face that is smaller than the wire with BRepProj_Projection(wire, face, direction). But the projection is cut off at the limits of the face. So after searching everywhere I could not find a way to project the wire on the underlying surface of the face. In older versions there seems to have been a fourth parameter to the BRepProj_Projection that had to do with ignoring the face limits, but it isn't there any more.

Any ideas?
Thanks!

George Feng's picture

Maybe you can create a face from the surface oh the projected face, then you can make the prjection.

jrheinlaender's picture

No, BRepProj_Projection won't accept unlimited faces, it gives me "infinite parameter" error

Alexander Schneller's picture

Hi Jan,

try these classes:

1) BRepAlgo_NormalProjection

2) BRepOffsetAPI_NormalProjection
void SetLimit (const Standard_Boolean FaceBoundaries=Standard_True)
Manage limitation of projected edges.

3) ProjLib_ProjectedCurve

I think 2) is the class you are looking for.

Regards
Alex

jrheinlaender's picture

Hi Alex,

1) and 2) as far as I can see do not offer the option of defining a projection direction. Since I want to project onto a curved surface (not a plane) I am not sure whether the result can be correct without defining a projection direction.

3) I couldn't find any documentation for on http://opencascade.sourcearchive.com/documentation/6.3.0.dfsg.1-1/classe...

Regards,
Jan

Alexander Schneller's picture

Hi Jan,

sorry I missed that you want to specify the direction.
I thought you only need the flag for the limits.

3) ProjLib_ProjectedCurve I have found at Doxygen of version 6.5.2 but in this class it is also not possible to specify a direction.

If I should find something I'll write it in the Forum.

Regards,
Alex

jrheinlaender's picture

I have a wire on a plane which I want to project onto a curved (arbitrary shaped) surface. So I am not sure that the automatically selected projection direction will be what I intend. The direction should be normal to the plane, but from the documentation I suspect that it will be normal to the surface?