1 puts "TODO OCC27316 Windows: OSD_Exception_ACCESS_VIOLATION"
2 puts "TODO OCC27316 Linux: segmentation violation"
3 puts "TODO OCC27316 ALL:TEST INCOMPLETE"
9 ##########################
10 # exception when XAddShape
11 ##########################
13 # model of rib for Buran wing. Drawing taken from www.buran.ru
15 set B1 140. ;# half chord 1
16 set B2 60. ;# half chord 2
17 set B3 50. ;# breadth of upper part
18 set L 1000.; # wing length
19 set L_edge [expr "sqrt($L*$L+($B1-$B2)*($B1-$B2))"] ;# wing edge length
20 set step 135. ;# stiffener step
21 set step1 95. ;# 1 stiffener step
22 set B_st 30. ;# stiffener flange breadth
23 set B_st1 50. ;# stiffener flange breadth with inclined part
24 set H_st 30. ;# stiffener flange height
25 set t_st 1.5 ;# stiffener flange web thickness
26 set offset_fl 10.0 ;# stiffener side flange 1 offset
27 set t_fl 2.0 ;# stiffener side flange 1 thickness
28 set B_fl1 20.0 ;# stiffener side flange 1 width
29 set B_fl2 16.0 ;# stiffener side flange 2 width
30 set angle_cos [expr "$L/$L_edge"] ;# cos of angle between axis x and wing edge
31 set angle_sin [expr "($B1-$B2)/$L_edge"] ;# sin of angle between axis x and wing edge
32 set rad_rivet 1.;# radius of rivet
33 set step_rivet 20.;# step between rivets
34 set offset_rivet 5.;# offset between rivets and stringer
35 set rad_cut 45. ; # radius of big cut in middle plate
36 set rad_cut1 35. ; # radius of middle cut in middle plate
37 set rad_cut2 25. ; # radius of small cut in middle plate
38 set t_ang 1.; # angle bracket thickness
39 set h_ang 18.; # angle bracket length
42 # Create edge of upper stiffener flange
47 vertex r_[expr "($i-1)*4+2"] [expr "(($i-1)*$step+$step1-$B_st1/2)*$angle_cos"] [expr "$B1-(($i-1)*$step+$step1-$B_st1/2)*$angle_sin"] 0.;
48 vertex r_[expr "($i-1)*4+3"] [expr "(($i-1)*$step+$step1-$B_st/2)*$angle_cos+$H_st*$angle_sin"] [expr "$B1-(($i-1)*$step+$step1-$B_st/2)*$angle_sin-$H_st*$angle_cos"] 0.;
49 vertex r_[expr "($i-1)*4+4"] [expr "(($i-1)*$step+$step1+$B_st/2)*$angle_cos+$H_st*$angle_sin"] [expr "$B1-(($i-1)*$step+$step1+$B_st/2)*$angle_sin-$H_st*$angle_cos"] 0.;
50 vertex r_[expr "($i-1)*4+5"] [expr "(($i-1)*$step+$step1+$B_st1/2)*$angle_cos"] [expr "$B1-(($i-1)*$step+$step1+$B_st1/2)*$angle_sin"] 0.;
51 vertex r_[expr "($i-1)*4+6"] [expr "($i*$step+$step1+$B_st1/2)*$angle_cos"] [expr "$B1-($i*$step+$step1+$B_st1/2)*$angle_sin"] 0.;
52 edge e_[expr "($i-1)*4+1"] r_[expr "($i-1)*4+1"] r_[expr "($i-1)*4+2"];
53 edge e_[expr "($i-1)*4+2"] r_[expr "($i-1)*4+2"] r_[expr "($i-1)*4+3"];
54 edge e_[expr "($i-1)*4+3"] r_[expr "($i-1)*4+3"] r_[expr "($i-1)*4+4"];
55 fillet2d fil1_$i e_[expr "($i-1)*4+2"] e_[expr "($i-1)*4+3"] 3.
56 edge e_[expr "($i-1)*4+4"] r_[expr "($i-1)*4+4"] r_[expr "($i-1)*4+5"];
57 fillet2d fil2_$i e_[expr "($i-1)*4+3"] e_[expr "($i-1)*4+4"] 3.
58 wire w_$i e_[expr "($i-1)*4+1"] e_[expr "($i-1)*4+2"] fil1_$i e_[expr "($i-1)*4+3"] fil2_$i e_[expr "($i-1)*4+4"];
61 vertex r_last $L $B2 0.;
62 edge e_last r_[expr "($i-2)*4+5"] r_last;
63 vertex vu_1 0. [expr "$B1-$B3"] 0.;
64 vertex vu_2 $L [expr "$B2-$B3"] 0.;
66 edge e_v2 r_last vu_2;
68 wire w_upper e_v1 w_1 w_2 w_3 w_4 w_5 w_6 w_7 e_last e_v2 e_v3;
70 mkplane f_upper w_upper;
71 #Create holes for rivets
72 circle c1 $offset_rivet [expr "$B1-$B3+$offset_rivet"] 0. $rad_rivet;
75 mkplane f_hole1 w_hole1;
76 compound f_hole1 holes_upper;
78 set NNN [expr "int($L_edge/$step_rivet)"]
80 copy f_hole1 f_hole_$i
81 ttranslate f_hole_$i [expr "$i*$step_rivet*$angle_cos"] [expr "-($i*$step_rivet*$angle_sin)"] 0. ;
82 add f_hole_$i holes_upper;
85 bcut f_upper_holes_1 f_upper holes_upper;
86 prism fwall_upper f_upper_holes_1 0 0 $t_st;
88 #Create low side flange 1
89 #Create wire and face for side flange
90 vertex vf_1 0. [expr "$B1-$B3+$offset_fl"] 0.;
91 vertex vf_2 0. [expr "$B1-$B3+$offset_fl+$t_fl"] 0. ;
92 vertex vf_3 0. [expr "$B1-$B3+$offset_fl"] $t_st;
93 vertex vf_4 0. [expr "$B1-$B3+$offset_fl+$t_fl"] $t_st;
94 vertex vf_5 0. [expr "$B1-$B3+$offset_fl"] $B_fl1;
95 vertex vf_6 0. [expr "$B1-$B3+$offset_fl+$t_fl"] $B_fl1;
96 vertex vf_7 0. [expr "$B1-$B3+$offset_fl-$t_st"] $t_st;
97 vertex vf_8 0. [expr "$B1-$B3+$offset_fl+$t_fl+$t_st"] $t_st;
98 edge side_fl_1 vf_1 vf_2;
99 edge side_fl_2 vf_2 vf_8;
100 edge side_fl_3 vf_8 vf_4;
101 edge side_fl_4 vf_4 vf_6;
102 edge side_fl_5 vf_6 vf_5;
103 edge side_fl_6 vf_5 vf_3;
104 edge side_fl_7 vf_3 vf_7;
105 edge side_fl_8 vf_7 vf_1;
106 fillet2d side_f1 side_fl_3 side_fl_4 1.5;
107 fillet2d side_f2 side_fl_6 side_fl_7 1.5;
108 wire w_side_fl side_fl_1 side_fl_2 side_fl_3 side_f1 side_fl_4 side_fl_5 side_fl_6 side_f2 side_fl_7 side_fl_8;
109 mkplane f_side_fl w_side_fl;
110 prism v_side_fl f_side_fl [expr "$L_edge*$angle_cos"] [expr "-$L_edge*$angle_sin"] 0. ;
111 bfuse f_upper v_side_fl fwall_upper
113 #Create upper side flange 2
114 #Create wire and face for side flange 2
115 vertex vfs_1 0. [expr "$B1+$t_st"] [expr "$B_fl2-$t_st/2."];
116 vertex vfs_2 0. [expr "$B1+$t_st"] [expr "-$B_fl2+$t_st/2."];
117 vertex vfs_3 0. $B1 [expr "$B_fl2-$t_st/2."];
118 vertex vfs_4 0. $B1 [expr "-$B_fl2+$t_st/2."];
119 vertex vfs_5 0. [expr "$B1-3.*$t_st"] 0.;
120 vertex vfs_6 0. [expr "$B1-3.*$t_st"] $t_st;
121 vertex vfs_7 0. $B1 $t_st;
122 edge side_fl2_1 vfs_1 vfs_2;
123 edge side_fl2_2 vfs_2 vfs_4;
124 edge side_fl2_3 vfs_4 r_1;
125 edge side_fl2_4 r_1 vfs_5 ;
126 #fillet2d side_f12_1 side_fl2_3 side_fl2_4 1.5;
127 edge side_fl2_5 vfs_5 vfs_6;
128 edge side_fl2_6 vfs_6 vfs_7;
129 edge side_fl2_7 vfs_7 vfs_3;
130 #fillet2d side_f12_2 side_fl2_6 side_fl2_7 1.5;
131 edge side_fl2_8 vfs_3 vfs_1;
132 #wire w_side_fl2 side_fl2_1 side_fl2_2 side_fl2_3 side_f12_1 side_fl2_4 side_fl2_5 side_fl2_6 side_f12_2 side_fl2_7 side_fl2_8;
133 wire w_side_fl2 side_fl2_1 side_fl2_2 side_fl2_3 side_fl2_4 side_fl2_5 side_fl2_6 side_fl2_7 side_fl2_8;
134 mkplane f_side_fl2 w_side_fl2;
136 #Create first side flange 2
137 prism v_side_fl2 f_side_fl2 [expr "($step1-$B_st1/2)*$angle_cos"] [expr "-($step1-$B_st1/2)*$angle_sin"] 0. ;
138 bfuse f_upper_1 v_side_fl2 f_upper;
140 #Create next side flange 2
141 prism v_side_fl3 f_side_fl2 [expr "($step-$B_st1)*$angle_cos"] [expr "-($step-$B_st1)*$angle_sin"] 0. ;
145 copy v_side_fl3 v_side_fl_$i
146 ttranslate v_side_fl_$i [expr "(($i-1)*$step+$step1+$B_st1/2)*$angle_cos"] [expr "-(($i-1)*$step+$step1+$B_st1/2)*$angle_sin"] 0. ;
147 bfuse f_upper_[expr "$i+1"] v_side_fl_$i f_upper_[expr "$i"] ;
151 #Create last side flange 2
152 prism v_side_fl4 f_side_fl2 [expr "($L_edge-6*$step-$step1-$B_st1/2)*$angle_cos"] [expr "-($L_edge-6*$step-$step-$B_st1/2)*$angle_sin"] 0. ;
153 ttranslate v_side_fl4 [expr "(6*$step+$step1+$B_st1/2)*$angle_cos"] [expr "-(6*$step+$step1+$B_st1/2)*$angle_sin"] 0. ;
154 bfuse f_uppern f_upper_7 v_side_fl4 ;
155 unifysamedom f_upper1 f_uppern;
157 restore [locate_data_file bug27316_edges_fillet.brep] edges_fillet
161 baddobjects f_upper1 edges_fillet;
167 set edges [explode edges_fillet e];
168 set nbe [llength $edges]
171 for {set i 1} {$i <= $nbe} {incr i} {
172 modified em gf_hist edges_fillet_$i;
173 blend v_upper v_upper 1.5 em;
177 #Create symmetrical part
178 copy v_upper v_lower;
179 tmirror v_lower 0. 0. 0. 0. 1. 0.;
182 #Create wire and face for middle plate
183 vertex vfl_1 0. [expr "-($B1-$B3+$offset_fl)"] 0.;
184 vertex vfl_2 $L [expr "($B2-$B3+$offset_fl)"] 0.;
185 vertex vfl_3 $L [expr "-($B2-$B3+$offset_fl)"] 0.;
186 edge pl_1 vf_1 vfl_1;
187 edge pl_2 vfl_1 vfl_3;
188 edge pl_3 vfl_3 vfl_2;
189 edge pl_4 vfl_2 vf_1;
190 wire w_plate pl_1 pl_2 pl_3 pl_4;
191 mkplane f_plate w_plate;
194 #Create upper row of holes
195 bcut f_plate_holes f_plate holes_upper;
197 #Create lower row of holes
198 copy holes_upper holes_lower;
199 tmirror holes_lower 0. 0. 0. 0. 1. 0.
200 bcut plate_holes_ul f_plate_holes holes_lower;
201 #Create 1 row of holes
204 set NN1 [expr "int(2*($B1-$B3+$offset_rivet)/$step_rivet)"]
206 copy f_hole1 f_hole1_$i
207 ttranslate f_hole1_$i 0. [expr "-($i*$step_rivet)"] 0. ;
208 add f_hole1_$i holes_1;
211 bcut plate_holes_1 plate_holes_ul holes_1;
213 #Create next rows of holes
214 set Nrow 6; #number of vertical rows
217 copy f_hole1 f_hole_$j;
218 ttranslate f_hole_$j [expr "7*$step_rivet*$j*$angle_cos"] [expr "-(7*$step_rivet*$j)*$angle_sin-$step_rivet"] 0. ;
219 compound f_hole_$j holes_$j;
221 set NN2 [expr "$NN1-$j-1"];
223 copy f_hole_$j f_holev_$i
224 ttranslate f_holev_$i 0. [expr "-($i*$step_rivet)"] 0. ;
225 add f_holev_$i holes_$j;
228 bcut plate_holes_[expr "$j+1"] plate_holes_$j holes_$j;
232 #Create holes for cuts
234 circle c2 [expr "$offset_rivet+3.5*$step_rivet*$angle_cos"] 0. 0. $rad_cut;
236 wire w_hole2 e_hole2;
237 mkplane f_big_hole w_hole2;
238 bcut plate_holes_pl1 plate_holes_6 f_big_hole;
241 copy f_big_hole f_big_hole1
242 ttranslate f_big_hole1 [expr "7.*$step_rivet*$angle_cos"] 0. 0.;
243 bcut plate_holes_pl2 plate_holes_pl1 f_big_hole1;
246 copy f_big_hole1 f_big_hole2
247 ttranslate f_big_hole2 [expr "7.*$step_rivet*$angle_cos"] 0. 0.;
248 bcut plate_holes_pl3 plate_holes_pl2 f_big_hole2;
251 circle c3 [expr "$offset_rivet+24.5*$step_rivet*$angle_cos"] 0. 0. $rad_cut1;
253 wire w_hole3 e_hole3;
254 mkplane f_big_hole3 w_hole3;
255 bcut plate_holes_pl4 plate_holes_pl3 f_big_hole3;
258 circle c4 [expr "$offset_rivet+31.5*$step_rivet*$angle_cos"] 0. 0. $rad_cut2;
260 wire w_hole4 e_hole4;
261 mkplane f_big_hole4 w_hole4;
262 bcut plate_holes_pl5 plate_holes_pl4 f_big_hole4;
263 prism v_plate plate_holes_pl5 0. 0. [expr "-$t_st"];
265 #Create reinforcement of cut1
266 circle c5 [expr "$offset_rivet+3.5*$step_rivet*$angle_cos+$rad_cut"] 0. [expr "3*$t_st"] 0. 1. 0. 3*$t_st;
267 mkedge en5 c5 [expr "3.141"] [expr "5*3.141/4"];
268 circle c6 [expr "$offset_rivet+3.5*$step_rivet*$angle_cos+$rad_cut"] 0. [expr "3*$t_st"] 0. 1. 0. 4*$t_st;
269 mkedge en6 c6 [expr "3.141"] [expr "5*3.141/4"];
272 vertex p1 [expr "$offset_rivet+3.5*$step_rivet*$angle_cos+$rad_cut+$t_st"] 0. 0. ;
273 vertex p2 [expr "$offset_rivet+3.5*$step_rivet*$angle_cos+$rad_cut+$t_st"] 0. [expr "-$t_st"] ;
274 edge en1 en6_2 en5_2;
278 wire w_en en1 en5 en2 en3 en4 en6;
280 revol rev_en1 f_en [expr "$offset_rivet+3.5*$step_rivet*$angle_cos"] 0. 0. 0. 0. 1. 360.
281 bfuse v_plate1 v_plate rev_en1;
283 #Create reinforcement of cut2
284 copy rev_en1 rev_en2;
285 ttranslate rev_en2 [expr "7.*$step_rivet*$angle_cos"] 0. 0.;
286 bfuse v_plate2 v_plate1 rev_en2;
288 #Create reinforcement of cut3
289 copy rev_en2 rev_en3;
290 ttranslate rev_en3 [expr "7.*$step_rivet*$angle_cos"] 0. 0.;
291 bfuse v_plate3 v_plate2 rev_en3;
293 #Create reinforcement of cut4
294 circle c7 [expr "$offset_rivet+24.5*$step_rivet*$angle_cos+$rad_cut1"] 0. [expr "3*$t_st"] 0. 1. 0. 3*$t_st;
295 mkedge en7 c7 [expr "3.141"] [expr "5*3.141/4"];
296 circle c8 [expr "$offset_rivet+24.5*$step_rivet*$angle_cos+$rad_cut1"] 0. [expr "3*$t_st"] 0. 1. 0. 4*$t_st;
297 mkedge en8 c8 [expr "3.141"] [expr "5*3.141/4"];
300 vertex p3 [expr "$offset_rivet+24.5*$step_rivet*$angle_cos+$rad_cut1+$t_st"] 0. 0. ;
301 vertex p4 [expr "$offset_rivet+24.5*$step_rivet*$angle_cos+$rad_cut1+$t_st"] 0. [expr "-$t_st"] ;
302 edge en9 en8_2 en7_2;
306 wire w_en1 en7 en10 en11 en12 en8 en9 ;
308 revol rev_en4 f_en1 [expr "$offset_rivet+24.5*$step_rivet*$angle_cos"] 0. 0. 0. 0. 1. 360.
309 bfuse v_plate4 v_plate3 rev_en4;
311 #Create reinforcement of cut5
312 circle c9 [expr "$offset_rivet+31.5*$step_rivet*$angle_cos+$rad_cut2"] 0. [expr "3*$t_st"] 0. 1. 0. 3*$t_st;
313 mkedge en13 c9 [expr "3.141"] [expr "5*3.141/4"];
314 circle c10 [expr "$offset_rivet+31.5*$step_rivet*$angle_cos+$rad_cut2"] 0. [expr "3*$t_st"] 0. 1. 0. 4*$t_st;
315 mkedge en14 c10 [expr "3.141"] [expr "5*3.141/4"];
318 vertex p5 [expr "$offset_rivet+31.5*$step_rivet*$angle_cos+$rad_cut2+$t_st"] 0. 0. ;
319 vertex p6 [expr "$offset_rivet+31.5*$step_rivet*$angle_cos+$rad_cut2+$t_st"] 0. [expr "-$t_st"] ;
320 edge en15 en14_2 en13_2;
324 wire w_en2 en13 en16 en17 en18 en14 en15 ;
326 revol rev_en5 f_en2 [expr "$offset_rivet+31.5*$step_rivet*$angle_cos"] 0. 0. 0. 0. 1. 360.
327 bfuse v_plate5 v_plate4 rev_en5;
329 #Create pattern rivet 1 for 2 plates
330 circle c11 $offset_rivet [expr "$B1-$B3+$offset_rivet"] [expr " 0.3*$t_st"] 1. 0. 0. [expr "2.5* $rad_rivet"];
331 mkedge e_riv c11 [expr "-acos(0.7*$t_st/2.5*$rad_rivet)"] 0;
334 tmirror e_riv1 0. 0. 0. 0. 0. 1.;
337 vertex riv1 $offset_rivet [expr "$B1-$B3+$offset_rivet+$rad_rivet"] $t_st;
338 vertex riv2 $offset_rivet [expr "$B1-$B3+$offset_rivet+$rad_rivet"] [expr " -$t_st"];
339 edge riv_e1 riv2 riv1;
340 edge riv_e2 e_riv_2 e_riv1_2;
341 edge riv_e3 e_riv1_1 riv2 ;
342 edge riv_e4 riv1 e_riv_1 ;
343 #fillet2d riv_fil1 riv_e1 riv_e3 0.25;
344 #fillet2d riv_fil2 riv_e2 riv_e1 0.25;
345 wire w_riv e_riv riv_e2 e_riv1 riv_e3 riv_e1 riv_e4;
347 revol rev_riv f_riv $offset_rivet [expr "$B1-$B3+$offset_rivet"] 0. 0. 0. 1. 360.;
349 #Create pattern rivet 2 for 2 plates
351 ttranslate e_riv3 0. 0. [expr " -$t_st"];
354 ttranslate e_riv2 0. 0. [expr " -$t_ang"];
356 vertex riv3 $offset_rivet [expr "$B1-$B3+$offset_rivet+$rad_rivet"] 0;
357 vertex riv4 $offset_rivet [expr "$B1-$B3+$offset_rivet+$rad_rivet"] [expr " -$t_ang-$t_st"];
359 edge riv_e5 riv4 riv3;
360 edge riv_e6 riv3 e_riv3_1;
361 edge riv_e7 e_riv3_2 e_riv2_2;
362 edge riv_e8 e_riv2_1 riv4;
363 wire w_rivl e_riv3 riv_e7 e_riv2 riv_e8 riv_e5 riv_e6;
364 mkplane f_rivl w_rivl;
365 revol rev_rivl f_rivl $offset_rivet [expr "$B1-$B3+$offset_rivet"] 0. 0. 0. 1. 360.;
367 #Create pattern rivet 3 for 3 plates
368 edge riv_e9 e_riv_2 e_riv2_2;
369 edge riv_e10 riv1 riv4;
370 wire w_riv3pl e_riv2 riv_e8 riv_e10 riv_e4 e_riv riv_e9 ;
371 mkplane f_riv3pl w_riv3pl;
372 revol rev_riv3pl f_riv3pl $offset_rivet [expr "$B1-$B3+$offset_rivet"] 0. 0. 0. 1. 360.;
375 #Create rivets upper row
376 compound rev_riv rivets_upper;
378 set NNN [expr "int($L_edge/$step_rivet)"]
380 if {fmod ($i,7) != 0 } {
381 copy rev_riv rev_riv_$i
382 ttranslate rev_riv_$i [expr "$i*$step_rivet*$angle_cos"] [expr "-($i*$step_rivet*$angle_sin)"] 0. ;
383 add rev_riv_$i rivets_upper;
385 copy rev_riv3pl rev_riv_$i
386 ttranslate rev_riv_$i [expr "$i*$step_rivet*$angle_cos"] [expr "-($i*$step_rivet*$angle_sin)"] 0. ;
387 add rev_riv_$i rivets_upper;
392 #Create rivets lower row
393 copy rivets_upper rivets_lower;
394 tmirror rivets_lower 0. 0. 0. 0. 1. 0.;
396 #Create 1 row of rivets
400 set NN1 [expr "int(2*($B1-$B3+$offset_rivet)/$step_rivet)"]
403 ttranslate rev_$i 0. [expr "-($i*$step_rivet)"] 0. ;
409 #Create next rows of rivets
410 set Nrow 6; #number of vertical rows
413 copy rev_rivl rev_riv1e_$j;
414 ttranslate rev_riv1e_$j [expr "7*$step_rivet*$j*$angle_cos"] [expr "-(7*$step_rivet*$j)*$angle_sin-$step_rivet"] 0. ;
415 compound rev_riv1e_$j rivets_$j;
417 set NN2 [expr "$NN1-$j-1"];
419 copy rev_riv1e_$j rev_riv1v_$i
420 ttranslate rev_riv1v_$i 0. [expr "-($i*$step_rivet)"] 0. ;
421 add rev_riv1v_$i rivets_$j;
426 #Create profile for bracket
427 set ang_x1 [expr "($offset_rivet+7*$step_rivet-$h_ang/2)*$angle_cos"];
428 set ang_y1 [expr "$B1-$B3+$offset_fl-($offset_rivet+7*$step_rivet-$h_ang/2)*$angle_sin"];
429 vertex ang_1 $ang_x1 $ang_y1 [expr " -$t_st"];
430 set ang_x2 [expr "($offset_rivet+7*$step_rivet+$h_ang/2)*$angle_cos"];
431 set ang_y2 [expr "$B1-$B3+$offset_fl-($offset_rivet+7*$step_rivet+$h_ang/2)*$angle_sin"];
432 vertex ang_2 $ang_x2 $ang_y2 [expr " -$t_st"];
433 set ang_y3 [expr "$B1-$B3+$offset_fl-($offset_rivet+7*$step_rivet-$h_ang/2)*$angle_sin"];
434 vertex ang_3 $ang_x1 $ang_y3 [expr " -$t_st-$t_ang"];
435 set ang_y4 [expr "$B1-$B3+$offset_fl-($offset_rivet+7*$step_rivet+$h_ang/2)*$angle_sin"];
436 vertex ang_4 $ang_x2 $ang_y4 [expr " -$t_st-$h_ang"];
437 set ang_x5 [expr "($offset_rivet+7*$step_rivet+$h_ang/2-$t_ang)*$angle_cos"];
438 set ang_y5 [expr "$B1-$B3+$offset_fl-($offset_rivet+7*$step_rivet+$h_ang/2-$t_ang)*$angle_sin"];
439 vertex ang_5 $ang_x5 $ang_y5 [expr " -$t_st-$h_ang"];
440 set ang_y6 [expr "$B1-$B3+$offset_fl-($offset_rivet+7*$step_rivet+$h_ang/2-$t_ang)*$angle_sin"];
441 vertex ang_6 $ang_x5 $ang_y6 [expr " -$t_st-$t_ang"];
442 edge ang_e1 ang_1 ang_2;
443 edge ang_e2 ang_2 ang_4;
444 edge ang_e3 ang_4 ang_5;
445 edge ang_e4 ang_5 ang_6;
446 edge ang_e5 ang_6 ang_3;
447 edge ang_e6 ang_3 ang_1;
448 fillet2d ang_f1 ang_e4 ang_e5 2.;
449 fillet2d ang_f2 ang_e5 ang_e6 0.4;
450 fillet2d ang_f3 ang_e3 ang_e4 0.4;
451 wire w_ang ang_e1 ang_e2 ang_e3 ang_f3 ang_e4 ang_f1 ang_e5 ang_f2 ang_e6;
453 prism v_ang f_ang 0. [expr "-2. *$B1"] 0.;
456 #Create prisms to cut profile
458 #vertex p1_1 0. [expr "-($B1-$B3+$offset_fl)-$B1"] 0.;
459 #vertex p1_2 $L [expr "-($B2-$B3+$offset_fl)-$B1"] 0.;
460 vertex p1_1 0. [expr "-($B1-$B3+$offset_fl)-3.*$B1"] 0.;
461 vertex p1_2 $L [expr "-($B2-$B3+$offset_fl)-3.*$B1"] 0.;
462 edge ep1_1 vfl_3 p1_2;
463 edge ep1_2 p1_2 p1_1;
464 edge ep1_3 p1_1 vfl_1;
465 wire w_pr1 ep1_1 pl_2 ep1_2 ep1_3;
467 prism v_pr1 f_pr1 0. 0. [expr "-4.*$h_ang"];
470 vertex p2_1 $ang_x5 [expr "$ang_y5-10."] [expr " -$t_st-$h_ang"];
471 vertex p2_2 $ang_x5 $ang_y5 [expr " -$t_st-$h_ang+10."];
472 edge ep2_1 p2_1 p2_2;
473 edge ep2_2 p2_2 ang_5;
474 edge ep2_3 ang_5 p2_1;
475 wire w_pr2 ep2_1 ep2_2 ep2_3;
477 prism v_pr2 f_pr2 [expr "$L*$angle_cos"] [expr "-$L*$angle_sin"] 0.;
481 tmirror v_pr3 0. 0. 0. 0. 1. 0.;
484 set ang_xpr1 [expr "($offset_rivet+7*$step_rivet-$h_ang/2+5.)*$angle_cos"];
485 set ang_ypr1 [expr "$B1-$B3+$offset_fl-($offset_rivet+7*$step_rivet-$h_ang/2+5.)*$angle_sin"];
486 vertex p4_1 $ang_xpr1 $ang_ypr1 [expr " -$t_st"];
487 vertex p4_2 $ang_x1 [expr "$ang_y1-5."] [expr " -$t_st"];
488 edge ep4_1 p4_1 p4_2;
489 edge ep4_2 p4_2 ang_1;
490 edge ep4_3 ang_1 p4_1;
491 wire w_pr4 ep4_1 ep4_2 ep4_3;
493 prism v_pr4 f_pr4 0. 0. [expr "-$L"];
497 tmirror v_pr5 0. 0. 0. 0. 1. 0.;
500 prism vholes_1 holes_1 0. 0. [expr "-4.*$h_ang"];
501 bcut v_ang_1a v_ang v_pr1;
502 bcut v_ang_1b v_ang_1a v_pr2;
503 bcut v_ang_1c v_ang_1b v_pr3;
504 bcut v_ang_1d v_ang_1c v_pr4;
505 bcut v_ang_1e v_ang_1d v_pr5;
506 bcut v_ang_1f v_ang_1e vholes_1;
507 compound v_ang_1f brackets;
509 set Nrow 6; #number of vertical rows
512 copy v_ang_1e v_ang2;
513 ttranslate v_ang2 [expr "7*($j-1)*$step_rivet*$angle_cos"] [expr "-7*($j-1)*$step_rivet*$angle_sin"] 0.;
514 bcut v_ang3 v_ang2 v_pr1;
515 bcut v_ang4 v_ang3 v_pr3;
517 ttranslate v_pr5_$j [expr "7*($j-1)*$step_rivet*$angle_cos"] [expr "7*($j-1)*$step_rivet*$angle_sin"] 0.;
518 bcut v_ang5 v_ang4 v_pr5_$j;
519 prism vholes_$j holes_$j 0. 0. [expr "-4.*$h_ang"];
520 bcut v_ang1_$j v_ang5 vholes_$j;
521 add v_ang1_$j brackets;
526 #vdisplay v_plate5 v_upper v_lower rivets_1 rivets_2 rivets_3 rivets_4 rivets_5 rivets_upper rivets_lower brackets
528 compound rivets_1 rivets_2 rivets_3 rivets_4 rivets_5 brackets brackets_with_rivets;
529 compound rivets_upper v_upper v_upper_rivets;
530 compound v_lower rivets_lower v_lower_rivets;
531 compound v_plate5 v_upper_rivets v_lower_rivets brackets_with_rivets wing_rib;
534 pload MODELING VISUALIZATION OCAF XDE;
535 NewDocument D;#creates new document with name D;
537 #Assign names to shapes
538 XAddShape D wing_rib;
540 SetName D 0:1:1:1 wing_rib;
541 SetName D 0:1:1:1:1 v_plate5;
542 SetName D 0:1:1:1:2 v_upper_rivets;
543 SetName D 0:1:1:1:3 v_lower_rivets;
544 SetName D 0:1:1:1:4 brackets_with_rivets;
545 SetName D 0:1:1:2 v_plate5;
546 SetName D 0:1:1:4 v_upper_rivets;
547 SetName D 0:1:1:4:1 rivets_upper;
548 SetName D 0:1:1:4:2 v_upper;
549 SetName D 0:1:1:5 rivets_upper;
550 SetName D 0:1:1:8 v_upper;
551 SetName D 0:1:1:8:1 v_upper;
552 SetName D 0:1:1:9 v_upper;
553 SetName D 0:1:1:10 v_lower_rivets;
554 SetName D 0:1:1:10:1 v_lower;
555 SetName D 0:1:1:10:2 rivets_lower;
556 SetName D 0:1:1:11 v_lower;
557 SetName D 0:1:1:13 rivets_lower;
560 set NNN [expr "int($L_edge/$step_rivet)+1"]
562 SetName D 0:1:1:5:$i rev_riv_up_$i;
563 SetName D 0:1:1:13:$i rev_riv_low_$i;
564 set ind [expr "$i+13"]
565 XSetColor D 0:1:1:$ind 0.576 0.576 0.432;
569 XSetColor D 0:1:1:$ind 0.576 0.576 0.432;
571 SetName D 0:1:1:64 brackets_with_rivets;
572 SetName D 0:1:1:64:1 rivets_on_bracket_1;
573 SetName D 0:1:1:65 rivets_on_bracket_1;
574 SetName D 0:1:1:64:2 rivets_on_bracket_2;
575 SetName D 0:1:1:67 rivets_on_bracket_2;
576 SetName D 0:1:1:64:3 rivets_on_bracket_3;
577 SetName D 0:1:1:68 rivets_on_bracket_3;
578 SetName D 0:1:1:64:4 rivets_on_bracket_4;
579 SetName D 0:1:1:69 rivets_on_bracket_4;
580 SetName D 0:1:1:64:5 rivets_on_bracket_5;
581 SetName D 0:1:1:70 rivets_on_bracket_5;
582 SetName D 0:1:1:64:6 brackets;
583 SetName D 0:1:1:71 brackets;
584 SetName D 0:1:1:71:1 bracket_1;
585 SetName D 0:1:1:72 bracket_1;
586 SetName D 0:1:1:71:2 bracket_2;
587 SetName D 0:1:1:74 bracket_2;
588 SetName D 0:1:1:71:3 bracket_3;
589 SetName D 0:1:1:76 bracket_3;
590 SetName D 0:1:1:71:4 bracket_4;
591 SetName D 0:1:1:78 bracket_4;
592 SetName D 0:1:1:71:5 bracket_5;
593 SetName D 0:1:1:80 bracket_5;
595 SetName D 0:1:1:3 plate5;
596 XSetColor D 0:1:1:3 0.58 0.57 0.57;
597 XSetColor D 0:1:1:6 0.576 0.576 0.432;
598 XSetColor D 0:1:1:7 0.576 0.576 0.432;
599 XSetColor D 0:1:1:66 0.576 0.576 0.432;
600 XSetColor D 0:1:1:75 0.58 0.57 0.57;
601 XSetColor D 0:1:1:77 0.58 0.57 0.57;
602 XSetColor D 0:1:1:79 0.58 0.57 0.57;
603 XSetColor D 0:1:1:81 0.58 0.57 0.57;
606 #All attributes (colors, dimensions can be exported only on basic solids without locations noty compounds
607 XGetShape v1 D 0:1:1:9;
610 XAddDimension D v1_388; #0:1:4:1
611 XSetDimensionType D 0:1:4:1 15;
613 XSetDimensionValue D 0:1:4:1 2.;
615 XAddDimension D v1_296; #0:1:4:2
616 XSetDimensionType D 0:1:4:2 2;
618 XSetDimensionValue D 0:1:4:2 100.;
620 XGetShape v2 D 0:1:1:3;
624 XAddDimension D v2_24; #0:1:4:3
625 XSetDimensionType D 0:1:4:3 15;
627 XSetDimensionValue D 0:1:4:3 35.;
630 XAddGeomTolerance D v2_2; #0:1:4:
631 XSetToleranceValue D 0:1:4:4 0.5
633 XSetTypeOfTolerance D 0:1:4:4 2
635 XSetTypeOfToleranceValue D 0:1:4:4 1
638 XAddShape D bracket_5