44c7c33e |
1 | # Script displays properties of different materials available in OCCT |
2 | |
3 | set THE_MATERIALS {brass bronze copper gold jade neon_phc pewter obsidian plaster plastic satin silver steel stone chrome aluminium water glass diamond charcoal} |
4 | set THE_COLORS {default red green blue1} |
5 | set THE_ROW_DIST 35 |
6 | |
7 | proc drawLabels {} { |
8 | set x 20 |
9 | set y 15 |
10 | set r 25 |
11 | set g 25 |
12 | set b 25 |
13 | foreach aMatIter $::THE_MATERIALS { |
14 | vdrawtext "$aMatIter" $x $y 0 $r $g $b 2 1 000 0 14 1 Arial |
15 | incr y 10 |
16 | } |
17 | set x 40 |
18 | set y 5 |
19 | foreach aColIter $::THE_COLORS { |
20 | if { $aColIter == "red" } { |
21 | set r 255 |
22 | set g 0 |
23 | set b 0 |
24 | } elseif { $aColIter == "green" } { |
25 | set r 0 |
26 | set g 255 |
27 | set b 0 |
28 | } elseif { $aColIter == "blue1" } { |
29 | set r 0 |
30 | set g 0 |
31 | set b 255 |
32 | } |
33 | vdrawtext "$aColIter" $x $y 0 $r $g $b 1 1 000 0 14 1 Arial |
34 | incr x $::THE_ROW_DIST |
35 | } |
36 | } |
37 | |
38 | proc drawObjects {theRow theColor} { |
39 | set aSize 4 |
40 | set aCtr -2 |
41 | set aCounter 0 |
42 | set x [expr 30 + $theRow * $::THE_ROW_DIST] |
43 | set y 15 |
44 | foreach aMatIter $::THE_MATERIALS { |
45 | set aSph s${theRow}_${aCounter} |
46 | set aBox b${theRow}_${aCounter} |
47 | uplevel #0 psphere $aSph $aSize |
48 | uplevel #0 box $aBox $aCtr $aCtr $aCtr $aSize $aSize $aSize |
49 | uplevel #0 ttranslate $aSph $x $y 0 |
50 | uplevel #0 ttranslate $aBox [expr $x + 10] $y 0 |
51 | uplevel #0 vdisplay -noredraw $aSph $aBox |
52 | uplevel #0 vsetmaterial -noredraw $aSph $aBox $aMatIter |
53 | if {$theColor != ""} { |
54 | uplevel #0 vsetcolor -noredraw $aSph $aBox $theColor |
55 | } |
56 | incr aCounter |
57 | incr y 10 |
58 | } |
59 | } |
60 | |
61 | # setup 3D viewer content |
62 | pload MODELING VISUALIZATION |
63 | |
64 | catch { vclose View1 } |
65 | vinit View1 w=768 h=768 |
66 | vclear |
67 | vtop |
68 | vglinfo |
69 | vsetgradientbg 180 200 255 180 180 180 2 |
70 | vlight change 0 pos -1 1 1 |
71 | vsetdispmode 1 |
72 | |
73 | # adjust scene bounding box |
74 | box bnd 0 0 0 180 210 1 |
75 | vdisplay -noredraw bnd |
76 | vsetdispmode bnd 0 |
77 | vfit |
78 | vremove -noredraw bnd |
79 | |
80 | # draw spheres and boxes with different materials |
81 | drawLabels |
82 | drawObjects 0 "" |
83 | drawObjects 1 red |
84 | drawObjects 2 green |
85 | drawObjects 3 blue1 |
86 | #vfit |
87 | vzfit |