Salome HOME
Copyright update 2022
[modules/shaper.git] / test.models / gear.py
index c08ffd7030bff0a6d1da9464f276c761a9380604..f471c89217ccf64725e15cc4b0bd86fe070216ee 100644 (file)
@@ -1,9 +1,29 @@
+# Copyright (C) 2014-2022  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()
+Parameter_R = model.addParameter(partSet, "R", "15.5")
 Sketch_1 = model.addSketch(partSet, model.defaultPlane("XOY"))
 SketchLine_1 = Sketch_1.addLine(0, 0, 30, 0)
 SketchPoint_1 = Sketch_1.addPoint(model.selection("VERTEX", "Origin"))
@@ -25,17 +45,17 @@ SketchConstraintCoincidence_8 = Sketch_1.setCoincident(SketchLine_6.endPoint(),
 SketchConstraintHorizontal_1 = Sketch_1.setHorizontal(SketchLine_4.result())
 SketchConstraintVertical_1 = Sketch_1.setVertical(SketchLine_3.result())
 SketchConstraintVertical_2 = Sketch_1.setVertical(SketchLine_5.result())
-SketchConstraintVertical_3 = Sketch_1.setVertical(SketchLine_8.result())
 SketchConstraintHorizontal_2 = Sketch_1.setHorizontal(SketchLine_6.result())
 SketchConstraintDistance_1 = Sketch_1.setDistance(SketchLine_1.endPoint(), SketchLine_8.result(), 30)
 SketchConstraintLength_1 = Sketch_1.setLength(SketchLine_3.result(), 37.5)
-SketchConstraintLength_2 = Sketch_1.setLength(SketchLine_8.result(), 15.5)
+SketchConstraintLength_2 = Sketch_1.setLength(SketchLine_8.result(), "R")
 SketchConstraintCoincidence_9 = Sketch_1.setCoincident(SketchLine_1.startPoint(), SketchPoint_1.coordinates())
 SketchConstraintLength_3 = Sketch_1.setLength(SketchLine_4.result(), 13)
 SketchConstraintCoincidence_10 = Sketch_1.setCoincident(SketchLine_8.endPoint(), SketchLine_1.startPoint())
 model.do()
 Part_1 = model.addPart(partSet)
 Part_1_doc = Part_1.document()
+model.addParameter(Part_1_doc, "R_fillet", "0.5")
 Sketch_2 = model.addSketch(Part_1_doc, model.defaultPlane("YOZ"))
 SketchPoint_2 = Sketch_2.addPoint(model.selection("VERTEX", "PartSet/Origin"))
 SketchLine_9 = Sketch_2.addLine(0, 0, 0, 45.59203984275747)
@@ -43,22 +63,21 @@ SketchLine_9.setAuxiliary(True)
 SketchConstraintCoincidence_11 = Sketch_2.setCoincident(SketchPoint_2.coordinates(), SketchLine_9.startPoint())
 SketchConstraintVertical_4 = Sketch_2.setVertical(SketchLine_9.result())
 SketchLine_10 = Sketch_2.addLine(-2.5, 37.41657386773942, -0.9611800001338426, 34.11656372860793)
-SketchArc_1 = Sketch_2.addArc(0, 34.39248583236681, -0.9611800001338426, 34.11656372860793, 0.9611800001338454, 34.11656372860793, False)
+SketchArc_1 = Sketch_2.addArc(0, 34.39248583236681, -0.9611800001338426, 34.11656372860793, 0, 33.39248583236681, False)
 SketchConstraintCoincidence_12 = Sketch_2.setCoincident(SketchLine_10.endPoint(), SketchArc_1.startPoint())
 SketchConstraintCoincidence_13 = Sketch_2.setCoincident(SketchArc_1.center(), SketchLine_9.result())
-SketchConstraintMirror_1 = Sketch_2.addMirror(SketchLine_9.result(), [SketchLine_10.result()])
-[SketchLine_11] = SketchConstraintMirror_1.mirrored()
-SketchConstraintAngle_1 = Sketch_2.setAngleBackward(SketchLine_10.result(), SketchLine_9.result(), 204.9999999999999)
+SketchConstraintAngle_1 = Sketch_2.setAngleBackward(SketchLine_10.result(), SketchLine_9.result(), 205)
 SketchConstraintRadius_1 = Sketch_2.setRadius(SketchArc_1.results()[1], 1)
 SketchConstraintDistance_2 = Sketch_2.setDistance(SketchLine_10.startPoint(), SketchLine_9.result(), 2.5)
-SketchConstraintCoincidence_14 = Sketch_2.setCoincident(SketchArc_1.endPoint(), SketchAPI_Line(SketchLine_11).endPoint())
-SketchArc_2 = Sketch_2.addArc(0, 0, -2.5, 37.41657386773942, 2.5, 37.41657386773942, True)
+SketchConstraintCoincidence_14 = Sketch_2.setCoincident(SketchArc_1.endPoint(), SketchLine_9.result())
+SketchArc_2 = Sketch_2.addArc(0, 0, -2.5, 37.41657386773942, 0, 37.5, True)
 SketchConstraintCoincidence_15 = Sketch_2.setCoincident(SketchArc_2.center(), SketchPoint_2.result())
 SketchConstraintCoincidence_16 = Sketch_2.setCoincident(SketchLine_10.startPoint(), SketchArc_2.startPoint())
-SketchConstraintCoincidence_17 = Sketch_2.setCoincident(SketchAPI_Line(SketchLine_11).startPoint(), SketchArc_2.endPoint())
-SketchMultiRotation_1_objects = [SketchArc_1.results()[1], SketchLine_10.result(), SketchArc_2.results()[1], SketchLine_11.result()]
+SketchConstraintCoincidence_17 = Sketch_2.setCoincident(SketchLine_9.result(), SketchArc_2.endPoint())
+SketchConstraintMirror_1 = Sketch_2.addMirror(SketchLine_9.result(), [SketchLine_10.result(), SketchArc_1.results()[1], SketchArc_2.results()[1]])
+[SketchLine_11, SketchArc_3, SketchArc_4] = SketchConstraintMirror_1.mirrored()
+SketchMultiRotation_1_objects = [SketchArc_1.results()[1], SketchLine_10.result(), SketchArc_2.results()[1], SketchArc_3.results()[1], SketchLine_11.result(), SketchArc_4.results()[1]]
 SketchMultiRotation_1 = Sketch_2.addRotation(SketchMultiRotation_1_objects, SketchArc_2.center(), 12, 30)
-[SketchArc_3, SketchArc_4, SketchArc_5, SketchArc_6, SketchArc_7, SketchArc_8, SketchArc_9, SketchArc_10, SketchArc_11, SketchArc_12, SketchArc_13, SketchArc_14, SketchArc_15, SketchArc_16, SketchArc_17, SketchArc_18, SketchArc_19, SketchArc_20, SketchArc_21, SketchArc_22, SketchArc_23, SketchArc_24, SketchArc_25, SketchArc_26, SketchArc_27, SketchArc_28, SketchArc_29, SketchArc_30, SketchArc_31, SketchLine_12, SketchLine_13, SketchLine_14, SketchLine_15, SketchLine_16, SketchLine_17, SketchLine_18, SketchLine_19, SketchLine_20, SketchLine_21, SketchLine_22, SketchLine_23, SketchLine_24, SketchLine_25, SketchLine_26, SketchLine_27, SketchLine_28, SketchLine_29, SketchLine_30, SketchLine_31, SketchLine_32, SketchLine_33, SketchLine_34, SketchLine_35, SketchLine_36, SketchLine_37, SketchLine_38, SketchLine_39, SketchLine_40, SketchArc_32, SketchArc_33, SketchArc_34, SketchArc_35, SketchArc_36, SketchArc_37, SketchArc_38, SketchArc_39, SketchArc_40, SketchArc_41, SketchArc_42, SketchArc_43, SketchArc_44, SketchArc_45, SketchArc_46, SketchArc_47, SketchArc_48, SketchArc_49, SketchArc_50, SketchArc_51, SketchArc_52, SketchArc_53, SketchArc_54, SketchArc_55, SketchArc_56, SketchArc_57, SketchArc_58, SketchArc_59, SketchArc_60, SketchLine_11, SketchLine_41, SketchLine_42, SketchLine_43, SketchLine_44, SketchLine_45, SketchLine_46, SketchLine_47, SketchLine_48, SketchLine_49, SketchLine_50, SketchLine_51, SketchLine_52, SketchLine_53, SketchLine_54, SketchLine_55, SketchLine_56, SketchLine_57, SketchLine_58, SketchLine_59, SketchLine_60, SketchLine_61, SketchLine_62, SketchLine_63, SketchLine_64, SketchLine_65, SketchLine_66, SketchLine_67, SketchLine_68, SketchLine_69] = SketchMultiRotation_1.rotated()
 SketchConstraintRadius_2 = Sketch_2.setRadius(SketchArc_2.results()[1], 37.5)
 model.do()
 Sketch_3 = model.addSketch(Part_1_doc, model.defaultPlane("XOY"))
@@ -108,36 +127,42 @@ SketchLine_79 = Sketch_3.addLine(0, 0, 0, 15)
 SketchLine_79.setAuxiliary(True)
 SketchConstraintCoincidence_36 = Sketch_3.setCoincident(SketchLine_79.startPoint(), SketchPoint_3.result())
 SketchConstraintVertical_7 = Sketch_3.setVertical(SketchLine_79.result())
-SketchConstraintLength_8 = Sketch_3.setLength(SketchLine_79.result(), 15)
+SketchConstraintLength_8 = Sketch_3.setLength(SketchLine_79.result(), "R-R_fillet")
 SketchLine_80 = Sketch_3.addLine(0, 15, 0.5, 15)
 SketchLine_80.setAuxiliary(True)
 SketchConstraintCoincidence_37 = Sketch_3.setCoincident(SketchLine_79.endPoint(), SketchLine_80.startPoint())
 SketchConstraintHorizontal_5 = Sketch_3.setHorizontal(SketchLine_80.result())
-SketchArc_61 = Sketch_3.addArc(0.5, 15, 0, 15, 0.4999999999999999, 15.5, True)
+SketchArc_61 = Sketch_3.addArc(0.5, 15, 0, 15, 0.5, 15.5, True)
 SketchConstraintCoincidence_38 = Sketch_3.setCoincident(SketchLine_80.endPoint(), SketchArc_61.center())
 SketchConstraintCoincidence_39 = Sketch_3.setCoincident(SketchLine_79.endPoint(), SketchArc_61.startPoint())
 SketchConstraintCoincidence_40 = Sketch_3.setCoincident(SketchLine_80.startPoint(), SketchArc_61.startPoint())
-SketchLine_81 = Sketch_3.addLine(0.5, 15, 0.5, 15.66051714754979)
+SketchLine_81 = Sketch_3.addLine(0.5, 15, 0.5, 16)
 SketchLine_81.setAuxiliary(True)
 SketchConstraintCoincidence_41 = Sketch_3.setCoincident(SketchLine_80.endPoint(), SketchLine_81.startPoint())
 SketchConstraintCoincidence_42 = Sketch_3.setCoincident(SketchArc_61.center(), SketchLine_81.startPoint())
 SketchConstraintVertical_8 = Sketch_3.setVertical(SketchLine_81.result())
 SketchConstraintCoincidence_43 = Sketch_3.setCoincident(SketchArc_61.endPoint(), SketchLine_81.result())
-SketchConstraintRadius_3 = Sketch_3.setRadius(SketchArc_61.results()[1], 0.5)
-SketchLine_82 = Sketch_3.addLine(0.4999999999999999, 15.5, 0.4988301186899768, 15.74914940994379)
+SketchConstraintRadius_3 = Sketch_3.setRadius(SketchArc_61.results()[1], "R_fillet")
+SketchLine_82 = Sketch_3.addLine(0.5, 15.5, 0.5, 16)
 SketchConstraintCoincidence_44 = Sketch_3.setCoincident(SketchArc_61.endPoint(), SketchLine_82.startPoint())
-SketchLine_83 = Sketch_3.addLine(0.4988301186899768, 15.74914940994379, -0.3081878496471824, 15.75231418629021)
+SketchLine_83 = Sketch_3.addLine(0.5, 16, -0.5, 16)
 SketchConstraintCoincidence_45 = Sketch_3.setCoincident(SketchLine_82.endPoint(), SketchLine_83.startPoint())
-SketchLine_84 = Sketch_3.addLine(-0.3081878496471824, 15.75231418629021, -0.3081878496471824, 14.99276786314936)
+SketchLine_84 = Sketch_3.addLine(-0.5, 16, -0.5, 15)
 SketchConstraintCoincidence_46 = Sketch_3.setCoincident(SketchLine_83.endPoint(), SketchLine_84.startPoint())
-SketchLine_85 = Sketch_3.addLine(-0.3081878496471824, 14.99276786314936, 0, 15)
+SketchLine_85 = Sketch_3.addLine(-0.5, 15, 0, 15)
 SketchConstraintCoincidence_47 = Sketch_3.setCoincident(SketchLine_84.endPoint(), SketchLine_85.startPoint())
 SketchConstraintCoincidence_48 = Sketch_3.setCoincident(SketchLine_79.endPoint(), SketchLine_85.endPoint())
 SketchConstraintCoincidence_49 = Sketch_3.setCoincident(SketchLine_80.startPoint(), SketchLine_85.endPoint())
 SketchConstraintCoincidence_50 = Sketch_3.setCoincident(SketchArc_61.startPoint(), SketchLine_85.endPoint())
+SketchConstraintCoincidence_51 = Sketch_3.setCoincident(SketchLine_81.endPoint(), SketchLine_83.startPoint())
+SketchConstraintCoincidence_52 = Sketch_3.setCoincident(SketchLine_85.startPoint(), SketchLine_80.result())
+SketchConstraintVertical_9 = Sketch_3.setVertical(SketchLine_84.result())
+SketchConstraintHorizontal_6 = Sketch_3.setHorizontal(SketchLine_83.result())
+SketchConstraintLength_9 = Sketch_3.setLength(SketchLine_84.result(), "2*R_fillet")
+SketchConstraintLength_10 = Sketch_3.setLength(SketchLine_83.result(), "2*R_fillet")
 model.do()
-Revolution_1 = model.addRevolution(Part_1_doc, [model.selection("FACE", "PartSet/Sketch_1")], model.selection("EDGE", "PartSet/Sketch_1/Edge-SketchLine_1"), 360, 0)
-Sketch_4 = model.addSketch(Part_1_doc, model.selection("FACE", "Revolution_1_1/Generated_Face_5"))
+Revolution_1 = model.addRevolution(Part_1_doc, [model.selection("COMPOUND", "PartSet/Sketch_1")], model.selection("EDGE", "PartSet/Sketch_1/SketchLine_1"), 360, 0)
+Sketch_4 = model.addSketch(Part_1_doc, model.selection("FACE", "Revolution_1_1/Generated_Face&PartSet/Sketch_1/SketchLine_8"))
 SketchPoint_4 = Sketch_4.addPoint(model.selection("VERTEX", "PartSet/Origin"))
 SketchLine_86 = Sketch_4.addLine(0, -13.49999999999519, 3.1, -13.49999999999519)
 SketchLine_87 = Sketch_4.addLine(model.selection("EDGE", "PartSet/OZ"))
@@ -169,19 +194,26 @@ SketchConstraintCoincidence_61 = Sketch_4.setCoincident(SketchPoint_6.coordinate
 SketchConstraintCoincidence_62 = Sketch_4.setCoincident(SketchPoint_6.coordinates(), SketchLine_89.result())
 SketchConstraintDistance_6 = Sketch_4.setDistance(SketchPoint_6.coordinates(), SketchLine_86.result(), 24.5)
 model.do()
-ExtrusionCut_1 = model.addExtrusionCut(Part_1_doc, [model.selection("COMPOUND", "Sketch_1")], model.selection(), model.selection("FACE", "Revolution_1_1/Generated_Face_1"), 0, model.selection(), 0, [model.selection("SOLID", "Revolution_1_1")])
+ExtrusionCut_1 = model.addExtrusionCut(Part_1_doc, [model.selection("COMPOUND", "Sketch_1")], model.selection(), model.selection("FACE", "Revolution_1_1/Generated_Face&PartSet/Sketch_1/SketchLine_3"), 0, model.selection(), 0, [model.selection("SOLID", "Revolution_1_1")])
 RevolutionCut_1 = model.addRevolutionCut(Part_1_doc, [model.selection("COMPOUND", "Sketch_2")], model.selection("EDGE", "PartSet/OX"), 0, 360, [model.selection("SOLID", "ExtrusionCut_1_1")])
+ExtrusionCut_2 = model.addExtrusionCut(Part_1_doc, [model.selection("COMPOUND", "Sketch_3")], model.selection(), 0, 5, [model.selection("SOLID", "RevolutionCut_1_1")])
+model.do()
+
+# Test reexecution after parameter change
+Parameter_R.setValue(16)
 model.do()
+model.testResultsVolumes(ExtrusionCut_2, [64060.674439985647040884941816330])
+Parameter_R.setValue(15)
 model.end()
 
 from GeomAPI import GeomAPI_Shape
 
-model.testNbResults(RevolutionCut_1, 1)
-model.testNbSubResults(RevolutionCut_1, [0])
-model.testNbSubShapes(RevolutionCut_1, GeomAPI_Shape.SOLID, [1])
-model.testNbSubShapes(RevolutionCut_1, GeomAPI_Shape.FACE, [188])
-model.testNbSubShapes(RevolutionCut_1, GeomAPI_Shape.EDGE, [1104])
-model.testNbSubShapes(RevolutionCut_1, GeomAPI_Shape.VERTEX, [2208])
-model.testResultsVolumes(RevolutionCut_1, [65202.414301669727137777954339981])
+model.testNbResults(ExtrusionCut_2, 1)
+model.testNbSubResults(ExtrusionCut_2, [0])
+model.testNbSubShapes(ExtrusionCut_2, GeomAPI_Shape.SOLID, [1])
+model.testNbSubShapes(ExtrusionCut_2, GeomAPI_Shape.FACE, [224])
+model.testNbSubShapes(ExtrusionCut_2, GeomAPI_Shape.EDGE, [1314])
+model.testNbSubShapes(ExtrusionCut_2, GeomAPI_Shape.VERTEX, [2628])
+model.testResultsVolumes(ExtrusionCut_2, [62405.392187037912663072347640991])
 
 assert(model.checkPythonDump())