青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

eryar

PipeCAD - Plant Piping Design Software.
PlantAssistant - Translate AVEVA RVM/SP3D VUE to glTF, STEP, etc.
posts - 606, comments - 590, trackbacks - 0, articles - 0

OpenCASCADE 麻花鉆頭造型實例分析

Posted on 2017-09-18 23:35 eryar 閱讀(2166) 評論(0)  編輯 收藏 引用 所屬分類: 2.OpenCASCADE

OpenCASCADE 麻花鉆頭造型實例分析

eryar@163.com

Abstract. OpenCASCADE provides a simple twist drill bit modeling example in Tcl script. The blog will give a details of some key points, when you understand the key points, you can modeling the shape like that.

Key Words. OpenCASCADE, Twist Drill Bit Modeling, Tcl

1.Introduction

OpenCASCADE的Draw Test Harness中提供了一個麻花鉆頭造型的實例,如下圖所示:

wps_clip_image-8478

Figure 1. A Simple Twist Drill Bit by OpenCASCADE

鉆頭造型主要涉及到旋轉形狀的造型方法,放樣造型及布爾操作。本文結合鉆頭的Tcl腳本來詳細說明造型過程。對于有同樣造型需求的,可以在理解造型方法的基礎上實現(xiàn)自己需要的參數(shù)化形狀。

2.Modeling Tcl Script

通過Draw Test Harness的菜單Samples->View samples可以找到Drill例子,如下圖所示:

wps_clip_image-20966

Figure 2. Drill bit modeling sample

對應的Tcl腳本位于samples/tcl文件夾中,列出如下:

# Sample: creation of simple twist drill bit
#Category: Modeling
#Title: Drill

pload MODELING VISUALIZATION
# drill parameters (some terms taken from http://www.drill-bits.cn/drill-bits-quality.asp)

dset R  4.    ;# outer radius

dset D  2*R   ;# diameter

dset Rr 3.5   ;# chisel radius (outer radius minus body clearance)

dset b  1.    ;# web thickness (approximate)

dset d  b/2
dset H  80.   ;# height of the spiral part

dset a  3.*pi ;# total angle of spiral rotation

dset sigma 118 ;# point angle, in degrees
# Create section profile by sequence of Boolean operations
# on simple planar objects

puts "Creating the drill section profile..."
polyline rectangle1 d -R 0  R -R 0 -d R 0 -R R 0  d -R 0
circle circle1 0 0 0 0 0 1 R
mkedge circle1 circle1
wire circle1 circle1
circle circle2 0 0 0 0 0 1 Rr
mkedge circle2 circle2
wire circle2 circle2
plane p0
mkface rectangle1 p0 rectangle1
mkface circle1 p0 circle1
mkface circle2 p0 circle2
bcommon sec rectangle1 circle1
# note use of 'fuse' instead of 'bfuse' -- we need to get single face

fuse sec sec circle2
# Construct flute profile so as to have cutting lip straight after sharpening.
# Here we need to take into account spiral shift of the flute edge
# along the point length -- the way to do that is to make spiral
# from the desired cutting lip edge and then intersect it by plane

polyline lip d -d/2 0  d -R -R/tan(sigma/2*pi/180)
polyline sp 0 0 0 0 0 H
cylinder cc 0 0 0 0 0 1 0 -4 0 4
line ll 0 0 a 80
trim ll ll 0 sqrt(a*a+H*H)
vertex v1 0 -R 0
vertex v2 0 -R H
trotate v2 0 0 0 0 0 1 180.*a/pi
mkedge ee ll cc v1 v2
wire gg ee
mksweep sp
setsweep -G gg 0 0
addsweep lip
buildsweep spiral -S
mkface f0 p0 -R R -R R
bsection sflute spiral f0
# here we rely on that section curve is parameterized from 0 to 1 
# and directed as cutting lip edge;
# note that this can change if intersection algorithm is modified

explode sflute e
mkcurve cflute sflute_1
cvalue cflute 0. x0 y0 z0
cvalue cflute 1. x1 y1 z1
vertex vf0 x0 y0 z0 
vertex vf1 x1 y1 z1
# -- variant: replace curve by arc with start at x0,y0,z0 and end at x1,y1,z1,
# -- such that tanget at start point is along Y
#dset Rflute ((x1-x0)*(x1-x0)+(y1-y0)*(y1-y0))/(2*(x1-x0))
#circle aflute x0+Rflute y0 0  0 0 1  Rflute
#mkedge sflute_1 aflute vf0 vf1
# make rounding in the flute; use circle with radius Rr/2

circle cround x0+Rr/2 y0 0 0 0 1 Rr/2
vertex vf3 x0+Rr y0 0
mkedge sflute_2 cround vf3 vf0
vertex vf2 R -R 0
edge sflute_3 vf3 vf2
edge sflute_4 vf2 vf1
wire w2 sflute_1 sflute_2 sflute_3 sflute_4
mkface flute p0 w2
# cut flute from profile

bcut sec sec flute
trotate flute 0 0 0 0 0 1 180.
bcut sec sec flute
donly sec
# sweep profile to get a drill body

puts "Sweeping the profile..."
mksweep sp
setsweep -G gg 0 0
explode sec w
addsweep sec_1
buildsweep base -S
# sharpen the drill (see http://tool-land.ru/zatochka-sverla.php)

puts "Sharpening..."
dset theta a*R/H*sin((90-sigma/2)*pi/180)
plane ax1 d 1.9*D "H+1.9*D/tan(pi/180.*sigma/2.)" 0 -1 -1
pcone sh1 ax1 0 100*sin((sigma-90)/2*pi/180.) 100
trotate sh1 0 0 0 0 0 1 -theta*180/pi
tcopy sh1 sh2
trotate sh2 0 0 0 0 0 1 180
box sh -D/2 -D/2 72 D D 20
bcommon qq sh1 sh2
bcut sharpener sh qq
bcut body base sharpener
# make a shank

puts "Making a shank..."
plane pl2 0 0 -40 0 0 1
pcylinder shank pl2 4 40
pcone transit R 0 R
plane pl3 0 0 -40 0 0 -0.5
pcone tail pl3 R 0 0.5
bfuse shank shank tail
bfuse shank shank transit
bfuse drill body shank
# check result

checkshape drill
# show result

puts "Displaying result..."
incmesh drill 0.01
vdisplay drill
vsetdispmode drill 1
vrenderparams -msaa 8
vfit
# show section and sweep path

ttranslate sec_1 0 0 H; trotate sec_1 0 0 0 0 0 1 a*180/pi; incmesh gg 0.01; vdisplay gg sec_1

 

下面結合Tcl腳本來對鉆頭的造型過程進行詳細說明。

3.Twist Drill Bit Parameters

腳本首先加載相應的模塊:造型模塊和顯示模塊,分別為MODEING和VISUALIZATION。然后設置鉆頭相關參數(shù)變量:

wps_clip_image-20435

Figure 3. Drill Bit 

變量名及其說明:

變量名variable 說明 detail
R 外半徑 outer radius
D 直徑D
Rr Chisel Radius
b Web thickness(approximate)
d  
H 螺旋部分的高度Height of the spiral height
a 螺旋角度Total angle of spiral rotation
sigma 鉆尖角度Point angle in degrees.

 

 

 

 

 

 

 

先定義這些變量的思想也是參數(shù)化的思想,將這些變量值改變就會得到不同的鉆頭模型。參數(shù)化的思想在CAD軟件中比較常見,如AutoCAD中的動態(tài)塊,PDMS中的設備模板Template等,都屬于參數(shù)化的方法。通過修改參數(shù)讓一個或多個幾何體形狀發(fā)生變化。

4.Create Drill Section Profile

創(chuàng)建鉆頭截面的Tcl腳本如下所示:

# Create section profile by sequence of Boolean operations
# on simple planar objects

puts "Creating the drill section profile..."
polyline rectangle1 d -R 0  R -R 0 -d R 0 -R R 0  d -R 0
circle circle1 0 0 0 0 0 1 R
mkedge circle1 circle1
wire circle1 circle1
circle circle2 0 0 0 0 0 1 Rr
mkedge circle2 circle2
wire circle2 circle2
plane p0
mkface rectangle1 p0 rectangle1
mkface circle1 p0 circle1
mkface circle2 p0 circle2
bcommon sec rectangle1 circle1
# note use of 'fuse' instead of 'bfuse' -- we need to get single face

fuse sec sec circle2

 

生成的圖形如下圖所示:

wps_clip_image-30324

Figure 4 Profile construction curves

其中變量Rectangle1是圖中綠色表示的四邊形,Circle1是黃色表示的外圓,Circle2是紅色表示的內圓。通過布爾操作求取Rectangle1和Circle1的公共部分得到如下圖所示的截面:

wps_clip_image-28102

Figure 5 Common of Rectangle1 and Circle1

將公共部分與內圓Circle2合并得到如圖所示截面:

wps_clip_image-8412

Figure 6. Fuse of Common part and Circle2

下面在這個截面的基礎上生成鉆頭的螺旋凹槽,這里是相對關鍵的地方,生成凹槽的時候還要考慮螺旋。

# Construct flute profile so as to have cutting lip straight after sharpening.
# Here we need to take into account spiral shift of the flute edge
# along the point length -- the way to do that is to make spiral
# from the desired cutting lip edge and then intersect it by plane

polyline lip d -d/2 0  d -R -R/tan(sigma/2*pi/180)
polyline sp 0 0 0 0 0 H
cylinder cc 0 0 0 0 0 1 0 -4 0 4
line ll 0 0 a 80
trim ll ll 0 sqrt(a*a+H*H)
vertex v1 0 -R 0
vertex v2 0 -R H
trotate v2 0 0 0 0 0 1 180.*a/pi
mkedge ee ll cc v1 v2
wire gg ee
mksweep sp
setsweep -G gg 0 0
addsweep lip
buildsweep spiral -S
mkface f0 p0 -R R -R R
bsection sflute spiral f0

 

代碼生成的圖形如下圖所示:

wps_clip_image-27754

Figure 7. Flute of the drill bit

通過將線lip沿著路徑直線sp和螺旋線gg放樣得到螺旋截面spiral,再將螺旋截面spiral和底平面f0求交得到sflute。

# here we rely on that section curve is parameterized from 0 to 1 
# and directed as cutting lip edge;
# note that this can change if intersection algorithm is modified

explode sflute e
mkcurve cflute sflute_1
cvalue cflute 0. x0 y0 z0
cvalue cflute 1. x1 y1 z1
vertex vf0 x0 y0 z0 
vertex vf1 x1 y1 z1
# -- variant: replace curve by arc with start at x0,y0,z0 and end at x1,y1,z1,
# -- such that tanget at start point is along Y
#dset Rflute ((x1-x0)*(x1-x0)+(y1-y0)*(y1-y0))/(2*(x1-x0))
#circle aflute x0+Rflute y0 0  0 0 1  Rflute
#mkedge sflute_1 aflute vf0 vf1
# make rounding in the flute; use circle with radius Rr/2

circle cround x0+Rr/2 y0 0 0 0 1 Rr/2
vertex vf3 x0+Rr y0 0
mkedge sflute_2 cround vf3 vf0
vertex vf2 R -R 0
edge sflute_3 vf3 vf2
edge sflute_4 vf2 vf1
wire w2 sflute_1 sflute_2 sflute_3 sflute_4
mkface flute p0 w2

 

通過求得的交線再構造圓弧和線段來構造出鉆頭凹槽的截面,如下圖所示:

wps_clip_image-2949

Figure 8. Make flute section

將凹槽截面flute從前面構造的截面中去除:

# cut flute from profile

bcut sec sec flute

 

wps_clip_image-22613

Figure 9. Make drill bit profile

將凹槽截面繞Z軸旋轉180度,再去布爾減原來的截面:

trotate flute 0 0 0 0 0 1 180.
bcut sec sec flute

 

wps_clip_image-9522

Figure 10. Make drill bit profile

這樣鉆頭的截面就生成了。

5.Sweeping the Profile

將上面鉆頭截面沿著直線sp和螺旋線gg放樣:

# sweep profile to get a drill body

puts "Sweeping the profile..."
mksweep sp
setsweep -G gg 0 0
explode sec w
addsweep sec_1
buildsweep base -S

 

生成圖形如下圖所示:

wps_clip_image-20384

Figure 11. Sweep the profile

通過放樣得到了鉆頭的螺桿base。

6.Sharpening

得到鉆頭的螺桿后需要生成鉆頭的鉆尖,根據(jù)鉆尖角point angle變量sigma來造型。

# sharpen the drill (see http://tool-land.ru/zatochka-sverla.php)

puts "Sharpening..."
dset theta a*R/H*sin((90-sigma/2)*pi/180)
plane ax1 d 1.9*D "H+1.9*D/tan(pi/180.*sigma/2.)" 0 -1 -1
pcone sh1 ax1 0 100*sin((sigma-90)/2*pi/180.) 100
trotate sh1 0 0 0 0 0 1 -theta*180/pi
tcopy sh1 sh2
trotate sh2 0 0 0 0 0 1 180
box sh -D/2 -D/2 72 D D 20
bcommon qq sh1 sh2
bcut sharpener sh qq
bcut body base sharpener

 

先構造兩個圓錐體(sh1和sh2)和一個長方體sh,再通過布爾運算得到兩個圓錐體sh1,sh2的公共部分qq。如下圖所示:

wps_clip_image-23669

wps_clip_image-5130

Figure 12. Modeling point angle

再從長方體sh中減去兩個圓錐的公共部分得到如下圖所示:

wps_clip_image-3000

wps_clip_image-24408

Figure 13. Modeling point angle

wps_clip_image-12972

將螺桿減去上面得到的sharpener就完成鉆尖的造型,如下圖所示:

wps_clip_image-4999

Figure 14. Modeling point angle

7.Make Shank

完成螺桿和鉆尖造型后,就來實現(xiàn)麻花鉆頭的最后部分,鉆頭柄shank。

# make a shank

puts "Making a shank..."
plane pl2 0 0 -40 0 0 1
pcylinder shank pl2 4 40
pcone transit R 0 R
plane pl3 0 0 -40 0 0 -0.5
pcone tail pl3 R 0 0.5
bfuse shank shank tail
bfuse shank shank transit
bfuse drill body shank

 

鉆頭柄部由兩個圓錐(transit和tail)和一個圓柱shank組成。最后將這三個形狀合并得到完成的鉆頭的柄部shank。

wps_clip_image-20511

Figure 15. Modeling Shank

8.Conclusion

通過對OpenCASCADE中麻花鉆頭的造型實例分析,可見這個鉆頭造型用到的算法主要是放樣及布爾操作。在生成螺旋線時主要是使用pcurve的方式。最后還要理解參數(shù)化的造型思想,通過定義變量來生成參數(shù)化的模型。

青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            亚洲综合色激情五月| 国产午夜精品视频| 久久字幕精品一区| 国产精品久久久久9999| 亚洲国产清纯| 尤物在线精品| 性色av一区二区三区在线观看| 夜夜嗨av一区二区三区四季av| 久久综合激情| 欧美成人一品| 亚洲成人在线观看视频| 欧美有码视频| 久久国产精品久久久久久久久久| 国产精品www网站| 亚洲免费精彩视频| 国产精品99久久久久久久久| 欧美国产精品劲爆| 亚洲国产天堂网精品网站| 亚洲国产精品高清久久久| 久久精品国产99| 久久免费视频网| 伊人成综合网伊人222| 久久精品久久99精品久久| 久久久综合免费视频| 国内伊人久久久久久网站视频| 欧美一级理论片| 久久中文精品| 最新国产成人在线观看| 欧美激情视频在线播放| 亚洲免费观看在线观看| 亚洲在线播放| 国产日韩精品入口| 久久国产综合精品| 免费久久久一本精品久久区| 91久久精品美女| 欧美视频免费| 欧美在线观看一二区| 久久中文精品| 日韩小视频在线观看| 欧美性淫爽ww久久久久无| 亚洲免费视频网站| 老司机精品导航| 亚洲精品一区二区在线| 欧美午夜视频在线| 欧美亚洲日本国产| 欧美激情1区2区| 中文国产成人精品| 国产亚洲午夜| 欧美国产精品| 亚洲在线观看视频| 欧美韩国日本综合| 制服诱惑一区二区| 韩国精品久久久999| 欧美精品一区二区三区很污很色的 | 亚洲调教视频在线观看| 国产伦精品一区二区三区在线观看 | 蜜桃精品久久久久久久免费影院| 91久久亚洲| 久久久五月婷婷| 日韩视频在线一区二区| 国产欧美精品一区二区色综合| 久久亚洲国产精品一区二区| 99国产精品久久久久久久成人热| 久久久久九九九| 中文精品视频| 亚洲高清资源| 国产日韩欧美不卡| 欧美日韩国产片| 久久久99久久精品女同性| 中文欧美字幕免费| 欧美国产高清| 久久久精品日韩| 亚洲一区在线直播| 亚洲精品国产品国语在线app| 国产日韩欧美一二三区| 欧美精品一区二区三区一线天视频| 小黄鸭精品密入口导航| 99re这里只有精品6| 欧美成人激情视频| 久久久久**毛片大全| 亚洲香蕉网站| 亚洲久久成人| 亚洲激情成人| 亚洲第一毛片| 国产综合自拍| 国产欧美日韩麻豆91| 欧美系列精品| 欧美手机在线视频| 欧美日韩蜜桃| 欧美日韩亚洲视频| 欧美精品一区二区三区久久久竹菊| 久久精品视频播放| 久久成人精品视频| 欧美一区二区三区免费看| 在线一区二区视频| 中文国产成人精品| 夜夜嗨av色综合久久久综合网| 最近中文字幕日韩精品| 91久久一区二区| 亚洲日本激情| 亚洲精品久久久久久久久久久久 | 亚洲欧洲精品一区二区精品久久久 | 久久精品欧美日韩精品| 欧美亚洲综合在线| 欧美在线观看网站| 欧美伊人久久久久久午夜久久久久| 亚洲深夜福利网站| 亚洲主播在线| 午夜精品一区二区三区在线播放 | 欧美成人国产一区二区| 另类图片综合电影| 欧美成人黑人xx视频免费观看| 欧美成人午夜视频| 亚洲人屁股眼子交8| 亚洲精品久久久久久久久久久久| 亚洲欧洲在线观看| av不卡在线看| 午夜精品国产| 久久亚洲欧洲| 欧美精品一二三| 欧美色区777第一页| 国产精品亚洲激情| 在线播放豆国产99亚洲| 亚洲人成在线观看一区二区| 99热在这里有精品免费| 亚洲一区黄色| 久久久夜夜夜| 亚洲精品123区| 在线一区二区三区四区五区| 性欧美长视频| 欧美国产日韩一区| 国产精品你懂的| 伊甸园精品99久久久久久| 亚洲精品一二三| 欧美一区二区免费| 欧美激情第三页| 亚洲午夜91| 噜噜噜噜噜久久久久久91| 欧美视频一区二区三区| 国产一区二区三区久久 | 久久久国产精彩视频美女艺术照福利 | 在线一区观看| 久久久久国产精品厨房| 欧美日韩成人免费| 国产一区二区三区免费不卡| 91久久综合| 久久精品国产亚洲一区二区三区 | 欧美精品一区二区三区高清aⅴ| 国产精品日日摸夜夜添夜夜av| 亚洲成色www8888| 午夜精品久久久久99热蜜桃导演| 模特精品在线| 亚洲欧美日韩国产成人精品影院| 麻豆成人综合网| 国产欧美一区在线| 一区二区三区欧美在线观看| 久久综合久久久久88| 中日韩在线视频| 欧美精品123区| 在线观看国产精品网站| 欧美亚洲一区二区三区| 亚洲人成高清| 久久亚洲午夜电影| 国产亚洲精品美女| 亚洲综合不卡| 亚洲乱码精品一二三四区日韩在线| 久久精品综合一区| 国产精品无人区| 亚洲视频久久| 亚洲激情二区| 欧美成人伊人久久综合网| 影音先锋亚洲精品| 久久精品人人爽| 亚洲一区二区三区高清| 欧美视频日韩视频在线观看| 亚洲精品中文在线| 欧美激情欧美激情在线五月| 欧美一区二区啪啪| 国产欧美丝祙| 午夜在线一区二区| 亚洲视频精品| 国产精品免费在线| 亚洲在线一区二区| 一区二区三区欧美在线观看| 欧美另类久久久品| 亚洲最黄网站| 99国产精品久久久| 欧美午夜不卡视频| 亚洲在线视频网站| 中文欧美在线视频| 国产精品香蕉在线观看| 亚洲欧美中文日韩在线| 亚洲图色在线| 国产亚洲第一区| 久久婷婷丁香| 久久人人爽人人爽爽久久| 亚洲国产免费| 亚洲日本欧美| 国产精品久久久久国产精品日日 | 一区二区三区不卡视频在线观看 |