mirror of
https://git.dev.opencascade.org/repos/occt.git
synced 2025-09-18 14:27:39 +03:00
0023136: Increase visibility of DRAW samples
Tcl samples moved from src/DrawResources to samples/tcl. Scripts VisualisationDemo.tcl and ModelingDemo.tcl fixed to work on Windows. File wing.brep moved from src/DrawResources to data/occ, and DataExchangeDemo.tcl corrected. OCAFDemo.tcl removed, as it has little sense and referred data files are lost Added sample Tcl script creating a model defined on the 'Open CASCADE challenge' web page
This commit is contained in:
84
samples/tcl/DataExchangeDemo.tcl
Normal file
84
samples/tcl/DataExchangeDemo.tcl
Normal file
@@ -0,0 +1,84 @@
|
||||
# Copyright (c) 1999-2012 OPEN CASCADE SAS
|
||||
#
|
||||
# The content of this file is subject to the Open CASCADE Technology Public
|
||||
# License Version 6.5 (the "License"). You may not use the content of this file
|
||||
# except in compliance with the License. Please obtain a copy of the License
|
||||
# at http://www.opencascade.org and read it completely before using this file.
|
||||
#
|
||||
# The Initial Developer of the Original Code is Open CASCADE S.A.S., having its
|
||||
# main offices at: 1, place des Freres Montgolfier, 78280 Guyancourt, France.
|
||||
#
|
||||
# The Original Code and all software distributed under the License is
|
||||
# distributed on an "AS IS" basis, without warranty of any kind, and the
|
||||
# Initial Developer hereby disclaims all such warranties, including without
|
||||
# limitation, any warranties of merchantability, fitness for a particular
|
||||
# purpose or non-infringement. Please see the License for the specific terms
|
||||
# and conditions governing the rights and limitations under the License.
|
||||
|
||||
# Command to log a message to both command-line and dialog window
|
||||
proc sage { a} {
|
||||
if { ![winfo exists .h ] } {
|
||||
toplevel .h -bg azure3
|
||||
wm title .h "INFO TEST HARNESS"
|
||||
wm geometry .h +320+20
|
||||
}
|
||||
if { [winfo exists .h.m ] } {
|
||||
set astring [.h.m cget -text]
|
||||
set newstring "${astring} \n $a"
|
||||
.h.m configure -text $newstring
|
||||
puts $a
|
||||
} else {
|
||||
message .h.m -justify left -bg azure2 -width 13c -relief ridge -bd 4 -text $a
|
||||
puts $a
|
||||
}
|
||||
pack .h.m
|
||||
update
|
||||
}
|
||||
|
||||
pload DATAEXCHANGE
|
||||
|
||||
smallview
|
||||
if { [winfo exists .h ] } {
|
||||
destroy .h
|
||||
}
|
||||
|
||||
set ddir .
|
||||
if { [info exists env(CASROOT)] } {
|
||||
set ddir [file join $env(CASROOT) data occ]
|
||||
}
|
||||
|
||||
set tdir .
|
||||
if { [info exist env(TEMP)] } {
|
||||
set tdir $env(TEMP)
|
||||
}
|
||||
|
||||
sage " First, we retrieve a BREP File "
|
||||
sage " restore $ddir/wing.brep wing"
|
||||
sage " "
|
||||
datadir .
|
||||
restore $ddir/wing.brep wing
|
||||
disp wing
|
||||
fit
|
||||
|
||||
sage "Generate the IGES File of this BREP"
|
||||
sage " brepiges wing $tdir/wing.igs"
|
||||
sage " "
|
||||
brepiges wing $tdir/wing.igs
|
||||
wait 3
|
||||
|
||||
sage "we delete all DRAW data"
|
||||
sage ""
|
||||
dall
|
||||
fit
|
||||
wait 3
|
||||
|
||||
sage "Restore this IGES File we have created "
|
||||
sage " igesbrep $tdir/wing.igs new *"
|
||||
sage ""
|
||||
igesbrep $tdir/wing.igs new *
|
||||
disp new
|
||||
fit
|
||||
|
||||
puts "End IGES Elementary Test "
|
||||
sage " "
|
||||
file delete $tdir/wing.igs
|
121
samples/tcl/ModelingDemo.tcl
Normal file
121
samples/tcl/ModelingDemo.tcl
Normal file
@@ -0,0 +1,121 @@
|
||||
# Copyright (c) 1999-2012 OPEN CASCADE SAS
|
||||
#
|
||||
# The content of this file is subject to the Open CASCADE Technology Public
|
||||
# License Version 6.5 (the "License"). You may not use the content of this file
|
||||
# except in compliance with the License. Please obtain a copy of the License
|
||||
# at http://www.opencascade.org and read it completely before using this file.
|
||||
#
|
||||
# The Initial Developer of the Original Code is Open CASCADE S.A.S., having its
|
||||
# main offices at: 1, place des Freres Montgolfier, 78280 Guyancourt, France.
|
||||
#
|
||||
# The Original Code and all software distributed under the License is
|
||||
# distributed on an "AS IS" basis, without warranty of any kind, and the
|
||||
# Initial Developer hereby disclaims all such warranties, including without
|
||||
# limitation, any warranties of merchantability, fitness for a particular
|
||||
# purpose or non-infringement. Please see the License for the specific terms
|
||||
# and conditions governing the rights and limitations under the License.
|
||||
|
||||
# Command to log a message to both command-line and dialog window
|
||||
proc sage { a} {
|
||||
if { ![winfo exists .h ] } {
|
||||
toplevel .h -bg azure3
|
||||
wm title .h "INFO TEST HARNESS"
|
||||
wm geometry .h +320+20
|
||||
}
|
||||
if { [winfo exists .h.m ] } {
|
||||
set astring [.h.m cget -text]
|
||||
set newstring "${astring} \n $a"
|
||||
.h.m configure -text $newstring
|
||||
puts $a
|
||||
} else {
|
||||
message .h.m -justify left -bg azure2 -width 13c -relief ridge -bd 4 -text $a
|
||||
puts $a
|
||||
}
|
||||
pack .h.m
|
||||
update
|
||||
}
|
||||
|
||||
pload MODELING
|
||||
|
||||
smallview
|
||||
if { [winfo exists .h ] } {
|
||||
destroy .h
|
||||
}
|
||||
sage " Creating a box"
|
||||
sage " box b -10 -10 -10 20 20 20"
|
||||
sage " "
|
||||
box b -10 -10 -10 20 20 20
|
||||
fit
|
||||
nexplode b f
|
||||
erase b
|
||||
sage " Draft of two lateral faces "
|
||||
sage " depouille r b 0 0 -1 b_6 -15 10 -10 10 0 0 -1 "
|
||||
sage " nexplode r f"
|
||||
sage " depouille rr r 0 0 -1 r_1 -15 -10 -10 10 0 0 -1 "
|
||||
sage " "
|
||||
depouille r b 0 0 -1 b_6 -15 10 -10 10 0 0 -1
|
||||
clear
|
||||
nexplode r f
|
||||
depouille rr r 0 0 -1 r_1 -15 -10 -10 10 0 0 -1
|
||||
clear
|
||||
nexplode rr e
|
||||
sage " Fillet on four lateral edges, then on the top and bottom edges "
|
||||
sage " nexplode rr e"
|
||||
sage " blend result rr 3 rr_2 3 rr_3 3 rr_10 3 rr_11"
|
||||
sage " nexplode result e"
|
||||
sage " blend result result 2 result_11 3 result_12"
|
||||
sage " "
|
||||
blend result rr 3 rr_2 3 rr_3 3 rr_10 3 rr_11
|
||||
erase rr
|
||||
erase result
|
||||
nexplode result e
|
||||
blend result result 2 result_11 3 result_12
|
||||
clear
|
||||
nexplode result f
|
||||
sage " Creating a profile on the top face "
|
||||
sage " nexplode result f"
|
||||
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
|
||||
"
|
||||
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
|
||||
sage " Creating a prism"
|
||||
sage " prism rr p 0 0 20"
|
||||
sage " "
|
||||
prism rr p 0 0 20
|
||||
fit
|
||||
sage " Fusion of this prism with the original part "
|
||||
sage " fuse result rr result"
|
||||
sage " "
|
||||
fuse result rr result
|
||||
donl result
|
||||
nexplode result f
|
||||
erase result
|
||||
fit
|
||||
|
||||
sage " Opening the top face"
|
||||
sage " offsetshape r result -1 0.0001 result_17"
|
||||
sage " "
|
||||
|
||||
nexplode result f
|
||||
offsetshape r result -1 0.0001 result_17
|
||||
sage " Creating a cylinder and positionning it"
|
||||
sage " pcylinder cyl 2 300"
|
||||
sage " trotate cyl cyl 0 0 0 1 0 0 45"
|
||||
sage " ttranslate cyl cyl 0 7.5 0"
|
||||
sage " "
|
||||
pcylinder cyl 2 30
|
||||
trotate cyl cyl 0 0 0 1 0 0 45
|
||||
ttranslate cyl cyl 0 7.5 0
|
||||
sage " Display the Shape on Hidden Line Mode "
|
||||
sage " hlr hid r"
|
||||
sage ""
|
||||
donl r
|
||||
hlr hid r
|
||||
sage " Display the Shape on HLR Mode "
|
||||
sage " hlr nohid r"
|
||||
sage " hlr hlr r"
|
||||
sage ""
|
||||
donl r
|
||||
hlr nohid r
|
||||
hlr hlr r
|
||||
sage "Demo completed"
|
4
samples/tcl/Readme.txt
Normal file
4
samples/tcl/Readme.txt
Normal file
@@ -0,0 +1,4 @@
|
||||
This directory provides a set of demo scripts for using OCCT functionality from
|
||||
within DRAW Test Harness. Call the scripts from DRAW prompt, e.g.:
|
||||
|
||||
Draw[]> source samples/tcl/VisualizationDemo.tcl
|
163
samples/tcl/VisualizationDemo.tcl
Normal file
163
samples/tcl/VisualizationDemo.tcl
Normal file
@@ -0,0 +1,163 @@
|
||||
# Copyright (c) 1999-2012 OPEN CASCADE SAS
|
||||
#
|
||||
# The content of this file is subject to the Open CASCADE Technology Public
|
||||
# License Version 6.5 (the "License"). You may not use the content of this file
|
||||
# except in compliance with the License. Please obtain a copy of the License
|
||||
# at http://www.opencascade.org and read it completely before using this file.
|
||||
#
|
||||
# The Initial Developer of the Original Code is Open CASCADE S.A.S., having its
|
||||
# main offices at: 1, place des Freres Montgolfier, 78280 Guyancourt, France.
|
||||
#
|
||||
# The Original Code and all software distributed under the License is
|
||||
# distributed on an "AS IS" basis, without warranty of any kind, and the
|
||||
# Initial Developer hereby disclaims all such warranties, including without
|
||||
# limitation, any warranties of merchantability, fitness for a particular
|
||||
# purpose or non-infringement. Please see the License for the specific terms
|
||||
# and conditions governing the rights and limitations under the License.
|
||||
|
||||
# Command to log a message to both command-line and dialog window
|
||||
proc sage { a} {
|
||||
if { ![winfo exists .h ] } {
|
||||
toplevel .h -bg azure3
|
||||
wm title .h "INFO TEST HARNESS"
|
||||
wm geometry .h +320+20
|
||||
}
|
||||
if { [winfo exists .h.m ] } {
|
||||
set astring [.h.m cget -text]
|
||||
set newstring "${astring} \n $a"
|
||||
.h.m configure -text $newstring
|
||||
puts $a
|
||||
} else {
|
||||
message .h.m -justify left -bg azure2 -width 13c -relief ridge -bd 4 -text $a
|
||||
puts $a
|
||||
}
|
||||
pack .h.m
|
||||
update
|
||||
}
|
||||
|
||||
if { [winfo exists .h ] } {
|
||||
destroy .h
|
||||
}
|
||||
|
||||
pload MODELING VISUALIZATION
|
||||
|
||||
sage " Creating the V3D Viewer"
|
||||
sage " vinit"
|
||||
sage " "
|
||||
vinit
|
||||
vclear
|
||||
clear
|
||||
|
||||
sage " Creating the Topological Viewer"
|
||||
sage " smallview"
|
||||
sage " "
|
||||
smallview
|
||||
sage " Creating a box"
|
||||
sage " box b -10 -10 -10 20 20 20"
|
||||
sage " "
|
||||
box b -10 -10 -10 20 20 20
|
||||
fit
|
||||
sage " Display the box in the V3D Viewer"
|
||||
sage " vdisplay b"
|
||||
sage " "
|
||||
vdisplay b
|
||||
vfit
|
||||
nexplode b f
|
||||
erase b
|
||||
sage " Draft of two lateral faces "
|
||||
sage " nexplode b f"
|
||||
sage " depouille r b 0 0 -1 b_6 -15 10 -10 10 0 0 -1 "
|
||||
sage " nexplode r f"
|
||||
sage " depouille rr r 0 0 -1 r_1 -15 -10 -10 10 0 0 -1 "
|
||||
sage " "
|
||||
depouille r b 0 0 -1 b_6 -15 10 -10 10 0 0 -1
|
||||
clear
|
||||
nexplode r f
|
||||
depouille rr r 0 0 -1 r_1 -15 -10 -10 10 0 0 -1
|
||||
clear
|
||||
nexplode rr e
|
||||
verase b
|
||||
vdisplay rr
|
||||
vfit
|
||||
sage " Fillet on four lateral edges, then on the top and bottom edges "
|
||||
sage " nexplode rr e"
|
||||
sage " blend result rr 3 rr_2 3 rr_3 3 rr_10 3 rr_11"
|
||||
sage " nexplode result e"
|
||||
sage " blend result result 2 result_11 3 result_12"
|
||||
sage " "
|
||||
blend result rr 3 rr_2 3 rr_3 3 rr_10 3 rr_11
|
||||
erase rr
|
||||
erase result
|
||||
nexplode result e
|
||||
blend result result 2 result_11 3 result_12
|
||||
clear
|
||||
nexplode result f
|
||||
verase rr
|
||||
vdisplay result
|
||||
vfit
|
||||
sage " Creating a profile on the top face "
|
||||
sage " nexplode result f"
|
||||
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
|
||||
"
|
||||
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
|
||||
sage " Creating a prism"
|
||||
sage " prism rr p 0 0 20"
|
||||
sage " "
|
||||
prism rr p 0 0 20
|
||||
sage " Change some attributs : MATERIAL , TRANSPARENCY"
|
||||
sage " vsetmaterial rr PLASTIC"
|
||||
sage " vsetcolor rr RED"
|
||||
sage " vsettransparency result 0.5"
|
||||
sage " vsetdispmode 1"
|
||||
sage " "
|
||||
vdisplay rr
|
||||
vsetmaterial rr PLASTIC
|
||||
vsettransparency rr 0.5
|
||||
vsetcolor rr RED
|
||||
vsettransparency result 0.5
|
||||
vsetdispmode 1
|
||||
vfit
|
||||
fit
|
||||
sage " Fusion of this prism with the original part "
|
||||
sage " fuse result rr result"
|
||||
sage " "
|
||||
fuse result rr result
|
||||
donl result
|
||||
vdisplay result
|
||||
vdonly result
|
||||
vfit
|
||||
nexplode result f
|
||||
erase result
|
||||
fit
|
||||
|
||||
sage " Opening the top face"
|
||||
sage " offsetshape r result -1 0.0001 result_17"
|
||||
sage " "
|
||||
nexplode result f
|
||||
|
||||
offsetshape r result -1 0.0001 result_17
|
||||
vdisplay r
|
||||
vdonly r
|
||||
vfit
|
||||
vsetcolor r MATRABLUE
|
||||
vsettransparency r 0
|
||||
|
||||
sage " Creating a cylinder and positionning it"
|
||||
sage " pcylinder cyl 2 300"
|
||||
sage " trotate cyl cyl 0 0 0 1 0 0 45"
|
||||
sage " ttranslate cyl cyl 0 7.5 0"
|
||||
sage " "
|
||||
pcylinder cyl 2 30
|
||||
vdisplay cyl
|
||||
vsetcolor cyl RED
|
||||
vfit
|
||||
trotate cyl cyl 0 0 0 1 0 0 45
|
||||
ttranslate cyl cyl 0 7.5 0
|
||||
vdisplay cyl
|
||||
vsetcolor cyl RED
|
||||
vfit
|
||||
vdisplay cyl
|
||||
vsetcolor cyl RED
|
||||
vfit
|
||||
sage "Demo completed"
|
61
samples/tcl/challenge.tcl
Normal file
61
samples/tcl/challenge.tcl
Normal file
@@ -0,0 +1,61 @@
|
||||
# This script creates a model described at
|
||||
# http://www.caddd.org/2010/04/opencascade-challenge.html
|
||||
|
||||
pload MODELING VISUALIZATION
|
||||
|
||||
# make base
|
||||
box b0 0 0 0 12 7 6
|
||||
explode b0 e
|
||||
blend b01 b0 1 b0_8
|
||||
blend b02 b01 1 b0_6
|
||||
|
||||
# make cut at bottom
|
||||
box b1 3 -1 0 2 9 1.5
|
||||
bcut b2 b02 b1
|
||||
explode b2 e
|
||||
blend b3 b2 1 b2_27
|
||||
blend b4 b3 1 b2_30
|
||||
|
||||
# make central cut
|
||||
box h1 3 -1 2.5 2 9 0.5
|
||||
box h2 3 -1 3 2 9 2
|
||||
plane p 4 -1 3 0 1 0
|
||||
pcylinder c p 1 9
|
||||
bcommon h3 h2 c
|
||||
bcut b5 b4 h1
|
||||
bcut b6 b5 h3
|
||||
|
||||
# make side cut
|
||||
box b7 9 -1 1 2 9 4
|
||||
explode b7 e
|
||||
blend b71 b7 1 b7_6
|
||||
blend b72 b71 1 b7_8
|
||||
bcut b8 b6 b72
|
||||
|
||||
# make box for inner cylindrical cut
|
||||
box bc1 -1 0 2 9 1 4
|
||||
box bc2 2 -1 2 4 3 3
|
||||
bcut bc3 bc1 bc2
|
||||
explode bc3 e
|
||||
blend bc4 bc3 1 bc3_20
|
||||
blend bc5 bc4 1 bc3_23
|
||||
blend bc6 bc5 1.99 bc3_21
|
||||
blend bc7 bc6 1.99 bc3_22
|
||||
|
||||
# make inner cylindrical cut
|
||||
explode bc7 f
|
||||
revol r bc7_1 -1 0 6 1 0 0 100
|
||||
bcut b9 b8 r
|
||||
|
||||
# make outer cylindrical cut
|
||||
plane p2 -1 0 6 1 0 0
|
||||
pcylinder c2 p2 6 15
|
||||
bcommon res b9 c2
|
||||
|
||||
# show result
|
||||
donly res
|
||||
vinit
|
||||
vdisplay res
|
||||
vsetdispmode 1
|
||||
vfit
|
||||
|
Reference in New Issue
Block a user