1
0
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:
abv
2012-05-18 15:05:29 +04:00
parent d029c7ef22
commit 03392dd2e7
10 changed files with 141 additions and 416 deletions

View 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

View 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
View 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

View 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
View 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