0024886: BRepOffsetAPI_NormalProjection failure
[occt.git] / samples / tcl / ModelingDemo.tcl
1 # Copyright (c) 1999-2014 OPEN CASCADE SAS
2 #
3 # This file is part of Open CASCADE Technology software library.
4 #
5 # This library is free software; you can redistribute it and / or modify it
6 # under the terms of the GNU Lesser General Public version 2.1 as published
7 # by the Free Software Foundation, with special exception defined in the file
8 # OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
9 # distribution for complete text of the license and disclaimer of any warranty.
10 #
11 # Alternatively, this file may be used under the terms of Open CASCADE
12 # commercial license or contractual agreement.
13
14 # Command to log a message to both command-line and dialog window
15 proc sage { a} {
16     if { ![winfo exists .h ] } {
17         toplevel .h -bg azure3
18         wm title .h "INFO TEST HARNESS"
19         wm geometry .h +320+20
20     } 
21     if { [winfo exists .h.m ] } {
22         set astring [.h.m cget  -text]
23         set newstring "${astring} \n $a"
24         .h.m configure -text $newstring 
25         puts $a
26     } else {
27         message .h.m -justify left -bg azure2 -width 13c -relief ridge -bd 4 -text $a
28         puts $a
29     } 
30     pack .h.m
31     update
32 }
33
34 pload MODELING
35
36 smallview
37 if { [winfo exists .h ] } {
38     destroy .h
39 }
40 sage " Creating a box"
41 sage "    box  b -10 -10 -10 20 20 20"
42 sage " "
43 box b -10 -10 -10 20 20 20
44 fit
45 nexplode b f
46 erase b
47 sage " Draft of two lateral faces "
48 sage "    depouille r b  0 0  -1 b_6 -15 10 -10 10  0 0 -1 "
49 sage "    nexplode r f"
50 sage "    depouille rr r  0 0 -1   r_1 -15 -10 -10 10  0 0 -1 "
51 sage " "
52 depouille r b  0 0  -1 b_6 -15 10 -10 10  0 0 -1 
53 clear
54 nexplode r f
55 depouille rr r  0 0 -1   r_1 -15 -10 -10 10  0 0 -1 
56 clear
57 nexplode rr e
58 sage " Fillet on four lateral edges, then on the top and bottom edges  "
59 sage "    nexplode rr e"
60 sage "    blend result rr 3 rr_2 3 rr_3 3 rr_10 3 rr_11"
61 sage "    nexplode result e"
62 sage "    blend result result 2 result_11 3 result_12"
63 sage " "
64 blend result rr 3 rr_2 3 rr_3 3 rr_10 3 rr_11
65 erase rr
66 erase result
67 nexplode result e
68 blend result result 2 result_11 3 result_12 
69 clear
70 nexplode result f
71 sage " Creating a profile on the top face "
72 sage "    nexplode result f"
73 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
74 "
75 sage " "
76 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
77 sage " Creating a prism"
78 sage "    prism rr p 0 0 20"
79 sage " "
80 prism rr p 0 0 20
81 fit
82 sage " Fusion of this prism with the original part "
83 sage "    fuse result rr result"
84 sage " "
85 fuse result rr result
86 donl result
87 nexplode result f
88 erase result
89 fit
90
91 sage " Opening the top face"
92 sage "    offsetshape r result -1 0.0001 result_17"
93 sage " "
94
95 nexplode result f
96 offsetshape r result -1 0.0001 result_17
97 sage " Creating a cylinder and positionning it"
98 sage "    pcylinder cyl 2 300"
99 sage "    trotate cyl cyl 0 0 0  1 0 0 45"
100 sage "    ttranslate cyl cyl 0 7.5 0"
101 sage " "
102 pcylinder cyl 2 30
103 trotate cyl cyl 0 0 0  1 0 0 45
104 ttranslate cyl cyl 0 7.5 0
105 sage " Display the Shape on Hidden Line Mode "
106 sage "   hlr hid r"
107 sage ""
108 donl r
109 hlr hid r
110 sage " Display the Shape on HLR Mode "
111 sage "   hlr nohid r"
112 sage "   hlr hlr r"
113 sage ""
114 donl r
115 hlr nohid r
116 hlr hlr r
117 sage "Demo completed"