| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| |
|
| | import unittest |
| |
|
| | import FreeCAD |
| |
|
| | App = FreeCAD |
| |
|
| |
|
| | class TestDraft(unittest.TestCase): |
| | def setUp(self): |
| | self.Doc = FreeCAD.newDocument("PartDesignTestDraft") |
| |
|
| | def testSimpleDraft(self): |
| | |
| | |
| | |
| | self.Body = self.Doc.addObject("PartDesign::Body", "Body") |
| | self.Box = self.Doc.addObject("PartDesign::AdditiveBox", "Box") |
| | self.Body.addObject(self.Box) |
| | self.Box.Length = 10.00 |
| | self.Box.Width = 10.00 |
| | self.Box.Height = 10.00 |
| | self.Doc.recompute() |
| | self.DatumPlane = self.Doc.addObject("PartDesign::Plane", "DatumPlane") |
| | self.DatumPlane.AttachmentSupport = [(self.Doc.YZ_Plane, "")] |
| | self.DatumPlane.MapMode = "FlatFace" |
| | self.Body.addObject(self.DatumPlane) |
| | self.Doc.recompute() |
| | self.DatumLine = self.Doc.addObject("PartDesign::Line", "DatumLine") |
| | self.DatumLine.AttachmentSupport = [(self.Doc.X_Axis, "")] |
| | self.DatumLine.MapMode = "TwoPointLine" |
| | self.Body.addObject(self.DatumLine) |
| | self.Doc.recompute() |
| | self.Draft = self.Doc.addObject("PartDesign::Draft", "Draft") |
| | |
| | self.Faces = self.Box.Shape.Faces |
| | |
| | self.ZFaceIndexes = [ |
| | i for i in range(len(self.Faces)) if self.Faces[i].Surface.Axis == App.Vector(0, 0, 1) |
| | ] |
| | if ( |
| | self.Faces[self.ZFaceIndexes[0]].CenterOfMass.z |
| | > self.Faces[self.ZFaceIndexes[1]].CenterOfMass.z |
| | ): |
| | self.TopFaceIndex = self.ZFaceIndexes[0] |
| | else: |
| | self.TopFaceIndex = self.ZFaceIndexes[1] |
| | self.Draft.Base = (self.Box, ["Face" + str(self.TopFaceIndex + 1)]) |
| | self.Draft.NeutralPlane = (self.DatumPlane, [""]) |
| | self.Draft.PullDirection = (self.DatumLine, [""]) |
| | self.Draft.Angle = 45.0 |
| | self.Draft.Reversed = 1 |
| | self.Body.addObject(self.Draft) |
| | self.Doc.recompute() |
| | if "Invalid" in self.Draft.State: |
| | self.Draft.Reversed = 0 |
| | self.Doc.recompute() |
| | self.assertAlmostEqual(self.Draft.Shape.Volume, 1500) |
| |
|
| | def tearDown(self): |
| | |
| | FreeCAD.closeDocument("PartDesignTestDraft") |
| | |
| |
|