a287bdd4cbe6378f0bfb5b3821734ddfc66a8545
[occt.git] / src / DrawResources / VisualizationDemo.tcl
1 # Copyright (c) 1999-2012 OPEN CASCADE SAS
2 #
3 # The content of this file is subject to the Open CASCADE Technology Public
4 # License Version 6.5 (the "License"). You may not use the content of this file
5 # except in compliance with the License. Please obtain a copy of the License
6 # at http://www.opencascade.org and read it completely before using this file.
7 #
8 # The Initial Developer of the Original Code is Open CASCADE S.A.S., having its
9 # main offices at: 1, place des Freres Montgolfier, 78280 Guyancourt, France.
10 #
11 # The Original Code and all software distributed under the License is
12 # distributed on an "AS IS" basis, without warranty of any kind, and the
13 # Initial Developer hereby disclaims all such warranties, including without
14 # limitation, any warranties of merchantability, fitness for a particular
15 # purpose or non-infringement. Please see the License for the specific terms
16 # and conditions governing the rights and limitations under the License.
17
18
19 set stationname $tcl_platform(platform)
20 if { ${stationname} == "windows" } {
21    proc winfo { aTest aWindow } { return False }
22 }
23
24
25 proc sage { a} {
26     global stationname 
27     if { ${stationname} != "windows" } {
28         
29         if { ![winfo exists .h ] } {
30             toplevel .h -bg azure3
31             wm title .h "INFO AISViewer"
32             wm geometry .h +320+20
33             
34         } 
35         if { [winfo exists .h.m ] } {
36             set astring [.h.m cget  -text]
37             set newstring "${astring} \n $a"
38             .h.m configure -text $newstring 
39             puts $a
40         } else {
41             message .h.m -justify left -bg azure2 -width 13c -relief ridge -bd 4\
42                     -text $a
43             puts $a
44         } 
45         pack .h.m
46         update
47    }
48 }
49
50 if { [winfo exists .h ] } {
51     destroy .h
52 }
53
54 sage " Creating the V3D Viewer"
55 sage "    vinit"
56 sage " " 
57 vinit
58 vclear
59 clear
60
61 sage " Creating the Topological Viewer"
62 sage "    smallview"
63 sage " " 
64 smallview
65 sage " Creating a box"
66 sage "    box  b -10 -10 -10 20 20 20"
67 sage " "
68 box b -10 -10 -10 20 20 20
69 fit
70 sage " Display the box in the V3D Viewer"
71 sage "    vdisplay b"
72 sage " "
73 vdisplay b
74 vfit
75 nexplode b f
76 erase b
77 sage " Draft of two lateral faces "
78 sage "    nexplode b f"
79 sage "    depouille r b  0 0  -1 b_6 -15 10 -10 10  0 0 -1 "
80 sage "    nexplode r f"
81 sage "    depouille rr r  0 0 -1   r_1 -15 -10 -10 10  0 0 -1 "
82 sage " "
83 depouille r b  0 0  -1 b_6 -15 10 -10 10  0 0 -1 
84 clear
85 nexplode r f
86 depouille rr r  0 0 -1   r_1 -15 -10 -10 10  0 0 -1 
87 clear
88 nexplode rr e
89 verase b
90 vdisplay rr
91 vfit
92 sage " Fillet on four lateral edges, then on the top and bottom edges  "
93 sage "    nexplode rr e"
94 sage "    blend result rr 3 rr_2 3 rr_3 3 rr_10 3 rr_11"
95 sage "    nexplode result e"
96 sage "    blend result result 2 result_11 3 result_12"
97 sage " "
98 blend result rr 3 rr_2 3 rr_3 3 rr_10 3 rr_11
99 erase rr
100 erase result
101 nexplode result e
102 blend result result 2 result_11 3 result_12 
103 clear
104 nexplode result f
105 verase rr
106 vdisplay result
107 vfit
108 sage " Creating a profile on the top face "
109 sage "    nexplode result f"
110 sage "    profile p  S result_16 F 10 4 D 1 0 C 2 90. Y 8 C 2 90. X -2 C 2 90. Y -8 C 2 90. X 2
111 "
112 sage " "
113 profile p  S result_16 F 10 4 D 1 0 C 2 90. Y 8 C 2 90. X -2 C 2 90. Y -8 C 2 90. X 2
114 sage " Creating a prism"
115 sage "    prism rr p 0 0 20"
116 sage " "
117 prism rr p 0 0 20
118 sage " Change some attributs : MATERIAL , TRANSPARENCY"
119 sage "    vsetmaterial rr PLASTIC"
120 sage "    vsetcolor rr RED"
121 sage "    vsettransparency result 0.5"
122 sage "    vsetdispmode 1"
123 sage " "
124 vdisplay rr
125 vsetmaterial rr PLASTIC
126 vsettransparency rr 0.5
127 vsetcolor rr RED
128 vsettransparency result 0.5
129 vsetdispmode 1
130 vfit
131 fit
132 sage " Fusion of this prism with the original part "
133 sage "    fuse result rr result"
134 sage " "
135 fuse result rr result
136 donl result
137 vdisplay result
138 vdonly result
139 vfit
140 nexplode result f
141 erase result
142 fit
143
144 sage " Opening the top face"
145 sage "    offsetshape r result -1 0.0001 result_17"
146 sage " "
147 nexplode result f
148
149 offsetshape r result -1 0.0001 result_17
150 vdisplay r
151 vdonly r
152 vfit
153 vsetcolor r MATRABLUE
154 vsettransparency r 0
155
156 sage " Creating a cylinder and positionning it"
157 sage "    pcylinder cyl 2 300"
158 sage "    trotate cyl cyl 0 0 0  1 0 0 45"
159 sage "    ttranslate cyl cyl 0 7.5 0"
160 sage " "
161 pcylinder cyl 2 30
162 vdisplay cyl 
163 vsetcolor cyl RED
164 vfit
165 trotate cyl cyl 0 0 0  1 0 0 45
166 ttranslate cyl cyl 0 7.5 0
167 vdisplay cyl 
168 vsetcolor cyl RED
169 vfit
170 vdisplay cyl 
171 vsetcolor cyl RED
172 vfit
173 sage "Demo completed"