| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| |
|
| | import unittest |
| |
|
| | import FreeCAD |
| | import TestSketcherApp |
| |
|
| |
|
| | class TestMirrored(unittest.TestCase): |
| | def setUp(self): |
| | self.Doc = FreeCAD.newDocument("PartDesignTestMirrored") |
| |
|
| | def testMirroredSketchCase(self): |
| | """ |
| | Creates a unit cube cornered at the origin and mirrors it about the Y axis. |
| | This operation should create a rectangular prism with volume 2.0. |
| | """ |
| | self.Body = self.Doc.addObject("PartDesign::Body", "Body") |
| | self.Rect = self.Doc.addObject("Sketcher::SketchObject", "Rect") |
| | self.Body.addObject(self.Rect) |
| | TestSketcherApp.CreateRectangleSketch(self.Rect, (0, 0), (1, 1)) |
| | 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, ["V_Axis"]) |
| | self.Body.addObject(self.Mirrored) |
| | self.Doc.recompute() |
| | self.assertAlmostEqual(self.Mirrored.Shape.Volume, 2.0) |
| |
|
| | def testMirroredPrimitiveCase(self): |
| | """ |
| | Tests the same mirroring scenario as in the sketch case, |
| | but is designed to ensure the same end result occurs with |
| | 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, [""]) |
| | self.Body.addObject(self.Mirrored) |
| | self.Doc.recompute() |
| | self.assertAlmostEqual(self.Mirrored.Shape.Volume, 2.0) |
| |
|
| | def testMirroredOffsetCase(self): |
| | self.Body = self.Doc.addObject("PartDesign::Body", "Body") |
| | self.Rect = self.Doc.addObject("Sketcher::SketchObject", "Rect") |
| | self.Body.addObject(self.Rect) |
| | TestSketcherApp.CreateRectangleSketch(self.Rect, (0, 1), (1, 1)) |
| | 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"]) |
| | self.Body.addObject(self.Mirrored) |
| | self.Doc.recompute() |
| | self.assertIn("Up-to-date", self.Mirrored.State) |
| |
|
| | def tearDown(self): |
| | |
| | FreeCAD.closeDocument("PartDesignTestMirrored") |
| | |
| |
|