Fix can't pad a sketch on datum plane (#14397)

* Fix can't pad a sketch on datum plane

* Add a unit test for Pad a sketch on datum plane
This commit is contained in:
Florian Foinant-Willig
2024-06-10 18:21:32 +02:00
committed by GitHub
parent 430594ef81
commit 0b4e01047f
2 changed files with 20 additions and 2 deletions

View File

@@ -708,7 +708,7 @@ App::DocumentObjectExecReturn* FeatureExtrude::buildExtrusion(ExtrudeOptions opt
prism = refineShapeIfActive(prism);
this->AddSubShape.setValue(prism);
if (!base.isNull() && fuse) {
if (base.shapeType(true) <= TopAbs_SOLID && fuse) {
prism.Tag = -this->getID();
// Let's call algorithm computing a fuse operation:

View File

@@ -37,7 +37,7 @@ class TestPad(unittest.TestCase):
self.Doc.recompute()
self.assertEqual(len(self.Pad.Shape.Faces), 6)
def testSketchOnPlane(self):
def testSketchOnBasePlane(self):
self.Body = self.Doc.addObject('PartDesign::Body','Body')
self.PadSketch = self.Doc.addObject('Sketcher::SketchObject','SketchPad')
self.PadSketch.AttachmentSupport = (self.Doc.XY_Plane, [''])
@@ -51,6 +51,24 @@ class TestPad(unittest.TestCase):
self.Doc.recompute()
self.assertEqual(len(self.Pad.Shape.Faces), 6)
def testSketchOnDatumPlane(self):
self.Body = self.Doc.addObject('PartDesign::Body','Body')
self.DatumPlane = self.Doc.addObject('PartDesign::Plane','DatumPlane')
self.DatumPlane.AttachmentSupport = (self.Doc.XY_Plane, [''])
self.DatumPlane.MapMode = 'FlatFace'
self.Body.addObject(self.DatumPlane)
self.PadSketch = self.Doc.addObject('Sketcher::SketchObject','SketchPad')
self.PadSketch.AttachmentSupport = (self.DatumPlane, [''])
self.PadSketch.MapMode = 'FlatFace'
self.Body.addObject(self.PadSketch)
TestSketcherApp.CreateSlotPlateSet(self.PadSketch)
self.Doc.recompute()
self.Pad = self.Doc.addObject("PartDesign::Pad","Pad")
self.Pad.Profile = self.PadSketch
self.Body.addObject(self.Pad)
self.Doc.recompute()
self.assertEqual(len(self.Pad.Shape.Faces), 6)
def testPadToFirstCase(self):
self.Body = self.Doc.addObject('PartDesign::Body','Body')
# Make first offset cube Pad