Salome HOME
cas test n°1
[modules/shaper.git] / src / PythonAddons / macros / midSurface / midSurface_1.py
1 #!/usr/bin/env python
2 # -*- coding: utf-8 -*-
3 """Géométrie de test pour la création de surfaces médianes - Cas n°1
4 """
5
6 __revision__ = "V02.01"
7
8 nom_objet = "Observatoire"
9 fichier = "midSurface_1.stp"
10
11 import salome
12
13 salome.salome_init()
14
15 from SketchAPI import *
16
17 from salome.shaper import model
18
19 model.begin()
20 partSet = model.moduleDocument()
21
22 ### Create Part
23 Part_1 = model.addPart(partSet)
24 Part_1_doc = Part_1.document()
25 model.addParameter(Part_1_doc, "R_ext", "51", "Rayon externe")
26 model.addParameter(Part_1_doc, "Ep", "0.5", "Epaisseur")
27 model.addParameter(Part_1_doc, "Hauteur", "150", "Hauteur")
28
29 ### Create Sketch
30 Sketch_1 = model.addSketch(Part_1_doc, model.standardPlane("XOZ"))
31
32 ### Create SketchLine
33 SketchLine_1 = Sketch_1.addLine(0, 0, 51, 0)
34
35 ### Create SketchLine
36 SketchLine_2 = Sketch_1.addLine(51, 0, 51, 150)
37 Sketch_1.setCoincident(SketchLine_2.startPoint(), SketchLine_1.endPoint())
38
39 ### Create SketchProjection
40 SketchProjection_1 = Sketch_1.addProjection(model.selection("EDGE", "PartSet/OX"), False)
41 SketchLine_3 = SketchProjection_1.createdFeature()
42 Sketch_1.setCoincident(SketchLine_2.startPoint(), SketchLine_3.result())
43 Sketch_1.setVertical(SketchLine_2.result())
44 Sketch_1.setLength(SketchLine_2.result(), "Hauteur")
45 Sketch_1.setCoincident(SketchAPI_Line(SketchLine_3).startPoint(), SketchLine_1.startPoint())
46
47 ### Create SketchProjection
48 SketchProjection_2 = Sketch_1.addProjection(model.selection("VERTEX", "PartSet/Origin"), False)
49 SketchPoint_1 = SketchProjection_2.createdFeature()
50 Sketch_1.setHorizontalDistance(SketchLine_2.startPoint(), SketchAPI_Point(SketchPoint_1).coordinates(), "R_ext")
51
52 ### Create SketchProjection
53 SketchProjection_3 = Sketch_1.addProjection(model.selection("EDGE", "PartSet/OZ"), False)
54 SketchLine_4 = SketchProjection_3.createdFeature()
55
56 ### Create SketchArc
57 SketchArc_1 = Sketch_1.addArc(0, 150, 51, 150, 0, 201, False)
58 Sketch_1.setCoincident(SketchLine_4.result(), SketchArc_1.center())
59 Sketch_1.setCoincident(SketchLine_2.endPoint(), SketchArc_1.startPoint())
60 Sketch_1.setCoincident(SketchLine_4.result(), SketchArc_1.endPoint())
61
62 ### Create SketchProjection
63 SketchProjection_4 = Sketch_1.addProjection(model.selection("VERTEX", "PartSet/Origin"), False)
64 SketchPoint_2 = SketchProjection_4.createdFeature()
65 Sketch_1.setVerticalDistance(SketchArc_1.center(), SketchAPI_Point(SketchPoint_2).coordinates(), "Hauteur")
66
67 ### Create SketchLine
68 SketchLine_5 = Sketch_1.addLine(0, 0, 0, 0.5)
69 Sketch_1.setCoincident(SketchLine_1.startPoint(), SketchLine_5.startPoint())
70
71 ### Create SketchLine
72 SketchLine_6 = Sketch_1.addLine(0, 0.5, 50.5, 0.5)
73 Sketch_1.setCoincident(SketchLine_5.endPoint(), SketchLine_6.startPoint())
74 Sketch_1.setHorizontal(SketchLine_6.result())
75
76 ### Create SketchLine
77 SketchLine_7 = Sketch_1.addLine(50.5, 0.5, 50.5, 150)
78 Sketch_1.setCoincident(SketchLine_6.endPoint(), SketchLine_7.startPoint())
79 Sketch_1.setVertical(SketchLine_7.result())
80 Sketch_1.setVertical(SketchLine_5.result())
81 Sketch_1.setLength(SketchLine_5.result(), "Ep")
82 Sketch_1.setHorizontalDistance(SketchLine_2.endPoint(), SketchLine_7.endPoint(), "Ep")
83
84 ### Create SketchLine
85 SketchLine_8 = Sketch_1.addLine(50.5, 150, 51, 150)
86 Sketch_1.setCoincident(SketchLine_7.endPoint(), SketchLine_8.startPoint())
87 Sketch_1.setCoincident(SketchLine_2.endPoint(), SketchLine_8.endPoint())
88 Sketch_1.setHorizontal(SketchLine_8.result())
89
90 ### Create SketchArc
91 SketchArc_2 = Sketch_1.addArc(0, 150, 50.5, 150, 0, 200.5, False)
92 Sketch_1.setCoincident(SketchArc_1.center(), SketchArc_2.center())
93 Sketch_1.setCoincident(SketchLine_7.endPoint(), SketchArc_2.startPoint())
94 Sketch_1.setCoincident(SketchLine_4.result(), SketchArc_2.endPoint())
95
96 ### Create SketchLine
97 SketchLine_9 = Sketch_1.addLine(0, 201, 0, 200.5)
98 Sketch_1.setCoincident(SketchArc_1.endPoint(), SketchLine_9.startPoint())
99 Sketch_1.setCoincident(SketchArc_2.endPoint(), SketchLine_9.endPoint())
100
101 ### Create SketchLine
102 SketchLine_10 = Sketch_1.addLine(50.5, 0.5, 51, 0.5)
103 Sketch_1.setCoincident(SketchLine_6.endPoint(), SketchLine_10.startPoint())
104 Sketch_1.setCoincident(SketchLine_10.endPoint(), SketchLine_2.result())
105 Sketch_1.setHorizontal(SketchLine_10.result())
106 model.do()
107
108 ### Create Revolution
109 Revolution_1 = model.addRevolution(Part_1_doc, [model.selection("COMPOUND", "all-in-Sketch_1")], model.selection("EDGE", "PartSet/OZ"), 360, 0, "Faces")
110
111 ### Create Box
112 Box_1 = model.addBox(Part_1_doc, "R_ext*1.2", "R_ext*.2", "Hauteur*0.5")
113
114 ### Create Translation
115 Translation_1 = model.addTranslation(Part_1_doc, [model.selection("COMPOUND", "all-in-Box_1")], vector = ["R_ext*0.15", "-R_ext*0.1", "Hauteur*0.9"], keepSubResults = True)
116
117 ### Create Cut
118 Cut_1 = model.addCut(Part_1_doc, [model.selection("COMPOUND", "all-in-Revolution_1")], [model.selection("COMPOUND", "all-in-Translation_1")], keepSubResults = True)
119 Cut_1.result().setName(nom_objet)
120
121 ### Exportation
122 print ("Exportation dans {}".format(fichier))
123 export = model.exportToFile(Part_1_doc, fichier, [model.selection("COMPSOLID", nom_objet)])
124
125 model.end()
126
127 if salome.sg.hasDesktop():
128   salome.sg.updateObjBrowser()