diff --git a/libsrc/occ/python_occ_shapes.cpp b/libsrc/occ/python_occ_shapes.cpp index bd265ca7..6908fe5f 100644 --- a/libsrc/occ/python_occ_shapes.cpp +++ b/libsrc/occ/python_occ_shapes.cpp @@ -633,8 +633,12 @@ public: { TopoDS_Wire wire = wires.back(); wires.pop_back(); - BRepOffsetAPI_MakeOffset builder; - builder.AddWire(wire); + + // handle wires containing a single edge correctly, see + // https://dev.opencascade.org/content/brepoffsetapimakeoffset-open-topodswire + BRepBuilderAPI_MakeFace makeFace{gp_Pln{axes}}; + makeFace.Add(wire); + BRepOffsetAPI_MakeOffset builder(makeFace.Face()); builder.Perform(d); auto shape = builder.Shape(); wires.push_back (TopoDS::Wire(shape.Reversed()));