ba832480 |
1 | # The following example constructs a 3D object looking like new OCC logo on top view. |
2 | # |
3 | #Category: Modeling |
4 | #Title: OCC Logo 2019 |
5 | |
6 | pload MODELING VISUALIZATION XDE OCAF |
7 | |
8 | # spheric body |
9 | psphere s 1 |
10 | box b 0 0 -2 1.5 1.5 4 |
11 | bcut sb s b |
12 | |
13 | # toroidal handle |
14 | ptorus t 1 0.5 |
15 | trotate t 0 0 0 0 0 1 -90 |
16 | ttranslate t 1.5 1.5 0 |
17 | bcut tb t b |
18 | |
19 | pcylinder p1 0.5 0.5 |
20 | trotate p1 0 0 0 0 0 1 180 |
21 | trotate p1 0 0 0 1 0 0 90 |
22 | ttranslate p1 0.5 1.5 0 |
23 | |
24 | pcylinder p2 0.5 0.5 |
25 | trotate p2 0 0 0 0 0 1 180 |
26 | trotate p2 0 0 0 1 0 0 90 |
27 | trotate p2 0 0 0 0 0 1 90 |
28 | ttranslate p2 1 0.5 0 |
29 | |
30 | bfuse tp tb p1 |
31 | bfuse tp tp p2 |
32 | |
33 | # intermediate part |
34 | |
35 | # - get surfaces and edges on half of spheric and toroidal parts for filling |
36 | box b -2 -2 -2 4 4 2 |
37 | bcut sbh sb b |
38 | bcut tph tp b |
39 | unset b |
40 | |
41 | explode sbh f |
42 | renamevar sbh_1 sbf |
43 | explode sbf e |
44 | |
45 | explode tph f |
46 | renamevar tph_2 tpf1 |
47 | renamevar tph_13 tpf2 |
48 | explode tpf1 e |
49 | explode tpf2 e |
50 | |
51 | # - make curved surface by plate |
52 | #plate r 0 4 tpf1_1 tpf1 1 tpf2_3 tpf2 1 sbf_2 sbf 1 sbf_4 sbf 1 |
53 | approxplate r1 0 4 tpf1_1 tpf1 0 tpf2_1 tpf2 0 sbf_2 sbf 0 sbf_4 sbf 0 0.00001 100 3 0 |
54 | |
55 | # - make solid |
56 | tcopy r1 r2 |
57 | tmirror r2 0 0 0 0 0 1 |
58 | explode sb f |
59 | explode tp f |
60 | sewing rr 0.001 r1 r2 sb_2 sb_3 tp_2 tp_5 |
61 | ssolid rr rs |
62 | |
63 | # rotate all solids by 45 deg to have standard orientation of the logo on top view |
64 | trotate sb 0 0 0 0 0 1 -45 |
65 | trotate tp 0 0 0 0 0 1 -45 |
66 | trotate rs 0 0 0 0 0 1 -45 |
67 | |
68 | # create XDE document |
69 | catch {Close D} |
70 | XNewDoc D |
71 | set main [XNewShape D] |
72 | XAddComponent D $main sb |
73 | XAddComponent D $main tp |
74 | XAddComponent D $main rs |
75 | XUpdateAssemblies D |
76 | SetName D $main "OCC Logo 2019" |
77 | SetName D [XFindShape D sb] "Core" |
78 | SetName D [XFindShape D tp] "Loop" |
79 | SetName D [XFindShape D rs] "Connector" |
aaf8d6a9 |
80 | XSetColor D sb FF3652 |
81 | XSetColor D tp 00AADA |
82 | XSetColor D rs 0073B0 |
ba832480 |
83 | |
84 | # display |
aaf8d6a9 |
85 | vinit View1 |
86 | vbackground -color WHITE |
87 | XDisplay -dispMode 1 D |
ba832480 |
88 | vtop |
89 | vfit |