From e767ff459361e08392189f8906ac0e81e7cd2002 Mon Sep 17 00:00:00 2001 From: Kurt Kremitzki Date: Sun, 18 Jun 2017 10:29:16 -0500 Subject: [PATCH] Add PartDesign Pocket tests --- src/Mod/PartDesign/TestPartDesignApp.py | 153 ++++++++++++++++-------- 1 file changed, 104 insertions(+), 49 deletions(-) diff --git a/src/Mod/PartDesign/TestPartDesignApp.py b/src/Mod/PartDesign/TestPartDesignApp.py index fbb78f3c8a..5d965c7df6 100644 --- a/src/Mod/PartDesign/TestPartDesignApp.py +++ b/src/Mod/PartDesign/TestPartDesignApp.py @@ -223,27 +223,7 @@ class PartDesignMirroredTestCases(unittest.TestCase): self.Body = self.Doc.addObject('PartDesign::Body','Body') self.Rect = self.Doc.addObject('Sketcher::SketchObject','Rect') self.Body.addObject(self.Rect) - geoList = [] - geoList.append(Part.LineSegment(App.Vector(0, 0, 0), App.Vector(1, 0, 0))) - geoList.append(Part.LineSegment(App.Vector(1, 0, 0), App.Vector(1, 1, 0))) - geoList.append(Part.LineSegment(App.Vector(1, 1, 0), App.Vector(0, 1, 0))) - geoList.append(Part.LineSegment(App.Vector(0, 1, 0), App.Vector(0, 0, 0))) - self.Rect.addGeometry(geoList,False) - conList = [] - conList.append(Sketcher.Constraint('Coincident',0,2,1,1)) - conList.append(Sketcher.Constraint('Coincident',1,2,2,1)) - conList.append(Sketcher.Constraint('Coincident',2,2,3,1)) - conList.append(Sketcher.Constraint('Coincident',3,2,0,1)) - conList.append(Sketcher.Constraint('Horizontal',0)) - conList.append(Sketcher.Constraint('Horizontal',2)) - conList.append(Sketcher.Constraint('Vertical',1)) - conList.append(Sketcher.Constraint('Vertical',3)) - self.Rect.addConstraint(conList) - self.Rect.addConstraint(Sketcher.Constraint('Coincident',0,1,-1,1)) - self.Rect.addConstraint(Sketcher.Constraint('DistanceX',0,1,0,2,1)) - self.Rect.setDatum(9,App.Units.Quantity('1.0 mm')) - self.Rect.addConstraint(Sketcher.Constraint('DistanceY',3,2,3,1,1)) - self.Rect.setDatum(10,App.Units.Quantity('1.0 mm')) + TestSketcherApp.CreateRectangleSketch(self.Rect, (0, 0), (1, 1), True) self.Doc.recompute() self.Pad = self.Doc.addObject("PartDesign::Pad","Pad") self.Pad.Profile = self.Rect @@ -264,14 +244,12 @@ class PartDesignMirroredTestCases(unittest.TestCase): a different base object. """ self.Body = self.Doc.addObject('PartDesign::Body','Body') - self.Box = self.Doc.addObject('PartDesign::AdditiveBox','Box') self.Box.Length=1 self.Box.Width=1 self.Box.Height=1 self.Body.addObject(self.Box) self.Doc.recompute() - self.Mirrored = self.Doc.addObject("PartDesign::Mirrored", "Mirrored") self.Mirrored.Originals = [self.Box] self.Mirrored.MirrorPlane = (self.Doc.XY_Plane, [""]) @@ -283,38 +261,13 @@ class PartDesignMirroredTestCases(unittest.TestCase): self.Body = self.Doc.addObject('PartDesign::Body','Body') self.Rect = self.Doc.addObject('Sketcher::SketchObject','Rect') self.Body.addObject(self.Rect) - geoList = [] - geoList.append(Part.LineSegment(App.Vector(0, 0, 0), App.Vector(1, 0, 0))) - geoList.append(Part.LineSegment(App.Vector(1, 0, 0), App.Vector(1, 1, 0))) - geoList.append(Part.LineSegment(App.Vector(1, 1, 0), App.Vector(0, 1, 0))) - geoList.append(Part.LineSegment(App.Vector(0, 1, 0), App.Vector(0, 0, 0))) - self.Rect.addGeometry(geoList,False) - conList = [] - - conList.append(Sketcher.Constraint('Coincident',0,2,1,1)) - conList.append(Sketcher.Constraint('Coincident',1,2,2,1)) - conList.append(Sketcher.Constraint('Coincident',2,2,3,1)) - conList.append(Sketcher.Constraint('Coincident',3,2,0,1)) - conList.append(Sketcher.Constraint('Horizontal',0)) - conList.append(Sketcher.Constraint('Horizontal',2)) - conList.append(Sketcher.Constraint('Vertical',1)) - conList.append(Sketcher.Constraint('Vertical',3)) - self.Rect.addConstraint(conList) - - self.Rect.addConstraint(Sketcher.Constraint('PointOnObject',0,1,-2)) - self.Rect.addConstraint(Sketcher.Constraint('Equal',3,0)) - self.Rect.addConstraint(Sketcher.Constraint('DistanceX',0,1,0,2,1)) - self.Rect.setDatum(10,App.Units.Quantity('1.0 mm')) - self.Rect.addConstraint(Sketcher.Constraint('DistanceY',-1,1,0,1,1)) - self.Rect.setDatum(11,App.Units.Quantity('1.0 mm')) + TestSketcherApp.CreateRectangleSketch(self.Rect, (0, 1), (1, 1), True) self.Doc.recompute() - self.Pad = self.Doc.addObject("PartDesign::Pad","Pad") self.Pad.Profile = self.Rect self.Pad.Length = 1 self.Body.addObject(self.Pad) self.Doc.recompute() - self.Mirrored = self.Doc.addObject("PartDesign::Mirrored","Mirrored") self.Mirrored.Originals = [self.Pad] self.Mirrored.MirrorPlane = (self.Rect, ["H_Axis"]) @@ -326,3 +279,105 @@ class PartDesignMirroredTestCases(unittest.TestCase): #closing doc FreeCAD.closeDocument("PartDesignTestMirrored") #print ("omit closing document for debugging") + +class PartDesignPocketTestCases(unittest.TestCase): + def setUp(self): + self.Doc = FreeCAD.newDocument("PartDesignTestPocket") + + def testPocketDimensionCase(self): + self.Body = self.Doc.addObject('PartDesign::Body','Body') + self.PadSketch = self.Doc.addObject('Sketcher::SketchObject', 'PadSketch') + self.Body.addObject(self.PadSketch) + TestSketcherApp.CreateRectangleSketch(self.PadSketch, (0, 0), (10, 10), 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.Pad.Reversed = 1 + self.Doc.recompute() + self.PocketSketch = self.Doc.addObject('Sketcher::SketchObject', 'PocketSketch') + self.Body.addObject(self.PocketSketch) + TestSketcherApp.CreateRectangleSketch(self.PocketSketch, (2.5, 2.5), (5, 5), True) + self.Doc.recompute() + self.Pocket = self.Doc.addObject("PartDesign::Pocket", "Pocket") + self.Body.addObject(self.Pocket) + self.Pocket.Profile = self.PocketSketch + self.Pocket.Length = 1 + self.Doc.recompute() + self.assertAlmostEqual(self.Pocket.Shape.Volume, 75.0) + + def testPocketThroughAllCase(self): + self.Body = self.Doc.addObject('PartDesign::Body','Body') + self.PadSketch = self.Doc.addObject('Sketcher::SketchObject', 'PadSketch') + self.Body.addObject(self.PadSketch) + TestSketcherApp.CreateRectangleSketch(self.PadSketch, (0, 0), (10, 10), 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.Pad.Reversed = 1 + self.Doc.recompute() + self.PocketSketch = self.Doc.addObject('Sketcher::SketchObject', 'PocketSketch') + self.Body.addObject(self.PocketSketch) + TestSketcherApp.CreateRectangleSketch(self.PocketSketch, (2.5, 2.5), (5, 5), True) + self.Doc.recompute() + self.Pocket = self.Doc.addObject("PartDesign::Pocket", "Pocket") + self.Body.addObject(self.Pocket) + self.Pocket.Profile = self.PocketSketch + self.Pocket.Length = 1 + self.Doc.recompute() + self.PocketSketch1 = self.Doc.addObject('Sketcher::SketchObject', 'PocketSketch') + self.Body.addObject(self.PocketSketch1) + self.PocketSketch1.MapMode = 'FlatFace' + self.PocketSketch1.Support = (App.ActiveDocument.XZ_Plane, ['']) + self.Doc.recompute() + TestSketcherApp.CreateRectangleSketch(self.PocketSketch1, (2.5, -1), (5, 1)) + self.Doc.recompute() + self.Pocket001 = self.Doc.addObject("PartDesign::Pocket", "Pocket001") + self.Body.addObject(self.Pocket001) + self.Pocket001.Profile = self.PocketSketch1 + self.Pocket001.Type = 1 + self.Doc.recompute() + self.assertAlmostEqual(self.Pocket001.Shape.Volume, 25.0) + + def testPocketToFirstCase(self): + self.Body = self.Doc.addObject('PartDesign::Body','Body') + self.PadSketch = self.Doc.addObject('Sketcher::SketchObject', 'PadSketch') + self.Body.addObject(self.PadSketch) + TestSketcherApp.CreateRectangleSketch(self.PadSketch, (0, 0), (10, 10), 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.Pad.Reversed = 1 + self.Doc.recompute() + self.PocketSketch = self.Doc.addObject('Sketcher::SketchObject', 'PocketSketch') + self.Body.addObject(self.PocketSketch) + TestSketcherApp.CreateRectangleSketch(self.PocketSketch, (2.5, 2.5), (5, 5), True) + self.Doc.recompute() + self.Pocket = self.Doc.addObject("PartDesign::Pocket", "Pocket") + self.Body.addObject(self.Pocket) + self.Pocket.Profile = self.PocketSketch + self.Pocket.Length = 1 + self.Doc.recompute() + self.PocketSketch1 = self.Doc.addObject('Sketcher::SketchObject', 'PocketSketch') + self.Body.addObject(self.PocketSketch1) + self.PocketSketch1.MapMode = 'FlatFace' + self.PocketSketch1.Support = (App.ActiveDocument.XZ_Plane, ['']) + self.Doc.recompute() + TestSketcherApp.CreateRectangleSketch(self.PocketSketch1, (2.5, -1), (5, 1)) + self.Doc.recompute() + self.Pocket001 = self.Doc.addObject("PartDesign::Pocket", "Pocket001") + self.Body.addObject(self.Pocket001) + self.Pocket001.Profile = self.PocketSketch1 + self.Pocket001.Type = 2 + self.Doc.recompute() + self.assertAlmostEqual(self.Pocket001.Shape.Volume, 62.5) + + def tearDown(self): + #closing doc + FreeCAD.closeDocument("PartDesignTestPocket") + #print ("omit closing document for debugging")