Check if wires are coplanar
This commit is contained in:
committed by
Marcus Boyd
parent
7546866159
commit
39e60f6e48
@ -2095,12 +2095,21 @@ class Face(Shape):
|
||||
Makes a planar face from one or more wires
|
||||
"""
|
||||
|
||||
# check if wires are coplanar
|
||||
ws = Compound.makeCompound([outerWire] + innerWires)
|
||||
if not BRepLib_FindSurface(ws.wrapped, OnlyPlane=True).Found():
|
||||
raise ValueError("Cannot build face(s): wires not planar")
|
||||
|
||||
face_builder = BRepBuilderAPI_MakeFace(outerWire.wrapped, True)
|
||||
|
||||
for w in innerWires:
|
||||
face_builder.Add(w.wrapped)
|
||||
|
||||
face_builder.Build()
|
||||
|
||||
if not face_builder.IsDone():
|
||||
raise ValueError(f"Cannot build face(s): {face_builder.Error()}")
|
||||
|
||||
face = face_builder.Shape()
|
||||
|
||||
return cls(face).fix()
|
||||
|
@ -3087,6 +3087,10 @@ class TestCadQuery(BaseTest):
|
||||
delta.toTuple(), (0.0, 0.0, 2.0 * h), decimal_places
|
||||
)
|
||||
|
||||
# check that non-conplanar extrusion raises
|
||||
with self.assertRaises(ValueError):
|
||||
Workplane().box(1, 1, 1).faces().circle(0.1).extrude(0.1)
|
||||
|
||||
def testTaperedExtrudeCutBlind(self):
|
||||
|
||||
h = 1.0
|
||||
|
Reference in New Issue
Block a user