diff --git a/src/Mod/PartDesign/App/CMakeLists.txt b/src/Mod/PartDesign/App/CMakeLists.txt index 62b90bf631..478c21da24 100644 --- a/src/Mod/PartDesign/App/CMakeLists.txt +++ b/src/Mod/PartDesign/App/CMakeLists.txt @@ -161,6 +161,10 @@ SET(PartDesign_Scripts PartDesignTests/TestLoft.py PartDesignTests/TestPipe.py PartDesignTests/TestMirrored.py + PartDesignTests/TestFillet.py + PartDesignTests/TestChamfer.py + PartDesignTests/TestDraft.py + PartDesignTests/TestThickness.py fcgear/__init__.py fcgear/fcgear.py fcgear/fcgeardialog.py diff --git a/src/Mod/PartDesign/CMakeLists.txt b/src/Mod/PartDesign/CMakeLists.txt index 30a6345c56..5c2078ff5a 100644 --- a/src/Mod/PartDesign/CMakeLists.txt +++ b/src/Mod/PartDesign/CMakeLists.txt @@ -41,6 +41,10 @@ INSTALL( PartDesignTests/TestLoft.py PartDesignTests/TestPipe.py PartDesignTests/TestMirrored.py + PartDesignTests/TestFillet.py + PartDesignTests/TestChamfer.py + PartDesignTests/TestDraft.py + PartDesignTests/TestThickness.py DESTINATION Mod/PartDesign/PartDesignTests ) diff --git a/src/Mod/PartDesign/PartDesignTests/TestChamfer.py b/src/Mod/PartDesign/PartDesignTests/TestChamfer.py new file mode 100644 index 0000000000..84a1a66dcc --- /dev/null +++ b/src/Mod/PartDesign/PartDesignTests/TestChamfer.py @@ -0,0 +1,51 @@ +# (c) Juergen Riegel (FreeCAD@juergen-riegel.net) 2011 LGPL * +# * +# This file is part of the FreeCAD CAx development system. * +# * +# This program is free software; you can redistribute it and/or modify * +# it under the terms of the GNU Lesser General Public License (LGPL) * +# as published by the Free Software Foundation; either version 2 of * +# the License, or (at your option) any later version. * +# for detail see the LICENCE text file. * +# * +# FreeCAD is distributed in the hope that it will be useful, * +# but WITHOUT ANY WARRANTY; without even the implied warranty of * +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * +# GNU Library General Public License for more details. * +# * +# You should have received a copy of the GNU Library General Public * +# License along with FreeCAD; if not, write to the Free Software * +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 * +# USA * +#************************************************************************** +import unittest + +import FreeCAD + +class TestChamfer(unittest.TestCase): + def setUp(self): + self.Doc = FreeCAD.newDocument("PartDesignTestChamfer") + + def testChamfer(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.Revolution = self.Doc.addObject("PartDesign::Revolution","Revolution") + self.Revolution.Profile = (self.Box, ["Face6"]) + self.Revolution.ReferenceAxis = (self.Doc.Y_Axis,[""]) + self.Revolution.Angle = 180.0 + self.Revolution.Reversed = 1 + self.Body.addObject(self.Revolution) + self.Doc.recompute() + # depending on if refinement is done we expect 8 or 10 faces + self.assertIn(len(self.Revolution.Shape.Faces), (8, 10)) + + def tearDown(self): + #closing doc + FreeCAD.closeDocument("PartDesignTestChamfer") + # print ("omit closing document for debugging") + diff --git a/src/Mod/PartDesign/PartDesignTests/TestDraft.py b/src/Mod/PartDesign/PartDesignTests/TestDraft.py new file mode 100644 index 0000000000..2f1209fd74 --- /dev/null +++ b/src/Mod/PartDesign/PartDesignTests/TestDraft.py @@ -0,0 +1,51 @@ +# (c) Juergen Riegel (FreeCAD@juergen-riegel.net) 2011 LGPL * +# * +# This file is part of the FreeCAD CAx development system. * +# * +# This program is free software; you can redistribute it and/or modify * +# it under the terms of the GNU Lesser General Public License (LGPL) * +# as published by the Free Software Foundation; either version 2 of * +# the License, or (at your option) any later version. * +# for detail see the LICENCE text file. * +# * +# FreeCAD is distributed in the hope that it will be useful, * +# but WITHOUT ANY WARRANTY; without even the implied warranty of * +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * +# GNU Library General Public License for more details. * +# * +# You should have received a copy of the GNU Library General Public * +# License along with FreeCAD; if not, write to the Free Software * +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 * +# USA * +#************************************************************************** +import unittest + +import FreeCAD + +class TestDraft(unittest.TestCase): + def setUp(self): + self.Doc = FreeCAD.newDocument("PartDesignTestDraft") + + def testDraft(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.Revolution = self.Doc.addObject("PartDesign::Revolution","Revolution") + self.Revolution.Profile = (self.Box, ["Face6"]) + self.Revolution.ReferenceAxis = (self.Doc.Y_Axis,[""]) + self.Revolution.Angle = 180.0 + self.Revolution.Reversed = 1 + self.Body.addObject(self.Revolution) + self.Doc.recompute() + # depending on if refinement is done we expect 8 or 10 faces + self.assertIn(len(self.Revolution.Shape.Faces), (8, 10)) + + def tearDown(self): + #closing doc + FreeCAD.closeDocument("PartDesignTestDraft") + # print ("omit closing document for debugging") + diff --git a/src/Mod/PartDesign/PartDesignTests/TestFillet.py b/src/Mod/PartDesign/PartDesignTests/TestFillet.py new file mode 100644 index 0000000000..7b3a5c9a67 --- /dev/null +++ b/src/Mod/PartDesign/PartDesignTests/TestFillet.py @@ -0,0 +1,51 @@ +# (c) Juergen Riegel (FreeCAD@juergen-riegel.net) 2011 LGPL * +# * +# This file is part of the FreeCAD CAx development system. * +# * +# This program is free software; you can redistribute it and/or modify * +# it under the terms of the GNU Lesser General Public License (LGPL) * +# as published by the Free Software Foundation; either version 2 of * +# the License, or (at your option) any later version. * +# for detail see the LICENCE text file. * +# * +# FreeCAD is distributed in the hope that it will be useful, * +# but WITHOUT ANY WARRANTY; without even the implied warranty of * +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * +# GNU Library General Public License for more details. * +# * +# You should have received a copy of the GNU Library General Public * +# License along with FreeCAD; if not, write to the Free Software * +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 * +# USA * +#************************************************************************** +import unittest + +import FreeCAD + +class TestFillet(unittest.TestCase): + def setUp(self): + self.Doc = FreeCAD.newDocument("PartDesignTestFillet") + + def testRevolveFace(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.Revolution = self.Doc.addObject("PartDesign::Revolution","Revolution") + self.Revolution.Profile = (self.Box, ["Face6"]) + self.Revolution.ReferenceAxis = (self.Doc.Y_Axis,[""]) + self.Revolution.Angle = 180.0 + self.Revolution.Reversed = 1 + self.Body.addObject(self.Revolution) + self.Doc.recompute() + # depending on if refinement is done we expect 8 or 10 faces + self.assertIn(len(self.Revolution.Shape.Faces), (8, 10)) + + def tearDown(self): + #closing doc + FreeCAD.closeDocument("PartDesignTestFillet") + # print ("omit closing document for debugging") + diff --git a/src/Mod/PartDesign/PartDesignTests/TestThickness.py b/src/Mod/PartDesign/PartDesignTests/TestThickness.py new file mode 100644 index 0000000000..af6a4e5cde --- /dev/null +++ b/src/Mod/PartDesign/PartDesignTests/TestThickness.py @@ -0,0 +1,51 @@ +# (c) Juergen Riegel (FreeCAD@juergen-riegel.net) 2011 LGPL * +# * +# This file is part of the FreeCAD CAx development system. * +# * +# This program is free software; you can redistribute it and/or modify * +# it under the terms of the GNU Lesser General Public License (LGPL) * +# as published by the Free Software Foundation; either version 2 of * +# the License, or (at your option) any later version. * +# for detail see the LICENCE text file. * +# * +# FreeCAD is distributed in the hope that it will be useful, * +# but WITHOUT ANY WARRANTY; without even the implied warranty of * +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * +# GNU Library General Public License for more details. * +# * +# You should have received a copy of the GNU Library General Public * +# License along with FreeCAD; if not, write to the Free Software * +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 * +# USA * +#************************************************************************** +import unittest + +import FreeCAD + +class TestThickness(unittest.TestCase): + def setUp(self): + self.Doc = FreeCAD.newDocument("PartDesignTestThickness") + + def testThickness(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.Revolution = self.Doc.addObject("PartDesign::Revolution","Revolution") + self.Revolution.Profile = (self.Box, ["Face6"]) + self.Revolution.ReferenceAxis = (self.Doc.Y_Axis,[""]) + self.Revolution.Angle = 180.0 + self.Revolution.Reversed = 1 + self.Body.addObject(self.Revolution) + self.Doc.recompute() + # depending on if refinement is done we expect 8 or 10 faces + self.assertIn(len(self.Revolution.Shape.Faces), (8, 10)) + + def tearDown(self): + #closing doc + FreeCAD.closeDocument("PartDesignTestThickness") + # print ("omit closing document for debugging") + diff --git a/src/Mod/PartDesign/TestPartDesignApp.py b/src/Mod/PartDesign/TestPartDesignApp.py index a29c430f5c..9e535715f4 100644 --- a/src/Mod/PartDesign/TestPartDesignApp.py +++ b/src/Mod/PartDesign/TestPartDesignApp.py @@ -35,17 +35,16 @@ from PartDesignTests.TestPipe import TestPipe from PartDesignTests.TestLoft import TestLoft #from PartDesignTests.TestPrimitive import TestPrimitive -# transformations +# transformations and boolean from PartDesignTests.TestMirrored import TestMirrored -#from PartDesignTests.TestLinear import TestLinear -#from PartDesignTests.TestPolar import TestPolar +#from PartDesignTests.TestLinearPattern import TestLinearPattern +#from PartDesignTests.TestPolarPattern import TestPolarPattern #from PartDesignTests.TestMultiTransform import TestMultiTransform +#from PartDesignTests.TestBoolean import TestBoolean # dressup features -#from PartDesignTests.TestFillet import TestFillet -#from PartDesignTests.TestChamfer import TestChamfer -#from PartDesignTests.TestDraft import TestDraft -#from PartDesignTests.TestThickness import TestThickness +from PartDesignTests.TestFillet import TestFillet +from PartDesignTests.TestChamfer import TestChamfer +from PartDesignTests.TestDraft import TestDraft +from PartDesignTests.TestThickness import TestThickness -# boolean operation -#from PartDesignTests.TestBoolean import TestBoolean