0027491: GeomAdaptor_Curve Is Not Thread-Safe (Anymore?)
[occt.git] / samples / tcl / snowflake.tcl
CommitLineData
92ac0eb7 1# Creation of 2d drawing
2
031224c9 3#Category: Modeling
4#Title: Snowflake - creation of 2d drawing
92ac0eb7 5
6pload MODELING AISV
7
031224c9 8puts "Generating sample drawing of snowflake..."
9
92ac0eb7 10# make circular elements
11circle c11 5 5 0 5
12circle c12 5 5 0 3
13circle c21 18 7 0 7
14circle c22 18 7 0 5
15circle c31 28.5 5 0 5
16circle c32 28.5 5 0 3
17trim c21 c21 pi/4 -pi/4
18trim c22 c22 pi/4 -pi/4
19trim c31 c31 pi/4 -pi/4
20trim c32 c32 pi/4 -pi/4
21line l21 18 7 0 1 1 0
22line l22 18 7 0 1 -1 0
23line l31 28.5 5 0 1 1 0
24line l32 28.5 5 0 1 -1 0
25trim l21 l21 5 7
26trim l22 l22 5 7
27trim l31 l31 3 5
28trim l32 l32 3 5
29line l1 -6 0 0 0.86602540378443864 0.5 0
30line l2 -6 1 0 1 0 0
31trim l1 l1 0 30
32trim l2 l2 0 45
33mkedge c11 c11
34mkedge c12 c12
35mkedge c21 c21
36mkedge c22 c22
37mkedge c31 c31
38mkedge c32 c32
39mkedge l21 l21
40mkedge l22 l22
41mkedge l31 l31
42mkedge l32 l32
43mkedge l1 l1
44mkedge l2 l2
45wire b11 c11
46wire b12 c12
47orientation b12 R
48
49# build one ray
50plane p -6 0 0 0 0 1
51mkface f1 p b11
52add b12 f1
53wire b2 c21 l21 c22 l22
54mkface f2 p b2
55wire b3 c31 l31 c32 l32
56mkface f3 p b3
57prism f5 l1 -5 8.6602540378443864 0
58prism f4 l2 0 -1 0
59compound f1 f2 f3 bc
60bfuse r bc f4
92ac0eb7 61bcut r r f5
92ac0eb7 62explode r e
9526aa6a 63wire w r_4 r_1 r_20 r_21 r_22 r_23 r_24 r_25 r_26 r_7 r_30 r_31 r_32 r_33 r_27 r_28 r_29 r_11 r_38 r_34 r_35 r_36 r_37 r_16 r_17
92ac0eb7 64tcopy w w1
65tmirror w1 -6 0 0 0 1 0
66wire w w w1
67mkface w p w
68donly w
69
70# construct complete snowflake
71tcopy w w1
72tcopy w w2
73tcopy w w3
74tcopy w w4
75tcopy w w5
76trotate w1 -6 0 0 0 0 1 60
77trotate w2 -6 0 0 0 0 1 120
78trotate w3 -6 0 0 0 0 1 180
79trotate w4 -6 0 0 0 0 1 240
80trotate w5 -6 0 0 0 0 1 300
81bfuse w w w1
82bfuse w w w2
83bfuse w w w3
84bfuse w w w4
85bfuse w w w5
fe1a6e4e 86shape wsh Sh
87foreach f [explode w f] {add $f wsh}
88renamevar wsh w
89save w w.brep
92ac0eb7 90unifysamedom r w
91
92# keep only wires in compound
93eval compound [explode r w] snowflake
94tscale snowflake -6 0 0 1.5
95
96# draw frame loosely following GOST 2.104-68
97polyline frame -100 -100 0 172 -100 0 172 100 0 -100 100 0 -100 -100 0
98polyline t1 52 -100 0 52 -45 0 172 -45 0
99polyline t2 52 -60 0 172 -60 0
100polyline t3 52 -85 0 172 -85 0
101polyline t4 122 -100 0 122 -60 0
102polyline t5 122 -80 0 172 -80 0
103polyline t6 122 -65 0 172 -65 0
104polyline t7 142 -80 0 142 -85 0
105polyline t8 137 -80 0 137 -60 0
106polyline t9 154 -80 0 154 -60 0
107compound frame t1 t2 t3 t4 t5 t6 t7 t8 t9 lines
108
109# add text
ac84fcf6 110text2brep sample "SAMPLE" -font Arial -height 10 -pos 90 -55 0 -aspect bolditalic
111text2brep occ "Open CASCADE" -font Times -height 6 -pos 125 -95 0
112text2brep name "Snowflake" -font Courier -height 7 -pos 65 -75 0 -aspect italic
113text2brep material "Ice" -font Courier -height 7 -pos 75 -95 0 -aspect italic
114text2brep sheets "Sheets 1" -font Courier -height 3.5 -pos 145 -83 0 -aspect italic
115text2brep scale "Scale\n\n1:100" -font Courier -height 3.5 -pos 157 -63 0 -aspect italic -valign topfirstline
116text2brep mass "Mass\n\n1 mg" -font Courier -height 3.5 -pos 140 -63 0 -aspect italic -valign topfirstline
92ac0eb7 117eval compound [explode sample w] sample
118eval compound [explode occ w] occ
119eval compound [explode name w] name
120eval compound [explode material w] material
121eval compound [explode sheets w] sheets
122eval compound [explode scale w] scale
123eval compound [explode mass w] mass
124compound sample occ name material sheets scale mass text
125
031224c9 126compound snowflake lines text drawing
92ac0eb7 127
128# display in 3d view
129vinit Driver1/Viewer1/View1 w=1024 h=768
130vdisplay snowflake lines text
63fad07e 131vrenderparams -msaa 8
031224c9 132vsetcolor snowflake 0 0 0
133vsetcolor lines 0 0 0
134vsetcolor text 0 0 0
135vsetcolorbg 255 255 255
92ac0eb7 136vtop
031224c9 137vfit
138
139# add dimension
140explode snowflake v
fe1a6e4e 141vdimension length -length -shapes snowflake_89 snowflake_15 -plane xoy -value 0.001 -dispunits mm -showunits -flyout 70 -label above -color black -text 5 3d sh
031224c9 142
143if { [regexp HAVE_GL2PS [dversion]] } {
144 puts "You can use command vexport to generate PDF: vexport your_file_path.pdf"
145}