For all issues regarding the Forums use, please, refer to the Forum Rules.

Our Solutions

Need professional assistance?
Consider our:

Support Offerings


Need to speed up your development?
Have a look at our:

Samples & Tools


Need some functionality extending standard OCCT capabilities?
Check out our:

Adv. Components

BRep_Builder::Infinite Parameter for BRepFeat_MakePrism

Jan Rheinländer's picture


I am getting the above error message. This is what I am doing. I have:

a) a circular wire
b) a cylindrical face (just a segment, not the whole cylinder)
and I want to project the wire on the surface (not on the face because that is smaller than the wire)

1. Get unlimited surface of face: BRepAdaptor_Surface adapt(face, Standard_False);
2. Iterate through all edges of the wire (there is only one, of course)
3. Get curve of edge: BRep_Tool::Curve(edge, min, max);
4. Extrude curve: Geom_SurfaceOfLinearExtrusion(curve, dir);
5. Intersect extruded curve with surface: GeomAPI_IntSS intersector(extrudedCurve, surface, Precision::Confusion());
6. Build edges from intersection lines: BRepBuilderAPI_MakeEdge mkEdge (intersector.Line(i));
7. Build projected wire from edges: mkWire.Add(TopoDS::Edge(mkEdge.Shape()));
8. Build projected face from wire: BRepBuilderAPI_MakeFace mkFace(adapt.Surface().Surface(), projectedWire);

This all works fine. But when I use the projected face for
I get the BRep_Builder::Infinite Parameter error.

Just the projected wire itself looks fine, though I noticed that is is built of 3 segments (2 quarters, one half). The face builds fine but is not displayed in my application (!). So it seems that this face is the problem, but I don't know how to find what is wrong with it if it is not displayed...

FYI, if I use
BRepProj_Projection proj(wire, face, dir)
everything is fine but of course this only works if the projected wire fits inside the face.

Do I need to ShapeFix() the face somehow? If yes, how?

Thanks for any help!