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:
committed by
GitHub
parent
430594ef81
commit
0b4e01047f
@@ -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:
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user