Salome HOME
9f68e92342c7ad9753f8acac379d77a45a5d3c6c
[modules/shaper.git] / src / PythonFeaturesPlugin / examples.py
1 from ModelAPI import *
2 from SketchResult import *
3 import sketch
4 import extrusion
5 # reload(sketch) # Pour tester plus facilement
6 # reload(extrusion) # Pour tester plus facilement
7
8
9 def makeBox(aLength, aWidth, aHeight):
10     # Getting the active document
11     session = ModelAPI_Session.get()
12     part = session.activeDocument()
13
14     # Starting the Sketch
15     base = sketch.addTo(part)
16     sketch.setXOYPlane(base)
17
18     # Creating the lines
19     l1 = sketch.addLine(10, 10, 10, 50, base)
20     l2 = sketch.addLine(10, 50, 60, 60, base)
21     l3 = sketch.addLine(60, 60, 50, 10, base)
22     l4 = sketch.addLine(50, 10, 10, 10, base)
23     base.execute()
24
25     # Creating the constraints
26     sketch.makeCoincident(sketch.getEndPoint(l1),
27                           sketch.getStartPoint(l2), base)
28     sketch.makeCoincident(sketch.getEndPoint(l2),
29                           sketch.getStartPoint(l3), base)
30     sketch.makeCoincident(sketch.getEndPoint(l3),
31                           sketch.getStartPoint(l4), base)
32     sketch.makeCoincident(sketch.getEndPoint(l4),
33                           sketch.getStartPoint(l1), base)
34
35     sketch.makeParallel(sketch.getGeometry(l1), sketch.getGeometry(l3), base)
36     sketch.makeParallel(sketch.getGeometry(l2), sketch.getGeometry(l4), base)
37
38     sketch.makePerpendicular(sketch.getGeometry(l1),
39                              sketch.getGeometry(l4), base)
40     # Set to 0X and 0Y lines defined length
41     sketch.makeConstantLength(sketch.getGeometry(l1), aLength, base)
42     sketch.makeConstantLength(sketch.getGeometry(l4), aWidth, base)
43
44     # Finalisation of the operation
45     builder = SketchResult(base)
46
47     # Creating a feature Extrusion
48     box = extrusion.addNew(builder, aHeight, part)
49
50     # return base.lastResult()
51     return extrusion.getBody(box)