]> SALOME platform Git repositories - modules/shaper.git/commitdiff
Salome HOME
Issue #19019: python dump not loadable
authorArtem Zhidkov <Artem.Zhidkov@opencascade.com>
Fri, 24 Apr 2020 13:04:21 +0000 (16:04 +0300)
committerArtem Zhidkov <Artem.Zhidkov@opencascade.com>
Fri, 24 Apr 2020 13:24:21 +0000 (16:24 +0300)
Update concealment flag each time the feature is executed when loading python file.

src/Model/Model_Update.cpp
src/ModelAPI/CMakeLists.txt
src/ModelAPI/Test/Test19019_1.py [new file with mode: 0644]
src/ModelAPI/Test/Test19019_2.py [new file with mode: 0644]

index 052468c7845d62c84ebfaae62300e2ae508063fd..40c5fe191954fed275bb80d37f2f56dacda02f4d 100644 (file)
@@ -735,6 +735,14 @@ bool Model_Update::processFeature(FeaturePtr theFeature)
       }
       if (aDoExecute) {
         executeFeature(theFeature);
+        // Tuleap issue #19019: when loading python dump several wires are referred to the same
+        // sketch edge. First wire is concealed by another feature, but the flag is not initialized
+        // for the result. When the next wire is created, it finds wire as a referred feature
+        // instead of sketch edge.
+        // As a result, call synchronization to initialize the concealed flag.
+        Model_Objects* aDocObjects =
+            std::dynamic_pointer_cast<Model_Document>(theFeature->document())->objects();
+        aDocObjects->synchronizeBackRefs();
       } else {
         // store information that this feature must be executed later
         theFeature->data()->execState(ModelAPI_StateMustBeUpdated);
index 1f5de842414840830ddd5c551e808cef61d9b1cb..412e491c323f23ebe95702ca498960ea016e20bb 100644 (file)
@@ -255,4 +255,6 @@ ADD_UNIT_TESTS(TestConstants.py
                Test2903.py
                Test3020.py
                Test3116.py
+               Test19019_1.py
+               Test19019_2.py
 )
diff --git a/src/ModelAPI/Test/Test19019_1.py b/src/ModelAPI/Test/Test19019_1.py
new file mode 100644 (file)
index 0000000..a04a4cb
--- /dev/null
@@ -0,0 +1,53 @@
+# Copyright (C) 2020  CEA/DEN, EDF R&D
+#
+# This library is free software; you can redistribute it and/or
+# modify it under the terms of the GNU Lesser General Public
+# License as published by the Free Software Foundation; either
+# version 2.1 of the License, or (at your option) any later version.
+#
+# This library 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
+# Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this library; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+#
+# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
+#
+
+from salome.shaper import model
+
+model.begin()
+partSet = model.moduleDocument()
+Part_1 = model.addPart(partSet)
+Part_1_doc = Part_1.document()
+Sketch_1 = model.addSketch(Part_1_doc, model.defaultPlane("XOY"))
+SketchLine_1 = Sketch_1.addLine(-53.81455412066646, -50.08190818345371, 33.23044991620489, -41.72362634869452)
+SketchArc_1 = Sketch_1.addArc(-10.71003639844217, -41.54978593924657, 33.23044991620489, -41.72362634869452, -53.81455412066646, -50.08190818345371, False)
+SketchConstraintCoincidence_1 = Sketch_1.setCoincident(SketchLine_1.endPoint(), SketchArc_1.startPoint())
+SketchConstraintCoincidence_2 = Sketch_1.setCoincident(SketchLine_1.startPoint(), SketchArc_1.endPoint())
+model.do()
+Wire_1 = model.addWire(Part_1_doc, [model.selection("EDGE", "Sketch_1/SketchLine_1")], False)
+Wire_2 = model.addWire(Part_1_doc, [model.selection("EDGE", "Sketch_1/SketchArc_1_2")], False)
+Face_1 = model.addFace(Part_1_doc, [model.selection("WIRE", "Wire_1_1"), model.selection("WIRE", "Wire_2_1")])
+Wire_3 = model.addWire(Part_1_doc, [model.selection("EDGE", "Sketch_1/SketchLine_1")], False)
+
+model.end()
+
+from ModelAPI import *
+factory = ModelAPI_Session.get().validators()
+assert(factory.validate(Wire_3.feature()))
+
+from GeomAPI import *
+
+model.testNbResults(Part_1, 1)
+model.testNbSubResults(Part_1, [0])
+model.testNbSubShapes(Part_1, GeomAPI_Shape.SOLID, [0])
+model.testNbSubShapes(Part_1, GeomAPI_Shape.FACE, [1])
+model.testNbSubShapes(Part_1, GeomAPI_Shape.EDGE, [3])
+model.testNbSubShapes(Part_1, GeomAPI_Shape.VERTEX, [6])
+model.testResultsVolumes(Part_1, [3416.5596])
+
+assert(model.checkPythonDump())
diff --git a/src/ModelAPI/Test/Test19019_2.py b/src/ModelAPI/Test/Test19019_2.py
new file mode 100644 (file)
index 0000000..764845f
--- /dev/null
@@ -0,0 +1,464 @@
+# Copyright (C) 2020  CEA/DEN, EDF R&D
+#
+# This library is free software; you can redistribute it and/or
+# modify it under the terms of the GNU Lesser General Public
+# License as published by the Free Software Foundation; either
+# version 2.1 of the License, or (at your option) any later version.
+#
+# This library 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
+# Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this library; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+#
+# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
+#
+
+from SketchAPI import *
+
+from salome.shaper import model
+
+model.begin()
+partSet = model.moduleDocument()
+model.addParameter(partSet, "r", "0.5")
+model.addParameter(partSet, "R", "50")
+model.addParameter(partSet, "alpha_d4", "8")
+model.addParameter(partSet, "alpha_d3", "8")
+model.addParameter(partSet, "alpha_d2", "8")
+model.addParameter(partSet, "alpha_d1", "6")
+model.addParameter(partSet, "alpha", "10")
+model.addParameter(partSet, "alpha_g1", "8")
+model.addParameter(partSet, "alpha_g2", "8")
+model.addParameter(partSet, "H", "80")
+model.addParameter(partSet, "h_left_b", "15")
+model.addParameter(partSet, "h", "10")
+model.addParameter(partSet, "h_right_b", "10")
+model.addParameter(partSet, "h_right_t", "25")
+model.addParameter(partSet, "R_rotor", "25")
+Sketch_1 = model.addSketch(partSet, model.defaultPlane("XOY"))
+SketchProjection_1 = Sketch_1.addProjection(model.selection("VERTEX", "Origin"), False)
+SketchProjection_1.setName("SketchProjection_2")
+SketchProjection_1.result().setName("SketchProjection_2")
+SketchPoint_1 = SketchProjection_1.createdFeature()
+SketchCircle_1 = Sketch_1.addCircle(0, 0, 50)
+SketchCircle_1.setName("SketchCircle_3")
+SketchCircle_1.result().setName("SketchCircle_3")
+SketchCircle_1.results()[1].setName("SketchCircle_3_2")
+SketchConstraintCoincidence_1 = Sketch_1.setCoincident(SketchPoint_1.result(), SketchCircle_1.center())
+SketchConstraintRadius_1 = Sketch_1.setRadius(SketchCircle_1.results()[1], "R")
+SketchLine_1 = Sketch_1.addLine(0, 50, 0, 50.5)
+SketchLine_1.setName("SketchLine_12")
+SketchLine_1.result().setName("SketchLine_12")
+SketchConstraintCoincidence_2 = Sketch_1.setCoincident(SketchLine_1.startPoint(), SketchCircle_1.results()[1])
+SketchConstraintVertical_1 = Sketch_1.setVertical(SketchLine_1.result())
+SketchLine_2 = Sketch_1.addLine(0, 50.5, 0, 51)
+SketchLine_2.setName("SketchLine_13")
+SketchLine_2.result().setName("SketchLine_13")
+SketchConstraintCoincidence_3 = Sketch_1.setCoincident(SketchLine_1.endPoint(), SketchLine_2.startPoint())
+SketchConstraintVertical_2 = Sketch_1.setVertical(SketchLine_2.result())
+SketchCircle_2 = Sketch_1.addCircle(0, 0, 51)
+SketchCircle_2.setName("SketchCircle_4")
+SketchCircle_2.result().setName("SketchCircle_4")
+SketchCircle_2.results()[1].setName("SketchCircle_4_2")
+SketchConstraintRadius_2 = Sketch_1.setRadius(SketchCircle_2.results()[1], "R+2*r")
+SketchConstraintCoincidence_4 = Sketch_1.setCoincident(SketchLine_2.endPoint(), SketchCircle_2.results()[1])
+SketchProjection_2 = Sketch_1.addProjection(model.selection("EDGE", "OY"), False)
+SketchProjection_2.setName("SketchProjection_3")
+SketchProjection_2.result().setName("SketchProjection_3")
+SketchLine_3 = SketchProjection_2.createdFeature()
+SketchLine_3.setName("SketchLine_14")
+SketchLine_3.result().setName("SketchLine_14")
+SketchConstraintCoincidence_5 = Sketch_1.setCoincident(SketchLine_1.startPoint(), SketchLine_3.result())
+SketchConstraintEqual_1 = Sketch_1.setEqual(SketchLine_2.result(), SketchLine_1.result())
+SketchConstraintCoincidence_6 = Sketch_1.setCoincident(SketchCircle_2.center(), SketchAPI_Line(SketchLine_3).startPoint())
+SketchCircle_3 = Sketch_1.addCircle(0, 0, 50.5)
+SketchCircle_3.setName("SketchCircle_5")
+SketchCircle_3.result().setName("SketchCircle_5")
+SketchCircle_3.results()[1].setName("SketchCircle_5_2")
+SketchConstraintCoincidence_7 = Sketch_1.setCoincident(SketchLine_1.endPoint(), SketchCircle_3.results()[1])
+SketchConstraintCoincidence_8 = Sketch_1.setCoincident(SketchCircle_3.center(), SketchAPI_Line(SketchLine_3).startPoint())
+SketchMultiRotation_1 = Sketch_1.addRotation([SketchLine_2.result(), SketchLine_1.result()], SketchCircle_1.center(), "alpha", 2, True)
+[SketchLine_4, SketchLine_5] = SketchMultiRotation_1.rotated()
+SketchLine_5.setName("SketchLine_18")
+SketchLine_5.result().setName("SketchLine_18")
+SketchLine_4.setName("SketchLine_15")
+SketchLine_4.result().setName("SketchLine_15")
+SketchMultiRotation_2 = Sketch_1.addRotation([SketchLine_2.result(), SketchLine_1.result()], SketchCircle_2.center(), "alpha+alpha_g1", 2, True)
+[SketchLine_6, SketchLine_7] = SketchMultiRotation_2.rotated()
+SketchLine_7.setName("SketchLine_17")
+SketchLine_7.result().setName("SketchLine_17")
+SketchLine_6.setName("SketchLine_16")
+SketchLine_6.result().setName("SketchLine_16")
+SketchMultiRotation_3 = Sketch_1.addRotation([SketchLine_1.result(), SketchLine_2.result()], SketchCircle_3.center(), "alpha+alpha_g1+alpha_g2", 2, True)
+[SketchLine_8, SketchLine_9] = SketchMultiRotation_3.rotated()
+SketchLine_9.setName("SketchLine_30")
+SketchLine_9.result().setName("SketchLine_30")
+SketchLine_8.setName("SketchLine_20")
+SketchLine_8.result().setName("SketchLine_20")
+SketchMultiRotation_4 = Sketch_1.addRotation([SketchLine_2.result(), SketchLine_1.result()], SketchCircle_2.center(), "alpha", 2, True, True)
+[SketchLine_10, SketchLine_11] = SketchMultiRotation_4.rotated()
+SketchLine_11.setName("SketchLine_32")
+SketchLine_11.result().setName("SketchLine_32")
+SketchLine_10.setName("SketchLine_21")
+SketchLine_10.result().setName("SketchLine_21")
+SketchMultiRotation_5 = Sketch_1.addRotation([SketchLine_2.result(), SketchLine_1.result()], SketchCircle_1.center(), "alpha+alpha_d1", 2, True, True)
+[SketchLine_12, SketchLine_13] = SketchMultiRotation_5.rotated()
+SketchLine_13.setName("SketchLine_34")
+SketchLine_13.result().setName("SketchLine_34")
+SketchLine_12.setName("SketchLine_24")
+SketchLine_12.result().setName("SketchLine_24")
+SketchMultiRotation_6 = Sketch_1.addRotation([SketchLine_2.result(), SketchLine_1.result()], SketchAPI_Line(SketchLine_3).startPoint(), "alpha+alpha_d1+alpha_d2", 2, True, True)
+[SketchLine_14, SketchLine_15] = SketchMultiRotation_6.rotated()
+SketchLine_15.setName("SketchLine_36")
+SketchLine_15.result().setName("SketchLine_36")
+SketchLine_14.setName("SketchLine_31")
+SketchLine_14.result().setName("SketchLine_31")
+SketchMultiRotation_7 = Sketch_1.addRotation([SketchLine_2.result(), SketchLine_1.result()], SketchCircle_3.center(), "alpha+alpha_d1+alpha_d2+alpha_d3", 2, True, True)
+[SketchLine_16, SketchLine_17] = SketchMultiRotation_7.rotated()
+SketchLine_17.setName("SketchLine_38")
+SketchLine_17.result().setName("SketchLine_38")
+SketchLine_16.setName("SketchLine_33")
+SketchLine_16.result().setName("SketchLine_33")
+SketchMultiRotation_8 = Sketch_1.addRotation([SketchLine_2.result(), SketchLine_1.result()], SketchAPI_Line(SketchLine_3).startPoint(), "alpha+alpha_d1+alpha_d2+alpha_d3+alpha_d4", 2, True, True)
+[SketchLine_18, SketchLine_19] = SketchMultiRotation_8.rotated()
+SketchLine_19.setName("SketchLine_40")
+SketchLine_19.result().setName("SketchLine_40")
+SketchLine_18.setName("SketchLine_35")
+SketchLine_18.result().setName("SketchLine_35")
+SketchLine_20 = Sketch_1.addLine(32.13938048432696, 38.3022221559489, 32.13938048432696, 39.5987401577836)
+SketchLine_20.setName("SketchLine_47")
+SketchLine_20.result().setName("SketchLine_47")
+SketchConstraintCoincidence_9 = Sketch_1.setCoincident(SketchAPI_Line(SketchLine_19).startPoint(), SketchLine_20.startPoint())
+SketchConstraintCoincidence_10 = Sketch_1.setCoincident(SketchLine_20.endPoint(), SketchCircle_2.results()[1])
+SketchConstraintVertical_3 = Sketch_1.setVertical(SketchLine_20.result())
+SketchLine_21 = Sketch_1.addLine(-8.856057061013447, 50.22519540362261, -8.682408883346517, 49.2403876506104)
+SketchLine_21.setName("SketchLine_51")
+SketchLine_21.result().setName("SketchLine_51")
+SketchConstraintCoincidence_11 = Sketch_1.setCoincident(SketchAPI_Line(SketchLine_4).endPoint(), SketchLine_21.startPoint())
+SketchConstraintCoincidence_12 = Sketch_1.setCoincident(SketchAPI_Line(SketchLine_5).startPoint(), SketchLine_21.endPoint())
+SketchArc_1 = Sketch_1.addArc(-8.769232972179982, 49.7327915271165, -8.856057061013447, 50.22519540362261, -8.682408883328591, 49.24038765058431, False)
+SketchArc_1.setName("SketchArc_9")
+SketchArc_1.result().setName("SketchArc_9")
+SketchArc_1.results()[1].setName("SketchArc_9_2")
+SketchConstraintCoincidence_13 = Sketch_1.setCoincident(SketchAPI_Line(SketchLine_4).startPoint(), SketchArc_1.center())
+SketchConstraintCoincidence_14 = Sketch_1.setCoincident(SketchAPI_Line(SketchLine_4).endPoint(), SketchArc_1.startPoint())
+SketchConstraintCoincidence_15 = Sketch_1.setCoincident(SketchLine_21.result(), SketchArc_1.endPoint())
+model.do()
+Sketch_1.setName("Base")
+Sketch_1.result().setName("Base")
+Sketch_1.changeFacesOrder([[SketchCircle_1.results()[1], SketchCircle_1.results()[1], SketchCircle_1.results()[1], SketchCircle_1.results()[1], SketchCircle_1.results()[1], SketchCircle_1.results()[1], SketchCircle_1.results()[1], SketchCircle_1.results()[1], SketchCircle_1.results()[1], SketchCircle_1.results()[1]],
+                           [SketchLine_11.result(), SketchCircle_3.results()[1], SketchLine_1.result(), SketchCircle_1.results()[1]],
+                           [SketchCircle_1.results()[1], SketchLine_8.result(), SketchCircle_3.results()[1], SketchCircle_3.results()[1], SketchLine_19.result(), SketchCircle_1.results()[1]],
+                           [SketchLine_2.result(), SketchCircle_2.results()[1], SketchLine_4.result(), SketchCircle_3.results()[1]],
+                           [SketchLine_1.result(), SketchCircle_3.results()[1], SketchLine_5.result(), SketchCircle_1.results()[1]],
+                           [SketchCircle_2.results()[1], SketchCircle_2.results()[1], SketchLine_18.result(), SketchCircle_3.results()[1], SketchCircle_3.results()[1], SketchLine_9.result()],
+                           [SketchCircle_3.results()[1], SketchArc_1.results()[1], SketchLine_5.result()],
+                           [SketchLine_7.result(), SketchCircle_3.results()[1], SketchLine_8.result(), SketchCircle_1.results()[1]],
+                           [SketchArc_1.results()[1], SketchCircle_3.results()[1], SketchLine_7.result(), SketchCircle_1.results()[1]],
+                           [SketchLine_15.result(), SketchCircle_3.results()[1], SketchLine_13.result(), SketchCircle_1.results()[1]],
+                           [SketchLine_13.result(), SketchCircle_3.results()[1], SketchLine_11.result(), SketchCircle_1.results()[1]],
+                           [SketchLine_17.result(), SketchCircle_3.results()[1], SketchLine_15.result(), SketchCircle_1.results()[1]],
+                           [SketchLine_4.result(), SketchArc_1.results()[1], SketchCircle_3.results()[1]],
+                           [SketchCircle_3.results()[1], SketchLine_10.result(), SketchCircle_2.results()[1], SketchLine_2.result()],
+                           [SketchCircle_3.results()[1], SketchLine_20.result(), SketchLine_19.result()],
+                           [SketchCircle_2.results()[1], SketchLine_6.result(), SketchCircle_3.results()[1], SketchArc_1.results()[1]],
+                           [SketchCircle_2.results()[1], SketchLine_9.result(), SketchCircle_3.results()[1], SketchLine_6.result()],
+                           [SketchCircle_2.results()[1], SketchLine_10.result(), SketchCircle_3.results()[1], SketchLine_12.result()],
+                           [SketchLine_20.result(), SketchCircle_3.results()[1], SketchLine_17.result(), SketchCircle_1.results()[1]],
+                           [SketchCircle_2.results()[1], SketchLine_16.result(), SketchCircle_3.results()[1], SketchLine_20.result()],
+                           [SketchCircle_2.results()[1], SketchLine_12.result(), SketchCircle_3.results()[1], SketchLine_14.result()],
+                           [SketchCircle_2.results()[1], SketchLine_14.result(), SketchCircle_3.results()[1], SketchLine_16.result()],
+                           [SketchCircle_2.results()[1], SketchLine_20.result(), SketchCircle_3.results()[1], SketchLine_18.result()]
+                          ])
+model.do()
+Sketch_2 = model.addSketch(partSet, model.defaultPlane("XOZ"))
+SketchPoint_2 = Sketch_2.addPoint(-8.769232972179982, 0)
+SketchProjection_3 = Sketch_2.addProjection(model.selection("VERTEX", "Origin"), False)
+SketchProjection_3.setName("SketchProjection_4")
+SketchProjection_3.result().setName("SketchProjection_4")
+SketchPoint_3 = SketchProjection_3.createdFeature()
+SketchConstraintDistanceHorizontal_1 = Sketch_2.setHorizontalDistance(SketchPoint_2.coordinates(), SketchAPI_Point(SketchPoint_3).coordinates(), "(R+r)*sin(pi/180*alpha)")
+SketchProjection_4 = Sketch_2.addProjection(model.selection("EDGE", "OX"), False)
+SketchProjection_4.setName("SketchProjection_5")
+SketchProjection_4.result().setName("SketchProjection_5")
+SketchLine_22 = SketchProjection_4.createdFeature()
+SketchLine_22.setName("SketchLine_11")
+SketchLine_22.result().setName("SketchLine_11")
+SketchConstraintCoincidence_16 = Sketch_2.setCoincident(SketchPoint_2.coordinates(), SketchLine_22.result())
+SketchPoint_4 = Sketch_2.addPoint(-15.60535821593484, 0)
+SketchConstraintCoincidence_17 = Sketch_2.setCoincident(SketchLine_22.result(), SketchPoint_4.coordinates())
+SketchConstraintDistanceHorizontal_2 = Sketch_2.setHorizontalDistance(SketchPoint_4.coordinates(), SketchAPI_Line(SketchLine_22).startPoint(), "(R+r)*sin(pi/180*(alpha+alpha_g1))")
+SketchPoint_5 = Sketch_2.addPoint(-22.13774291284841, 0)
+SketchConstraintCoincidence_18 = Sketch_2.setCoincident(SketchPoint_5.coordinates(), SketchLine_22.result())
+SketchConstraintDistanceHorizontal_3 = Sketch_2.setHorizontalDistance(SketchPoint_5.coordinates(), SketchAPI_Line(SketchLine_22).startPoint(), "(R+r)*sin(pi/180*(alpha+alpha_g1+alpha_g2))")
+SketchArc_2 = Sketch_2.addArc(9.891954789997728, 17.56243472757491, -8.769232972179982, 0, -15.60535821593484, 15, True)
+SketchArc_2.setName("SketchArc_1")
+SketchArc_2.result().setName("SketchArc_1")
+SketchArc_2.results()[1].setName("SketchArc_1_2")
+SketchProjection_5 = Sketch_2.addProjection(model.selection("EDGE", "OZ"), False)
+SketchProjection_5.setName("SketchProjection_6")
+SketchProjection_5.result().setName("SketchProjection_6")
+SketchLine_23 = SketchProjection_5.createdFeature()
+SketchLine_23.setName("SketchLine_19")
+SketchLine_23.result().setName("SketchLine_19")
+SketchLine_24 = Sketch_2.addLine(-15.60535821593484, 0, -15.60535821593484, 15)
+SketchLine_24.setName("SketchLine_22")
+SketchLine_24.result().setName("SketchLine_22")
+SketchConstraintCoincidence_19 = Sketch_2.setCoincident(SketchPoint_4.coordinates(), SketchLine_24.startPoint())
+SketchConstraintCoincidence_20 = Sketch_2.setCoincident(SketchArc_2.endPoint(), SketchLine_24.endPoint())
+SketchConstraintVertical_4 = Sketch_2.setVertical(SketchLine_24.result())
+SketchLine_25 = Sketch_2.addLine(-15.60535821593484, 15, -22.13774291284841, 80)
+SketchLine_25.setName("SketchLine_23")
+SketchLine_25.result().setName("SketchLine_23")
+SketchConstraintCoincidence_21 = Sketch_2.setCoincident(SketchArc_2.endPoint(), SketchLine_25.startPoint())
+SketchLine_26 = Sketch_2.addLine(-22.13774291284841, 80, -22.13774291284841, 0)
+SketchLine_26.setName("SketchLine_25")
+SketchLine_26.result().setName("SketchLine_25")
+SketchConstraintCoincidence_22 = Sketch_2.setCoincident(SketchLine_25.endPoint(), SketchLine_26.startPoint())
+SketchConstraintCoincidence_23 = Sketch_2.setCoincident(SketchPoint_5.coordinates(), SketchLine_26.endPoint())
+SketchConstraintTangent_1 = Sketch_2.setTangent(SketchLine_25.result(), SketchArc_2.results()[1])
+SketchConstraintCoincidence_24 = Sketch_2.setCoincident(SketchArc_2.startPoint(), SketchPoint_2.coordinates())
+SketchConstraintVertical_5 = Sketch_2.setVertical(SketchLine_26.result())
+SketchConstraintLength_1 = Sketch_2.setLength(SketchLine_26.result(), "H")
+SketchLine_27 = Sketch_2.addLine(-22.13774291284841, 80, 0, 80)
+SketchLine_27.setName("SketchLine_26")
+SketchLine_27.result().setName("SketchLine_26")
+SketchConstraintCoincidence_25 = Sketch_2.setCoincident(SketchLine_27.endPoint(), SketchLine_23.result())
+SketchConstraintHorizontal_1 = Sketch_2.setHorizontal(SketchLine_27.result())
+SketchConstraintLength_2 = Sketch_2.setLength(SketchLine_24.result(), "h_left_b")
+SketchLine_28 = Sketch_2.addLine(0, 90, 0, 80)
+SketchLine_28.setName("SketchLine_27")
+SketchLine_28.result().setName("SketchLine_27")
+SketchConstraintCoincidence_26 = Sketch_2.setCoincident(SketchLine_27.endPoint(), SketchLine_28.endPoint())
+SketchLine_29 = Sketch_2.addLine(0, 80, 0, 0)
+SketchLine_29.setName("SketchLine_28")
+SketchLine_29.result().setName("SketchLine_28")
+SketchConstraintCoincidence_27 = Sketch_2.setCoincident(SketchLine_27.endPoint(), SketchLine_29.startPoint())
+SketchConstraintCoincidence_28 = Sketch_2.setCoincident(SketchAPI_Point(SketchPoint_3).coordinates(), SketchLine_29.endPoint())
+SketchLine_30 = Sketch_2.addLine(0, 0, -8.769232972179982, 0)
+SketchLine_30.setName("SketchLine_29")
+SketchLine_30.result().setName("SketchLine_29")
+SketchConstraintCoincidence_29 = Sketch_2.setCoincident(SketchAPI_Point(SketchPoint_3).coordinates(), SketchLine_30.startPoint())
+SketchConstraintCoincidence_30 = Sketch_2.setCoincident(SketchPoint_2.coordinates(), SketchLine_30.endPoint())
+SketchArc_3 = Sketch_2.addArc(-21.14275492577, 80.09999452769853, -22.13774291284841, 80, -21.85792509603332, 80.79894490330864, True)
+SketchArc_3.setName("SketchArc_2")
+SketchArc_3.result().setName("SketchArc_2")
+SketchArc_3.results()[1].setName("SketchArc_2_2")
+SketchConstraintCoincidence_31 = Sketch_2.setCoincident(SketchLine_25.endPoint(), SketchArc_3.startPoint())
+SketchArc_4 = Sketch_2.addArc(0, 59.43674945504897, -21.85792509603332, 80.79894490330864, 0, 90, True)
+SketchArc_4.setName("SketchArc_3")
+SketchArc_4.result().setName("SketchArc_3")
+SketchArc_4.results()[1].setName("SketchArc_3_2")
+SketchConstraintCoincidence_32 = Sketch_2.setCoincident(SketchArc_3.endPoint(), SketchArc_4.startPoint())
+SketchConstraintCoincidence_33 = Sketch_2.setCoincident(SketchArc_4.endPoint(), SketchLine_28.startPoint())
+SketchConstraintVertical_6 = Sketch_2.setVertical(SketchLine_28.result())
+SketchConstraintLength_3 = Sketch_2.setLength(SketchLine_28.result(), "h")
+SketchConstraintCoincidence_34 = Sketch_2.setCoincident(SketchLine_27.startPoint(), SketchLine_26.startPoint())
+SketchConstraintTangent_2 = Sketch_2.setTangent(SketchArc_3.results()[1], SketchArc_4.results()[1])
+SketchConstraintTangent_3 = Sketch_2.setTangent(SketchArc_3.results()[1], SketchLine_25.result())
+SketchConstraintRadius_3 = Sketch_2.setRadius(SketchArc_3.results()[1], "2*r")
+SketchPoint_6 = Sketch_2.addPoint(8.769232972179982, 0)
+SketchConstraintCoincidence_35 = Sketch_2.setCoincident(SketchPoint_6.coordinates(), SketchLine_22.result())
+SketchConstraintDistanceHorizontal_4 = Sketch_2.setHorizontalDistance(SketchPoint_6.coordinates(), SketchLine_30.startPoint(), "(R+r)*sin(pi/180*alpha)")
+SketchPoint_7 = Sketch_2.addPoint(13.91968646875846, 0)
+SketchConstraintCoincidence_36 = Sketch_2.setCoincident(SketchPoint_7.coordinates(), SketchLine_22.result())
+SketchConstraintDistanceHorizontal_5 = Sketch_2.setHorizontalDistance(SketchLine_30.startPoint(), SketchPoint_7.coordinates(), "(R+r)*sin(pi/180*(alpha+alpha_d1))")
+SketchPoint_8 = Sketch_2.addPoint(20.54020047532791, 0)
+SketchConstraintCoincidence_37 = Sketch_2.setCoincident(SketchPoint_8.coordinates(), SketchLine_22.result())
+SketchConstraintDistanceHorizontal_6 = Sketch_2.setHorizontalDistance(SketchPoint_8.coordinates(), SketchLine_30.startPoint(), "(R+r)*sin(pi/180*(alpha+alpha_d1+alpha_d2))")
+SketchPoint_9 = Sketch_2.addPoint(26.76092284377685, 0)
+SketchConstraintCoincidence_38 = Sketch_2.setCoincident(SketchPoint_9.coordinates(), SketchLine_22.result())
+SketchConstraintDistanceHorizontal_7 = Sketch_2.setHorizontalDistance(SketchPoint_9.coordinates(), SketchLine_30.startPoint(), "(R+r)*sin(pi/180*(alpha+alpha_d1+alpha_d2+alpha_d3))")
+SketchPoint_10 = Sketch_2.addPoint(32.46077428917023, 0)
+SketchConstraintCoincidence_39 = Sketch_2.setCoincident(SketchPoint_10.coordinates(), SketchLine_22.result())
+SketchConstraintDistanceHorizontal_8 = Sketch_2.setHorizontalDistance(SketchPoint_10.coordinates(), SketchLine_30.startPoint(), "(R+r)*sin(pi/180*(alpha+alpha_d1+alpha_d2+alpha_d3+alpha_d4))")
+SketchLine_31 = Sketch_2.addLine(0, 0, 8.769232972179982, 0)
+SketchLine_31.setName("SketchLine_37")
+SketchLine_31.result().setName("SketchLine_37")
+SketchConstraintCoincidence_40 = Sketch_2.setCoincident(SketchAPI_Point(SketchPoint_3).coordinates(), SketchLine_31.startPoint())
+SketchConstraintCoincidence_41 = Sketch_2.setCoincident(SketchPoint_6.coordinates(), SketchLine_31.endPoint())
+SketchLine_32 = Sketch_2.addLine(13.91968646875846, 10, 13.91968646875846, 0)
+SketchLine_32.setName("SketchLine_39")
+SketchLine_32.result().setName("SketchLine_39")
+SketchConstraintCoincidence_42 = Sketch_2.setCoincident(SketchPoint_7.coordinates(), SketchLine_32.endPoint())
+SketchLine_33 = Sketch_2.addLine(13.91968646875846, 10, 20.54020047532791, 55)
+SketchLine_33.setName("SketchLine_41")
+SketchLine_33.result().setName("SketchLine_41")
+SketchLine_34 = Sketch_2.addLine(20.54020047532791, 55, 20.54020047532791, 0)
+SketchLine_34.setName("SketchLine_42")
+SketchLine_34.result().setName("SketchLine_42")
+SketchConstraintCoincidence_43 = Sketch_2.setCoincident(SketchLine_33.endPoint(), SketchLine_34.startPoint())
+SketchConstraintCoincidence_44 = Sketch_2.setCoincident(SketchPoint_8.coordinates(), SketchLine_34.endPoint())
+SketchConstraintVertical_7 = Sketch_2.setVertical(SketchLine_34.result())
+SketchArc_5 = Sketch_2.addArc(60.54593105342065, 49.11425556365985, 20.54020047532791, 55, 26.76092284377685, 71.33302436238394, True)
+SketchArc_5.setName("SketchArc_5")
+SketchArc_5.result().setName("SketchArc_5")
+SketchArc_5.results()[1].setName("SketchArc_5_2")
+SketchConstraintCoincidence_45 = Sketch_2.setCoincident(SketchLine_33.endPoint(), SketchArc_5.startPoint())
+SketchLine_35 = Sketch_2.addLine(26.76092284377685, 0, 26.76092284377685, 71.33302436238394)
+SketchLine_35.setName("SketchLine_43")
+SketchLine_35.result().setName("SketchLine_43")
+SketchConstraintCoincidence_46 = Sketch_2.setCoincident(SketchPoint_9.coordinates(), SketchLine_35.startPoint())
+SketchConstraintCoincidence_47 = Sketch_2.setCoincident(SketchArc_5.endPoint(), SketchLine_35.endPoint())
+SketchLine_36 = Sketch_2.addLine(26.76092284377685, 71.33302436238394, 32.46077428917023, 80)
+SketchLine_36.setName("SketchLine_44")
+SketchLine_36.result().setName("SketchLine_44")
+SketchConstraintCoincidence_48 = Sketch_2.setCoincident(SketchArc_5.endPoint(), SketchLine_36.startPoint())
+SketchLine_37 = Sketch_2.addLine(32.46077428917023, 80, 32.46077428917023, 0)
+SketchLine_37.setName("SketchLine_45")
+SketchLine_37.result().setName("SketchLine_45")
+SketchConstraintCoincidence_49 = Sketch_2.setCoincident(SketchLine_36.endPoint(), SketchLine_37.startPoint())
+SketchConstraintCoincidence_50 = Sketch_2.setCoincident(SketchPoint_10.coordinates(), SketchLine_37.endPoint())
+SketchConstraintVertical_8 = Sketch_2.setVertical(SketchLine_37.result())
+SketchConstraintVertical_9 = Sketch_2.setVertical(SketchLine_35.result())
+SketchConstraintVertical_10 = Sketch_2.setVertical(SketchLine_32.result())
+SketchConstraintTangent_4 = Sketch_2.setTangent(SketchArc_5.results()[1], SketchLine_33.result())
+SketchConstraintTangent_5 = Sketch_2.setTangent(SketchLine_36.result(), SketchArc_5.results()[1])
+SketchConstraintLength_4 = Sketch_2.setLength(SketchLine_37.result(), "H")
+SketchArc_6 = Sketch_2.addArc(0, 25.59750892852344, 0, 90, 32.1240655903332, 81.41619098175349, True)
+SketchArc_6.setName("SketchArc_6")
+SketchArc_6.result().setName("SketchArc_6")
+SketchArc_6.results()[1].setName("SketchArc_6_2")
+SketchConstraintCoincidence_51 = Sketch_2.setCoincident(SketchLine_23.result(), SketchArc_6.center())
+SketchConstraintCoincidence_52 = Sketch_2.setCoincident(SketchArc_6.startPoint(), SketchArc_4.endPoint())
+SketchConstraintCoincidence_53 = Sketch_2.setCoincident(SketchArc_4.center(), SketchLine_23.result())
+SketchArc_7 = Sketch_2.addArc(31.62526399033484, 80.54947478608211, 32.46077428917023, 80, 32.1240655903332, 81.41619098175349, False)
+SketchArc_7.setName("SketchArc_7")
+SketchArc_7.result().setName("SketchArc_7")
+SketchArc_7.results()[1].setName("SketchArc_7_2")
+SketchConstraintCoincidence_54 = Sketch_2.setCoincident(SketchLine_36.endPoint(), SketchArc_7.startPoint())
+SketchConstraintCoincidence_55 = Sketch_2.setCoincident(SketchArc_7.endPoint(), SketchArc_6.endPoint())
+SketchConstraintTangent_6 = Sketch_2.setTangent(SketchLine_36.result(), SketchArc_7.results()[1])
+SketchConstraintTangent_7 = Sketch_2.setTangent(SketchArc_6.results()[1], SketchArc_7.results()[1])
+SketchConstraintRadius_4 = Sketch_2.setRadius(SketchArc_7.results()[1], "2*r")
+SketchConstraintCoincidence_56 = Sketch_2.setCoincident(SketchLine_32.startPoint(), SketchLine_33.startPoint())
+SketchArc_8 = Sketch_2.addArc(-3.275111686817561, 12.52974226731389, 13.91968646875846, 10, 8.769232972179982, 0, True)
+SketchArc_8.setName("SketchArc_8")
+SketchArc_8.result().setName("SketchArc_8")
+SketchArc_8.results()[1].setName("SketchArc_8_2")
+SketchConstraintCoincidence_57 = Sketch_2.setCoincident(SketchArc_8.startPoint(), SketchLine_32.startPoint())
+SketchConstraintCoincidence_58 = Sketch_2.setCoincident(SketchArc_8.endPoint(), SketchLine_31.endPoint())
+SketchConstraintTangent_8 = Sketch_2.setTangent(SketchArc_8.results()[1], SketchLine_33.result())
+SketchConstraintLength_5 = Sketch_2.setLength(SketchLine_32.result(), "h_right_b")
+SketchConstraintDistanceVertical_1 = Sketch_2.setVerticalDistance(SketchLine_37.startPoint(), SketchLine_34.startPoint(), "h_right_t")
+SketchCircle_4 = Sketch_2.addCircle(0, -23.41154743026679, 25)
+SketchCircle_4.setName("SketchCircle_6")
+SketchCircle_4.result().setName("SketchCircle_6")
+SketchCircle_4.results()[1].setName("SketchCircle_6_2")
+SketchConstraintCoincidence_59 = Sketch_2.setCoincident(SketchLine_23.result(), SketchCircle_4.center())
+SketchConstraintRadius_5 = Sketch_2.setRadius(SketchCircle_4.results()[1], "R_rotor")
+SketchConstraintCoincidence_60 = Sketch_2.setCoincident(SketchCircle_4.results()[1], SketchArc_2.startPoint())
+model.do()
+Sketch_2.setName("Shape")
+Sketch_2.result().setName("Shape")
+Sketch_2.changeFacesOrder([[SketchLine_27.result(), SketchLine_28.result(), SketchArc_4.results()[1], SketchArc_3.results()[1]],
+                           [SketchArc_2.results()[1], SketchCircle_4.results()[1], SketchLine_29.result(), SketchLine_27.result(), SketchLine_25.result()],
+                           [SketchCircle_4.results()[1], SketchLine_30.result(), SketchLine_29.result()],
+                           [SketchLine_30.result(), SketchCircle_4.results()[1], SketchCircle_4.results()[1], SketchLine_31.result()],
+                           [SketchLine_28.result(), SketchLine_29.result(), SketchCircle_4.results()[1], SketchArc_8.results()[1], SketchLine_33.result(), SketchArc_5.results()[1], SketchLine_36.result(), SketchArc_7.results()[1], SketchArc_6.results()[1]],
+                           [SketchLine_29.result(), SketchLine_31.result(), SketchCircle_4.results()[1]]
+                          ])
+model.do()
+Part_1 = model.addPart(partSet)
+Part_1.setName("Blade")
+Part_1.result().setName("Blade")
+Part_1_doc = Part_1.document()
+Wire_1 = model.addWire(Part_1_doc, [model.selection("EDGE", "PartSet/Shape/SketchArc_1_2")], False)
+Wire_2 = model.addWire(Part_1_doc, [model.selection("EDGE", "PartSet/Shape/SketchLine_23")], False)
+Wire_3 = model.addWire(Part_1_doc, [model.selection("EDGE", "PartSet/Shape/SketchArc_2_2")], False)
+Wire_4 = model.addWire(Part_1_doc, [model.selection("EDGE", "PartSet/Shape/SketchArc_3_2")], False)
+Wire_5 = model.addWire(Part_1_doc, [model.selection("EDGE", "PartSet/Shape/SketchArc_6_2")], False)
+Wire_6 = model.addWire(Part_1_doc, [model.selection("EDGE", "PartSet/Shape/SketchArc_7_2")], False)
+Wire_7 = model.addWire(Part_1_doc, [model.selection("EDGE", "PartSet/Shape/SketchLine_44")], False)
+Wire_8 = model.addWire(Part_1_doc, [model.selection("EDGE", "PartSet/Shape/SketchArc_5_2")], False)
+Wire_9 = model.addWire(Part_1_doc, [model.selection("EDGE", "PartSet/Shape/SketchLine_41")], False)
+Wire_10 = model.addWire(Part_1_doc, [model.selection("EDGE", "PartSet/Shape/SketchArc_8_2")], False)
+Wire_11 = model.addWire(Part_1_doc, [model.selection("EDGE", "PartSet/Shape/SketchLine_29")], False)
+Wire_12 = model.addWire(Part_1_doc, [model.selection("EDGE", "PartSet/Shape/SketchLine_37")], False)
+Face_1_objects = [model.selection("WIRE", "Wire_1_1"), model.selection("WIRE", "Wire_2_1"), model.selection("WIRE", "Wire_3_1"), model.selection("WIRE", "Wire_4_1"), model.selection("WIRE", "Wire_5_1"), model.selection("WIRE", "Wire_6_1"), model.selection("WIRE", "Wire_7_1"), model.selection("WIRE", "Wire_8_1"), model.selection("WIRE", "Wire_9_1"), model.selection("WIRE", "Wire_10_1"), model.selection("WIRE", "Wire_11_1"), model.selection("WIRE", "Wire_12_1")]
+Face_1 = model.addFace(Part_1_doc, Face_1_objects)
+Wire_13 = model.addWire(Part_1_doc, [model.selection("EDGE", "PartSet/Base/SketchCircle_5_2")], False)
+Pipe_1 = model.addPipe(Part_1_doc, [model.selection("WIRE", "Wire_13_1")], model.selection("EDGE", "PartSet/OZ"))
+Pipe_2 = model.addPipe(Part_1_doc, [model.selection("FACE", "Face_1_1")], model.selection("EDGE", "PartSet/OY"))
+Common_1 = model.addCommon(Part_1_doc, [model.selection("FACE", "Pipe_1_1"), model.selection("SOLID", "Pipe_2_1")])
+Scale_1 = model.addScale(Part_1_doc, [model.selection("FACE", "Common_1_1")] , model.selection("VERTEX", "PartSet/Origin"), "(R+2*r)/(R+r)" , "(R+2*r)/(R+r)", 1)
+Wire_14 = model.addWire(Part_1_doc, [model.selection("EDGE", "PartSet/Shape/SketchArc_1_2")], False)
+Wire_15 = model.addWire(Part_1_doc, [model.selection("EDGE", "PartSet/Shape/SketchLine_23")], False)
+Wire_16 = model.addWire(Part_1_doc, [model.selection("EDGE", "PartSet/Shape/SketchArc_2_2")], False)
+Wire_17 = model.addWire(Part_1_doc, [model.selection("EDGE", "PartSet/Shape/SketchArc_3_2")], False)
+Wire_18 = model.addWire(Part_1_doc, [model.selection("EDGE", "PartSet/Shape/SketchArc_6_2")], False)
+Wire_19 = model.addWire(Part_1_doc, [model.selection("EDGE", "PartSet/Shape/SketchArc_7_2")], False)
+Wire_20 = model.addWire(Part_1_doc, [model.selection("EDGE", "PartSet/Shape/SketchLine_44")], False)
+Wire_21 = model.addWire(Part_1_doc, [model.selection("EDGE", "PartSet/Shape/SketchArc_5_2")], False)
+Wire_22 = model.addWire(Part_1_doc, [model.selection("EDGE", "PartSet/Shape/SketchLine_41")], False)
+Wire_23 = model.addWire(Part_1_doc, [model.selection("EDGE", "PartSet/Shape/SketchArc_8_2")], False)
+Wire_24 = model.addWire(Part_1_doc, [model.selection("EDGE", "PartSet/Shape/SketchLine_37")], False)
+Wire_25 = model.addWire(Part_1_doc, [model.selection("EDGE", "PartSet/Shape/SketchLine_29")], False)
+Face_2_objects = [model.selection("WIRE", "Wire_25_1"), model.selection("WIRE", "Wire_24_1"), model.selection("WIRE", "Wire_23_1"), model.selection("WIRE", "Wire_21_1"), model.selection("WIRE", "Wire_22_1"), model.selection("WIRE", "Wire_20_1"), model.selection("WIRE", "Wire_18_1"), model.selection("WIRE", "Wire_19_1"), model.selection("WIRE", "Wire_17_1"), model.selection("WIRE", "Wire_16_1"), model.selection("WIRE", "Wire_15_1"), model.selection("WIRE", "Wire_14_1")]
+Face_2 = model.addFace(Part_1_doc, Face_2_objects)
+Wire_26 = model.addWire(Part_1_doc, [model.selection("EDGE", "PartSet/Base/SketchCircle_5_2")], False)
+Pipe_3 = model.addPipe(Part_1_doc, [model.selection("WIRE", "Wire_26_1")], model.selection("EDGE", "PartSet/OZ"))
+Pipe_4 = model.addPipe(Part_1_doc, [model.selection("FACE", "Face_2_1")], model.selection("EDGE", "PartSet/OY"))
+Common_2 = model.addCommon(Part_1_doc, [model.selection("FACE", "Pipe_3_1"), model.selection("SOLID", "Pipe_4_1")])
+Scale_2 = model.addScale(Part_1_doc, [model.selection("FACE", "Common_2_1")] , model.selection("VERTEX", "PartSet/Origin"), "R/(R+r)" , "R/(R+r)", 1)
+Wire_27 = model.addWire(Part_1_doc, [model.selection("EDGE", "PartSet/Shape/SketchArc_1_2")], False)
+Wire_28 = model.addWire(Part_1_doc, [model.selection("EDGE", "PartSet/Shape/SketchLine_23")], False)
+Wire_29 = model.addWire(Part_1_doc, [model.selection("EDGE", "PartSet/Shape/SketchArc_2_2")], False)
+Wire_30 = model.addWire(Part_1_doc, [model.selection("EDGE", "PartSet/Shape/SketchArc_3_2")], False)
+Wire_31 = model.addWire(Part_1_doc, [model.selection("EDGE", "PartSet/Shape/SketchArc_6_2")], False)
+Wire_32 = model.addWire(Part_1_doc, [model.selection("EDGE", "PartSet/Shape/SketchArc_7_2")], False)
+Wire_33 = model.addWire(Part_1_doc, [model.selection("EDGE", "PartSet/Shape/SketchLine_44")], False)
+Wire_34 = model.addWire(Part_1_doc, [model.selection("EDGE", "PartSet/Shape/SketchArc_5_2")], False)
+Wire_35 = model.addWire(Part_1_doc, [model.selection("EDGE", "PartSet/Shape/SketchLine_41")], False)
+Wire_36 = model.addWire(Part_1_doc, [model.selection("EDGE", "PartSet/Shape/SketchArc_8_2")], False)
+Wire_37 = model.addWire(Part_1_doc, [model.selection("EDGE", "PartSet/Shape/SketchLine_37")], False)
+Wire_38 = model.addWire(Part_1_doc, [model.selection("EDGE", "PartSet/Shape/SketchLine_29")], False)
+Face_3_objects = [model.selection("WIRE", "Wire_27_1"), model.selection("WIRE", "Wire_28_1"), model.selection("WIRE", "Wire_29_1"), model.selection("WIRE", "Wire_30_1"), model.selection("WIRE", "Wire_31_1"), model.selection("WIRE", "Wire_32_1"), model.selection("WIRE", "Wire_33_1"), model.selection("WIRE", "Wire_34_1"), model.selection("WIRE", "Wire_35_1"), model.selection("WIRE", "Wire_36_1"), model.selection("WIRE", "Wire_37_1"), model.selection("WIRE", "Wire_38_1")]
+Face_3 = model.addFace(Part_1_doc, Face_3_objects)
+Wire_39 = model.addWire(Part_1_doc, [model.selection("EDGE", "PartSet/Base/SketchCircle_5_2")], False)
+Pipe_5 = model.addPipe(Part_1_doc, [model.selection("WIRE", "Wire_39_1")], model.selection("EDGE", "PartSet/OZ"))
+Pipe_6 = model.addPipe(Part_1_doc, [model.selection("FACE", "Face_3_1")], model.selection("EDGE", "PartSet/OY"))
+Common_3 = model.addCommon(Part_1_doc, [model.selection("FACE", "Pipe_5_1"), model.selection("SOLID", "Pipe_6_1")])
+Filling_1 = model.addFilling(Part_1_doc, [model.selection("EDGE", "Scale_2_1/ME:Scaled&PartSet/OY/OY&PartSet/Shape/SketchLine_41&Wire_26_1/Wire_26_1"), model.selection("EDGE", "Scale_1_1/ME:Scaled&PartSet/OY/OY&PartSet/Shape/SketchLine_41&Wire_13_1/Wire_13_1")])
+Filling_2 = model.addFilling(Part_1_doc, [model.selection("EDGE", "Scale_2_1/ME:Scaled&PartSet/OY/OY&PartSet/Shape/SketchArc_7_2&Wire_26_1/Wire_26_1"), model.selection("EDGE", "Scale_1_1/ME:Scaled&PartSet/OY/OY&PartSet/Shape/SketchArc_7_2&Wire_13_1/Wire_13_1")])
+Filling_3 = model.addFilling(Part_1_doc, [model.selection("EDGE", "Scale_2_1/ME:Scaled&PartSet/OY/OY&PartSet/Shape/SketchArc_8_2&Wire_26_1/Wire_26_1"), model.selection("EDGE", "Scale_1_1/ME:Scaled&PartSet/OY/OY&PartSet/Shape/SketchArc_8_2&Wire_13_1/Wire_13_1")])
+Filling_4 = model.addFilling(Part_1_doc, [model.selection("EDGE", "Scale_2_1/ME:Scaled&PartSet/OY/OY&PartSet/Shape/SketchArc_5_2&Wire_26_1/Wire_26_1"), model.selection("EDGE", "Scale_1_1/ME:Scaled&PartSet/OY/OY&PartSet/Shape/SketchArc_5_2&Wire_13_1/Wire_13_1")])
+Filling_5 = model.addFilling(Part_1_doc, [model.selection("EDGE", "Scale_1_1/ME:Scaled&PartSet/OY/OY&PartSet/Shape/SketchLine_44&Wire_13_1/Wire_13_1"), model.selection("EDGE", "Scale_2_1/ME:Scaled&PartSet/OY/OY&PartSet/Shape/SketchLine_44&Wire_26_1/Wire_26_1")])
+Filling_6 = model.addFilling(Part_1_doc, [model.selection("EDGE", "Scale_1_1/ME:Scaled&PartSet/OY/OY&PartSet/Shape/SketchArc_6_2&Wire_13_1/Wire_13_1"), model.selection("EDGE", "Scale_2_1/ME:Scaled&PartSet/OY/OY&PartSet/Shape/SketchArc_6_2&Wire_26_1/Wire_26_1")])
+Filling_7 = model.addFilling(Part_1_doc, [model.selection("EDGE", "Scale_1_1/ME:Scaled&PartSet/OY/OY&PartSet/Shape/SketchArc_3_2&Wire_13_1/Wire_13_1"), model.selection("EDGE", "Scale_2_1/ME:Scaled&PartSet/OY/OY&PartSet/Shape/SketchArc_3_2&Wire_26_1/Wire_26_1")])
+Filling_8 = model.addFilling(Part_1_doc, [model.selection("EDGE", "Scale_1_1/ME:Scaled&PartSet/OY/OY&PartSet/Shape/SketchArc_2_2&Wire_13_1/Wire_13_1"), model.selection("EDGE", "Scale_2_1/ME:Scaled&PartSet/OY/OY&PartSet/Shape/SketchArc_2_2&Wire_26_1/Wire_26_1")])
+Filling_9 = model.addFilling(Part_1_doc, [model.selection("EDGE", "Scale_1_1/ME:Scaled&PartSet/OY/OY&PartSet/Shape/SketchLine_23&Wire_13_1/Wire_13_1"), model.selection("EDGE", "Scale_2_1/ME:Scaled&PartSet/OY/OY&PartSet/Shape/SketchLine_23&Wire_26_1/Wire_26_1")])
+Filling_10 = model.addFilling(Part_1_doc, [model.selection("EDGE", "Scale_1_1/ME:Scaled&PartSet/OY/OY&PartSet/Shape/SketchArc_1_2&Wire_13_1/Wire_13_1"), model.selection("EDGE", "Scale_2_1/ME:Scaled&PartSet/OY/OY&PartSet/Shape/SketchArc_1_2&Wire_26_1/Wire_26_1")])
+Filling_11 = model.addFilling(Part_1_doc, [model.selection("EDGE", "(Scale_2_1/ME:Scaled&PartSet/OY/OY&PartSet/Shape/SketchArc_8_2&Wire_26_1/Wire_26_1)(Scale_2_1/ME:Scaled&PartSet/OY/OY&PartSet/Shape/SketchLine_41&Wire_26_1/Wire_26_1)2(Scale_2_1/ME:Scaled&PartSet/OY/OY&PartSet/Shape/SketchArc_1_2&Wire_26_1/Wire_26_1)2"), model.selection("EDGE", "(Scale_1_1/ME:Scaled&PartSet/OY/OY&PartSet/Shape/SketchArc_8_2&Wire_13_1/Wire_13_1)(Scale_1_1/ME:Scaled&PartSet/OY/OY&PartSet/Shape/SketchLine_41&Wire_13_1/Wire_13_1)2(Scale_1_1/ME:Scaled&PartSet/OY/OY&PartSet/Shape/SketchArc_1_2&Wire_13_1/Wire_13_1)2")])
+Filling_12 = model.addFilling(Part_1_doc, [model.selection("EDGE", "(Scale_2_1/ME:Scaled&PartSet/OY/OY&PartSet/Shape/SketchArc_1_2&Wire_26_1/Wire_26_1)(Scale_2_1/ME:Scaled&PartSet/OY/OY&PartSet/Shape/SketchArc_8_2&Wire_26_1/Wire_26_1)2(Scale_2_1/ME:Scaled&PartSet/OY/OY&PartSet/Shape/SketchLine_23&Wire_26_1/Wire_26_1)2"), model.selection("EDGE", "(Scale_1_1/ME:Scaled&PartSet/OY/OY&PartSet/Shape/SketchArc_1_2&Wire_13_1/Wire_13_1)(Scale_1_1/ME:Scaled&PartSet/OY/OY&PartSet/Shape/SketchArc_8_2&Wire_13_1/Wire_13_1)2(Scale_1_1/ME:Scaled&PartSet/OY/OY&PartSet/Shape/SketchLine_23&Wire_13_1/Wire_13_1)2")])
+Shell_1_objects = [model.selection("FACE", "Scale_1_1"), model.selection("FACE", "Scale_2_1"), model.selection("FACE", "Filling_1_1"), model.selection("FACE", "Filling_2_1"), model.selection("FACE", "Filling_3_1"), model.selection("FACE", "Filling_4_1"), model.selection("FACE", "Filling_5_1"), model.selection("FACE", "Filling_6_1"), model.selection("FACE", "Filling_7_1"), model.selection("FACE", "Filling_8_1"), model.selection("FACE", "Filling_9_1"), model.selection("FACE", "Filling_10_1"), model.selection("FACE", "Filling_11_1"), model.selection("FACE", "Filling_12_1")]
+Shell_1 = model.addShell(Part_1_doc, Shell_1_objects)
+Solid_1 = model.addSolid(Part_1_doc, [model.selection("SHELL", "Shell_1_1")])
+Fillet_1 = model.addFillet(Part_1_doc, [model.selection("FACE", "Shell_1_1/Modified_Face&Wire_26_1/Wire_26_1")], "r/2")
+Fillet_1.result().setDeflection(1e-05)
+Fillet_2 = model.addFillet(Part_1_doc, [model.selection("FACE", "Shell_1_1/Modified_Face&Wire_13_1/Wire_13_1")], "r/2")
+Fillet_2.result().setDeflection(1e-05)
+Folder_1 = model.addFolder(Part_1_doc, Wire_1, Scale_1)
+Folder_1.setName("EXT")
+Folder_2 = model.addFolder(Part_1_doc, Wire_14, Scale_2)
+Folder_2.setName("Int")
+Folder_3 = model.addFolder(Part_1_doc, Wire_27, Fillet_2)
+Folder_3.setName("INT")
+model.do()
+
+model.end()
+
+from GeomAPI import *
+
+model.testNbResults(Part_1, 1)
+model.testNbSubResults(Part_1, [0])
+model.testNbSubShapes(Part_1, GeomAPI_Shape.SOLID, [1])
+model.testNbSubShapes(Part_1, GeomAPI_Shape.FACE, [39])
+model.testNbSubShapes(Part_1, GeomAPI_Shape.EDGE, [180])
+model.testNbSubShapes(Part_1, GeomAPI_Shape.VERTEX, [360])
+model.testResultsVolumes(Part_1, [3435.010412])
+
+assert(model.checkPythonDump())