1 # Script reproducing creation of bottle model as described in OCCT Tutorial
3 #Title: OCCT Tutorial bottle shape
5 pload MODELING VISUALIZATION
7 puts "Constructing bottle body..."
14 # construct base profile (half)
15 vertex v1 -width/2 0 0
16 vertex v2 -width/2 -thickness/4 0
19 point p2 -width/2 -thickness/4 0
20 point p3 0 -thickness/2 0
21 point p4 width/2 -thickness/4 0
22 catch {gcarc arc cir p2 p3 p4}
25 vertex v4 width/2 -thickness/4 0
31 # complete profile by mirror and make a prism
33 tmirror w2 0 0 0 0 1 0
42 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
45 dset neckradius thickness/4
46 dset neckheight height/10
49 pcylinder c neckradius neckheight
50 ttranslate c 0 0 height
56 offsetshape body f -thickness/50 1.e-3 c_2
58 puts "Constructing threading..."
61 cylinder c1 0 0 height 0 0 1 neckradius*0.99
62 cylinder c2 0 0 height 0 0 1 neckradius*1.05
64 # define threading dimensions in parametric space
66 dset minor neckheight/10
68 # make parametric curves for threading
69 ellipse el1 2*pi neckheight/2 2*pi neckheight/4 major minor
70 ellipse el2 2*pi neckheight/2 2*pi neckheight/4 major minor/4
78 line l x1 y1 x2-x1 y2-y1
79 parameters l x2 y2 1.e-9 U
82 # construct 3d edges and wires
83 mkedge E1OnS1 arc1 c1 0 pi
84 mkedge E2OnS1 s c1 0 U
85 mkedge E1OnS2 arc2 c2 0 pi
86 mkedge E2OnS2 s c2 0 U
88 wire tw1 E1OnS1 E2OnS1
89 wire tw2 E1OnS2 E2OnS2
93 # build threading as solid
94 thrusections -N thread 1 0 tw1 tw2
96 puts "Putting together and writing \"Open CASCADE\"..."
99 text2brep text2d OpenCASCADE -font Times-Roman -height 8 -aspect bold -composite off
100 prism text text2d 0 0 2
101 trotate text 0 0 0 0 1 0 90
102 ttranslate text 24.75 -2 65
105 bcut bodytext body text
109 puts "Showing result..."
115 vaspects -isoontriangulation 1