Salome HOME
Regression fix: not toggled up button on closing of contour of lines
[modules/shaper.git] / src / PythonAPI / MakeBrick1.py
1 # Creation of a box using the end-user API
2 # Author: Daniel Brunier-Coulin
3 # -----------------------------
4
5 import modeler
6
7
8 # Initialisation
9
10 modeler.begin()
11 mypartset = modeler.moduleDocument()
12
13
14 # Creating a new Part
15
16 mypart = modeler.addPart(mypartset).document()
17
18
19 # Creating the base of the box
20
21 mybase = modeler.addSketch( mypart, modeler.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
42 # Creating the extrusion
43
44 mybox = modeler.addExtrusion( mypart, mybase.selectFace(), 50 )
45
46
47 # Creating a cylinder on a face of the box
48
49 thisface = "Extrusion_1/LateralFace_2"
50 thisxmin = "Extrusion_1/LateralFace_3|Extrusion_1/LateralFace_2"
51 thisxmax = "Extrusion_1/LateralFace_2|Extrusion_1/LateralFace_1"
52 thiszmin = "Sketch_1/Edge5_1"
53 thiszmax = "Extrusion_1/LateralFace_2|Extrusion_1/TopFace_1"
54
55 mystand = modeler.addSketch( mypart, thisface )
56 c1      = mystand.addCircle( 0, 25, 5)
57 mystand.setDistance( c1.centerData(), thisxmin, 10 )
58 mystand.setDistance( c1.centerData(), thiszmax, 10 )
59
60 myboss = modeler.addExtrusion( mypart, mystand.selectFace(c1.result()), -5 )
61
62
63 # Subtracting the cylinder to the box
64
65 modeler.addSubtraction( mypart, mybox.result(), myboss.result() )
66 modeler.end()
67
68
69 # Editing the box
70
71 modeler.begin()
72 mybase.setValue( mylength, 100 )
73 mybox.setSize( 80 )
74 modeler.end()