mirror of
https://git.dev.opencascade.org/repos/occt.git
synced 2025-09-13 14:27:08 +03:00
0023087: Upgrade of the OCCT test system
Integration of new occt testing system
This commit is contained in:
100
samples/tcl/bottle.tcl
Normal file
100
samples/tcl/bottle.tcl
Normal file
@@ -0,0 +1,100 @@
|
||||
# Script reproducing creation of bottle model as described in OCCT Tutorial
|
||||
|
||||
pload MODELING VISUALIZATION
|
||||
|
||||
# Construct bottle body
|
||||
|
||||
# set basic dimensions
|
||||
dset height 70
|
||||
dset width 50
|
||||
dset thickness 30
|
||||
|
||||
# construct base profile (half)
|
||||
vertex v1 -width/2 0 0
|
||||
vertex v2 -width/2 -thickness/4 0
|
||||
edge e1 v1 v2
|
||||
|
||||
point p2 -width/2 -thickness/4 0
|
||||
point p3 0 -thickness/2 0
|
||||
point p4 width/2 -thickness/4 0
|
||||
catch {gcarc arc cir p2 p3 p4}
|
||||
mkedge e2 arc
|
||||
|
||||
vertex v4 width/2 -thickness/4 0
|
||||
vertex v5 width/2 0 0
|
||||
edge e3 v4 v5
|
||||
|
||||
wire w1 e1 e2 e3
|
||||
|
||||
# complete profile by mirror and make a prism
|
||||
copy w1 w2
|
||||
tmirror w2 0 0 0 0 1 0
|
||||
|
||||
wire w3 w1 w2
|
||||
mkplane f w3
|
||||
|
||||
prism p f 0 0 height
|
||||
|
||||
# fillet all edges
|
||||
explode p e
|
||||
blend b p thickness/12 p_1 thickness/12 p_2 thickness/12 p_3 thickness/12 p_4 thickness/12 p_5 thickness/12 p_6 thickness/12 p_7 thickness/12 p_8 thickness/12 p_9 thickness/12 p_10 thickness/12 p_11 thickness/12 p_12 thickness/12 p_13 thickness/12 p_14 thickness/12 p_15 thickness/12 p_16 thickness/12 p_17 thickness/12 p_18
|
||||
|
||||
# neck dimensions
|
||||
dset neckradius thickness/4
|
||||
dset neckheight height/10
|
||||
|
||||
# add neck
|
||||
pcylinder c neckradius neckheight
|
||||
ttranslate c 0 0 height
|
||||
|
||||
bfuse f b c
|
||||
|
||||
# make body hollow
|
||||
explode c f
|
||||
offsetshape body f -thickness/50 1.e-3 c_2
|
||||
|
||||
# Construct threading
|
||||
|
||||
# make two cylinders
|
||||
cylinder c1 0 0 height 0 0 1 neckradius*0.99
|
||||
cylinder c2 0 0 height 0 0 1 neckradius*1.05
|
||||
|
||||
# define threading dimensions in parametric space
|
||||
dset major 2*pi
|
||||
dset minor neckheight/10
|
||||
|
||||
# make parametric curves for threading
|
||||
ellipse el1 2*pi neckheight/2 2*pi neckheight/4 major minor
|
||||
ellipse el2 2*pi neckheight/2 2*pi neckheight/4 major minor/4
|
||||
|
||||
trim arc1 el1 0 pi
|
||||
trim arc2 el2 0 pi
|
||||
|
||||
2dcvalue el1 0 x1 y1
|
||||
2dcvalue el1 pi x2 y2
|
||||
|
||||
line l x1 y1 x2-x1 y2-y1
|
||||
parameters l x2 y2 1.e-9 U
|
||||
trim s l 0 U
|
||||
|
||||
# construct 3d edges and wires
|
||||
mkedge E1OnS1 arc1 c1 0 pi
|
||||
mkedge E2OnS1 s c1 0 U
|
||||
mkedge E1OnS2 arc2 c2 0 pi
|
||||
mkedge E2OnS2 s c2 0 U
|
||||
|
||||
wire tw1 E1OnS1 E2OnS1
|
||||
wire tw2 E1OnS2 E2OnS2
|
||||
mkedgecurve tw1 1.e-5
|
||||
mkedgecurve tw2 1.e-5
|
||||
|
||||
# build threading as solid
|
||||
thrusections -N thread 1 0 tw1 tw2
|
||||
|
||||
# add threading to the body
|
||||
compound body thread bottle
|
||||
|
||||
# display result
|
||||
vdisplay bottle
|
||||
vfit
|
||||
vsetdispmode 1
|
Reference in New Issue
Block a user