From 38ae53ea046aa137aafc29b7c4b2d4bcdd11ff37 Mon Sep 17 00:00:00 2001 From: Kurt Kremitzki Date: Thu, 15 Jun 2017 01:25:12 -0500 Subject: [PATCH] Complete PartDesign::Pad test cases --- src/Mod/PartDesign/TestPartDesignApp.py | 117 +++++++++++++++++++++++- src/Mod/Sketcher/TestSketcherApp.py | 4 +- 2 files changed, 118 insertions(+), 3 deletions(-) diff --git a/src/Mod/PartDesign/TestPartDesignApp.py b/src/Mod/PartDesign/TestPartDesignApp.py index 4a7bd2fdd9..d28837037e 100644 --- a/src/Mod/PartDesign/TestPartDesignApp.py +++ b/src/Mod/PartDesign/TestPartDesignApp.py @@ -47,10 +47,125 @@ class PartDesignPadTestCases(unittest.TestCase): self.Doc.recompute() self.failUnless(len(self.Pad.Shape.Faces) == 6) + def testPadToFirstCase(self): + self.Body = self.Doc.addObject('PartDesign::Body','Body') + # Make first offset cube Pad + self.PadSketch = self.Doc.addObject('Sketcher::SketchObject', 'SketchPad') + self.Body.addObject(self.PadSketch) + TestSketcherApp.CreateRectangleSketch(self.PadSketch, (0, 1), (1, 1), True) + self.Doc.recompute() + self.Pad = self.Doc.addObject("PartDesign::Pad", "Pad") + self.Body.addObject(self.Pad) + self.Pad.Profile = self.PadSketch + self.Pad.Length = 1 + self.Doc.recompute() + # Make second pad on different plane and pad to first + self.PadSketch1 = self.Doc.addObject('Sketcher::SketchObject', 'SketchPad1') + self.Body.addObject(self.PadSketch1) + self.PadSketch1.MapMode = 'FlatFace' + self.PadSketch1.Support = (App.ActiveDocument.XZ_Plane, ['']) + self.Doc.recompute() + TestSketcherApp.CreateRectangleSketch(self.PadSketch1, (0, 0), (1, 1), True) + self.Doc.recompute() + self.Pad1 = self.Doc.addObject("PartDesign::Pad", "Pad1") + self.Body.addObject(self.Pad1) + self.Pad1.Profile = self.PadSketch1 + self.Pad1.Type = 2 + self.Pad1.Reversed = 1 + self.Doc.recompute() + self.failUnless(self.Pad1.Shape.Volume == 1.9999999999999996) + + def testPadtoLastCase(self): + self.Body = self.Doc.addObject('PartDesign::Body','Body') + # Make first offset cube Pad + self.PadSketch = self.Doc.addObject('Sketcher::SketchObject', 'SketchPad') + self.Body.addObject(self.PadSketch) + TestSketcherApp.CreateRectangleSketch(self.PadSketch, (0.5, 1), (0.5, 2)) + self.Doc.recompute() + self.Pad = self.Doc.addObject("PartDesign::Pad", "Pad") + self.Body.addObject(self.Pad) + self.Pad.Profile = self.PadSketch + self.Pad.Length = 1 + self.Doc.recompute() + # Make second pad on different plane and pad to first + self.PadSketch1 = self.Doc.addObject('Sketcher::SketchObject', 'SketchPad1') + self.Body.addObject(self.PadSketch1) + self.PadSketch1.MapMode = 'FlatFace' + self.PadSketch1.Support = (App.ActiveDocument.XZ_Plane, ['']) + self.Doc.recompute() + TestSketcherApp.CreateRectangleSketch(self.PadSketch1, (0, 0), (1, 1), True) + self.Doc.recompute() + self.Pad1 = self.Doc.addObject("PartDesign::Pad", "Pad1") + self.Body.addObject(self.Pad1) + self.Pad1.Profile = self.PadSketch1 + self.Pad1.Type = 1 + self.Pad1.Reversed = 1 + self.Doc.recompute() + self.failUnless(self.Pad1.Shape.Volume == 2.999999999999999) + + def testPadToFaceCase(self): + self.Body = self.Doc.addObject('PartDesign::Body','Body') + # Make first offset cube Pad + self.PadSketch = self.Doc.addObject('Sketcher::SketchObject', 'SketchPad') + self.Body.addObject(self.PadSketch) + TestSketcherApp.CreateRectangleSketch(self.PadSketch, (0, 1), (1, 1), True) + self.Doc.recompute() + self.Pad = self.Doc.addObject("PartDesign::Pad", "Pad") + self.Body.addObject(self.Pad) + self.Pad.Profile = self.PadSketch + self.Pad.Length = 1 + self.Doc.recompute() + # Make second pad on different plane and pad to face on first + self.PadSketch1 = self.Doc.addObject('Sketcher::SketchObject', 'SketchPad1') + self.Body.addObject(self.PadSketch1) + self.PadSketch1.MapMode = 'FlatFace' + self.PadSketch1.Support = (App.ActiveDocument.XZ_Plane, ['']) + self.Doc.recompute() + TestSketcherApp.CreateRectangleSketch(self.PadSketch1, (0, 0), (1, 1), True) + self.Doc.recompute() + self.Pad1 = self.Doc.addObject("PartDesign::Pad", "Pad1") + self.Body.addObject(self.Pad1) + self.Pad1.Profile = self.PadSketch1 + self.Pad1.Type = 3 + self.Pad1.UpToFace = (self.Pad, ["Face3"]) + self.Pad1.Reversed = 1 + self.Doc.recompute() + self.failUnless(self.Pad1.Shape.Volume == 1.9999999999999996) + + def testPadTwoDimensionsCase(self): + self.Body = self.Doc.addObject('PartDesign::Body','Body') + # Make first offset cube Pad + self.PadSketch = self.Doc.addObject('Sketcher::SketchObject', 'SketchPad') + self.Body.addObject(self.PadSketch) + TestSketcherApp.CreateRectangleSketch(self.PadSketch, (0, 1), (1, 1), True) + self.Doc.recompute() + self.Pad = self.Doc.addObject("PartDesign::Pad", "Pad") + self.Body.addObject(self.Pad) + self.Pad.Profile = self.PadSketch + self.Pad.Length = 1 + self.Doc.recompute() + # Make second pad on different plane and pad to face on first + self.PadSketch1 = self.Doc.addObject('Sketcher::SketchObject', 'SketchPad1') + self.Body.addObject(self.PadSketch1) + self.PadSketch1.MapMode = 'FlatFace' + self.PadSketch1.Support = (App.ActiveDocument.XZ_Plane, ['']) + self.Doc.recompute() + TestSketcherApp.CreateRectangleSketch(self.PadSketch1, (0, 0), (1, 1), True) + self.Doc.recompute() + self.Pad1 = self.Doc.addObject("PartDesign::Pad", "Pad1") + self.Body.addObject(self.Pad1) + self.Pad1.Profile = self.PadSketch1 + self.Pad1.Type = 4 + self.Pad1.Length = 2.0 + self.Pad1.Length2 = 1.0 + self.Pad1.Reversed = 1 + self.Doc.recompute() + self.failUnless(self.Pad1.Shape.Volume == 3.9999999999999996) + def tearDown(self): #closing doc FreeCAD.closeDocument("PartDesignTestPad") - # print ("omit closing document for debugging") + #print ("omit closing document for debugging") class PartDesignRevolveTestCases(unittest.TestCase): def setUp(self): diff --git a/src/Mod/Sketcher/TestSketcherApp.py b/src/Mod/Sketcher/TestSketcherApp.py index 2a13a4d0d7..058f2080c6 100644 --- a/src/Mod/Sketcher/TestSketcherApp.py +++ b/src/Mod/Sketcher/TestSketcherApp.py @@ -45,8 +45,8 @@ def CreateRectangleSketch(SketchFeature, corner, lengths, square=False): SketchFeature.addConstraint(Sketcher.Constraint('Vertical',i+3)) # Fix the bottom left corner of the rectangle - App.ActiveDocument.Sketch.addConstraint(Sketcher.Constraint('DistanceX',i+2,2,corner[0])) - App.ActiveDocument.Sketch.addConstraint(Sketcher.Constraint('DistanceY',i+2,2,corner[1])) + SketchFeature.addConstraint(Sketcher.Constraint('DistanceX',i+2,2,corner[0])) + SketchFeature.addConstraint(Sketcher.Constraint('DistanceY',i+2,2,corner[1])) # add dimensions if square: