Salome HOME
Merge Dev_2.1.0 with PythonAPI branch
[modules/shaper.git] / src / PythonAPI / examples / MakeBrick1.py
1 # Creation of a box using the end-user API
2 # Author: Daniel Brunier-Coulin
3 # -----------------------------
4
5 import model
6
7
8 # Initialisation
9
10 model.begin()
11 mypartset = model.moduleDocument()
12
13
14 # Creating a new Part
15
16 mypart = model.addPart(mypartset).document()
17
18
19 # Creating the base of the box
20
21 mybase = model.addSketch( mypart, model.defaultPlane("XOY") )
22
23 l1 = mybase.addLine( 0, 0, 0, 1 )
24 l2 = mybase.addLine( 0, 1, 1, 1 )
25 l3 = mybase.addLine( 1, 1, 1, 0 )
26 l4 = mybase.addLine( 1, 0, 0, 0 )
27
28 mybase.setCoincident( l1.endPointData(), l2.startPointData() )
29 mybase.setCoincident( l2.endPointData(), l3.startPointData() )
30 mybase.setCoincident( l3.endPointData(), l4.startPointData() )
31 mybase.setCoincident( l4.endPointData(), l1.startPointData() )
32
33 mybase.setParallel( l1.result(), l3.result() )
34 mybase.setParallel( l2.result(), l4.result() )
35
36 mybase.setPerpendicular( l1.result(), l4.result() )
37
38 mywidth  = mybase.setLength( l1.result(), 50 )
39 mylength = mybase.setDistance( l1.startPointData(), l3.result(), 50 )
40
41 # Creating the extrusion
42
43 mybox = model.addExtrusion( mypart, mybase.selectFace(), 50 )
44
45 # Creating a cylinder on a face of the box
46
47 thisface = "Extrusion_1_1/LateralFace_2"
48 thisxmin = "Extrusion_1_1/LateralFace_3|Extrusion_1_1/LateralFace_2"
49 thisxmax = "Extrusion_1_1/LateralFace_2|Extrusion_1_1/LateralFace_1"
50 thiszmin = "Sketch_1/Edge5_1"
51 thiszmax = "Extrusion_1_1/LateralFace_2|Extrusion_1_1/ToFace_1"
52
53 mystand = model.addSketch( mypart, thisface )
54
55 c1      = mystand.addCircle( 0, 25, 5)
56 mystand.setDistance( c1.centerData(), thisxmin, 10 )
57 mystand.setDistance( c1.centerData(), thiszmax, 10 )
58
59 myboss = model.addExtrusion( mypart, mystand.selectFace(c1.result()), -5 )
60
61 # Subtracting the cylinder to the box
62
63 model.addSubtraction( mypart, mybox.result(), myboss.result() )
64 model.end()
65
66
67 # Editing the box
68
69 model.begin()
70 mybase.setValue( mylength, 100 )
71 mybox.setSize( 80 )
72 model.end()