|
|
马上注册,结识高手,享用更多资源,轻松玩转三维网社区。
您需要 登录 才可以下载或查看,没有帐号?注册
x
在机械设计中经常会要求绘制一些较为复杂的曲线,例如渐开线、阿基米德曲线、摆线、凸轮轮廓线等,然而,在常用的CAD/CAM软件中却很少直接提供对这些曲线的绘制工具。所以,要绘制这些曲线就不得不进行二次开发,这对一般的用户就提出较高的要求。而MasterCAM中的C—HOOKS功能恰好为我们提供了比较快捷方便的方法。MasterCAM X的C—HOOKS功能集中在菜单“Settings”→“Run User Application”→“Fplot”中,可绘制各种复杂的曲线和曲面。同时,C—HOOKS是一个增强命令子集,不同于其他CAD软件的二次开发工具,它不需要接口,直接运行在MasterCAM环境下,生成图形速度快。% P, X E( [9 A& ~ W, ^8 w9 z
二、 利用C-HOOKS绘制曲线的方法; ~- y2 |! p/ u% G7 D$ B& a1 b" U0 }
C—HOOKS是MasterCAM系统中一个绘制复杂曲线、曲面的有用工具,它采用C语言形式编制程序来绘制各种曲线、曲面,绘制的方法如下。' E2 Y$ x1 \1 [+ M" q7 s
(1)首先要把绘制曲线的方程式(解析式)http://www.idnovo.com.cn/uploadfile/magazine/uploadfile/200908/20090826044351400.jpg求出来,这个方程式可以写成 形式,也可以写成参数方程形式,还可以写成极坐标形式。如,正弦函数曲线可以写成http://www.idnovo.com.cn/uploadfile/magazine/uploadfile/200908/20090826044414945.jpg 的方程式(解析式)。
' ?$ B* g8 {$ A, D' b! h% s3 N (2)根据方程式(解析式)编写绘图程序,该绘图程序以eqn文件保存。编写eqn文件有两种方法:1)先新建一个txt文件,在该文件中编写完程序后保存,再把该文件的后缀名改为eqn即可;2)直接打开系统中的eqn文件,在编辑器中新建一个文件,编写完程序后保存即可。编写程序比较严格,有一定的格式要求,并且只准用英文小写。例如上面提到的正弦函数曲线,它的绘制程序如下:; a+ u2 Y9 L+ E( Z7 _. v" N9 w
step_var1=x //定义变量名
$ U3 B/ e" K0 l" f step_size1=0.2 //定义变量的步距4 U2 O6 ~* t! Q, p& h" P" r
lower_limit1=0 //定义变量的上限
( [: M! r' H/ u7 _ upper_limit1=6.28319 //定义变量的上限: t0 Y2 S9 S7 W* P" @( U4 _
geometry=lines //规定图形的型式
c5 ^9 t ^8 D! A: V3 _: [ angles=radians //定义角度采用弧度制
% W# f' f5 X9 K/ t% u origin=0,0,0 //定义曲线的定位点(原点)
( u9 W7 x. ]' k. F9 _" R( ]9 x y=sin(x) //定义函数(解析式)
" k$ H$ F" p1 H# \2 r% X( w3 ] (3)得到eqn文件后,通过点击菜单“Settings”→“Run User Application”,在弹出的窗口中选择fplot.dll文件,再打开刚才编制的sina.eqn文件,然后点击“Plot it”,绘图区即可见到所绘制的曲线(在MasterCAM X中运行环境)。
* I" _ S8 y [% a* p. N 三、 各种复杂曲线的绘制1 A" m2 S7 }% [8 a
1.渐开线- j) m) m2 d" y
渐开线是齿轮常用的轮廓曲线,该曲线的参数方程为:http://www.idnovo.com.cn/uploadfile/magazine/uploadfile/200908/20090826044459743.jpg 。其中,α为基圆半径,t为变量角(弧度)。
9 a- I1 m" l( V9 v. P 根据上述参数方程,编写eqn文件如下:
$ {, ~) E' r4 a" {, }) }9 P0 r step_var1=t
" q1 `2 F. A9 W9 z0 Z' l# q step_size1=0.05
5 P V0 {3 l) K3 b: R lower_limit1=0# s4 c2 N3 b2 D; D4 O0 j2 S1 {
upper_limit1=6.28319
' H5 L5 m% k' m geometry=lines
( G" ^; U2 h$ ?& W% U angles=radians7 A! f8 ~0 C7 K
origin=0,0,0* O! j1 I+ Z: U$ H6 _: q
a=1
$ x/ H1 l7 m: n8 n) [5 f( e x=a*(cos(t)+t*sin(t))
" n9 E+ y% ~# U" m+ t$ V$ B y=a*(sin(t)-t*cos(t))
( z5 \* F# C4 ?1 r' ?, c 绘制出来的图形如图1所示。
4 ~% f& b( }6 {9 A+ {* S$ ]图1 绘制的渐开线图 2.阿基米德曲线
]" R6 x* q6 E% ]) { 阿基米德曲线在凸轮和蜗杆等中较常用,它的参数方程为: http://www.idnovo.com.cn/uploadfile/magazine/uploadfile/200908/20090826044601105.jpg,http://www.idnovo.com.cn/uploadfile/magazine/uploadfile/200908/20090826044621620.jpg 。其中,r为曲率半径,α为基圆半径,t为变量角(弧度)。
& Q3 N# h; Q" C% R+ t 根据上述参数方程,编写eqn文件如下:
# h+ L4 b) e5 S8 I step_var1=t
6 P+ t% @ U! v! w8 I step_size1=0.054 A, S1 a' [; Y U
lower_limit1=0* l) z N8 R( G
upper_limit1=6.28319- p( m5 ]! q6 _. C( |0 B
geometry=lines U# W4 l4 T2 n4 u6 |2 s
angles=radians7 \& h0 R& K. j0 o# r# H" Y
origin=0,0,0
7 q4 k8 a- @- D% F4 J, N) V; X a=20) M' c0 x1 i! j! r: Z9 G
r=a*t
# ~2 a! _' a8 H x=r*cos(t)( P0 `8 M K W2 u- S
y=r*sin(t)/ q% t, H* c: _" d P
绘制出来的图形如图2所示。, S; G/ U h9 e/ O. Y
图2 绘制的阿基米德曲线图 3.摆线
6 e6 }4 n2 F7 y. E* j# R0 R: F$ i 摆线是钟表齿轮齿形轮廓的典型曲线,它的参数方程为:http://www.idnovo.com.cn/uploadfile/magazine/uploadfile/200908/20090826044746794.jpg 。其中,α为基圆半径,t为变量角(弧度)。/ n* J2 { U1 P& O+ @+ E2 k
根据上述参数方程,编写eqn文件如下:3 x6 k& X& q/ O# b) F+ F% F
step_var1=t
) G0 Y! ]4 g }( M% { step_size1=0.056 ]2 E5 A8 H* g2 z" {
lower_limit1=0- w1 N# F' i* F P7 n
upper_limit1=6.28319/ T* H8 o/ |% q/ [2 l
geometry=lines1 i, M' `6 [8 w; |
angles=radians
9 Q# p9 f8 k: q origin=0,0,0/ V$ B' W4 v- @2 d+ L+ q1 {" [
a=20, T6 M8 {5 g2 j" T- R
x=a*(t-sin(t))
" _" [# L, r% e, _ y=a*(1-cos(t))+ j6 `( u8 {% x! R
绘制出来的图形如图3所示。
1 }5 [6 }: H( K! W图3 绘制的摆线图 4.凸轮轮廓线
0 C( l/ m6 e( w$ _ 在机械设计中凸轮设计会经常遇到,靠传统的作图法既繁琐,精度又不高,利用C—HOOKS功能却可以得到意想不到的结果。下面是设计某一偏置直动滚子推杆盘形凸轮的实际轮廓线。先绘制凸轮理论轮廓曲线,该曲线分为四部分:L1、ARC2、L2、ARC1(见图4),分别代表推程、远休止、回程、近休止轮廓。) Y8 L0 ~$ W- d" R, p
推程曲线的参数方程为: http://www.idnovo.com.cn/uploadfile/magazine/uploadfile/200908/20090826044852271.jpg。其中,http://www.idnovo.com.cn/uploadfile/magazine/uploadfile/200908/20090826044910240.jpg 。9 u- ]; ^3 z+ c5 r+ P3 d
回程曲线的参数方程为:http://www.idnovo.com.cn/uploadfile/magazine/uploadfile/200908/20090826044925332.jpg 。其中, http://www.idnovo.com.cn/uploadfile/magazine/uploadfile/200908/20090826044944102.jpg。
6 q& N, ]# T4 P 近休止、远休止轮廓是段圆弧,其参数方程分别为:
7 J2 t$ p/ y. R2 x 近休止轮廓,http://www.idnovo.com.cn/uploadfile/magazine/uploadfile/200908/20090826045000217.jpg ,其中http://www.idnovo.com.cn/uploadfile/magazine/uploadfile/200908/20090826045023470.jpg ;+ a2 w2 u- {7 a' {2 f
远休止轮廓, http://www.idnovo.com.cn/uploadfile/magazine/uploadfile/200908/20090826045041300.jpg,其中 http://www.idnovo.com.cn/uploadfile/magazine/uploadfile/200908/20090826045057717.jpg。
8 X' ^! L! i" F7 H- \ 为了简化方程,变量t的范围,可以根据已画出的推程、回程曲线,通过查询端点处对应的角度(弧度)来设置。, Y4 _7 D7 g7 n0 Q1 P
上述四段轮廓分别建立eqn文件,程序如下:& l& \ S6 `" l% L2 `, g
L1.eqn文件:(对应曲线L1)
- _; Y H9 \, n' A step_var1=t
, H4 G3 i( M0 F. t n: _0 H( x step_size1=0.1' E( ?6 V: A2 M& H7 h% k
lower_limit1=0
, G4 u% _) K6 _' i- T6 n$ B upper_limit1=2.09439
1 F8 ?5 D5 ? E* Q5 \0 P# } geometry=lines+ w6 Z/ ]2 K; R$ Z& p0 q, v5 Q
angles=radians9 ?2 a9 H9 m+ V. f3 J/ S. v: C; ^
origin=0,0,0
: a* |3 i- L- @3 u* J2 P! r x=(45.825+50*(3*t/6.28319-sin(3*t)/6.28319))*sin(t)+20*cos(t)# [2 c/ r: p9 z; c. a
y=(45.825+50*(3*t/6.28319-sin(3*t)/6.28319))*cos(t)-20*sin(t)
4 M1 K3 v% z# P3 u7 @ L2.eqn文件:(对应曲线L2)6 `8 R) y0 O" g' o
step_var1=t! |% d; X3 Y, l0 d1 [: ^
step_size1=0.1- ]7 `- F* t4 \. m4 [7 U8 `
lower_limit1=3.141594 d1 V/ z" t4 ?% n& n: @
upper_limit1=5.235982 D5 I' f* g3 f- z: H
geometry=lines
9 b) @8 l) F/ g2 t$ V3 } angles=radians" n, h- }! Z7 a6 G2 S$ p( @ M
origin=0,0,0
$ \' m& P; @$ t; s- Q& A7 s* B x=(45.825+25*(1+cos(1.5*(t-3.14159))))*sin(t)+20*cos(t)- B$ N- ~% \+ e# P. P
y=(45.825+25*(1+cos(1.5*(t-3.14159))))*cos(t)-20*sin(t)
S! k/ |9 n1 ^/ ^4 k ARC1.eqn文件:(对应圆弧ARC1)5 A \. e9 N, E: r7 ] }1 t8 N* G9 A
step_var1=t2 r" {+ x9 P# e# S6 A7 V
step_size1=0.1
) n7 x* d( L; O+ q5 n, ?! L3 J lower_limit1=1.1589& e' k- i( p' G; B; d
upper_limit1=2.2061. i& W8 f4 M8 _9 z p" p
geometry=lines+ H9 w) X9 ]/ c
angles=radians
4 C3 y4 Y0 `; u" L origin=0,0,0
" f- w1 O& @) Q2 I- F, S x=50*cos(t)
# g3 @6 @1 f! K& k! W4 E: L y=50*sin(t)' O# X* {* B6 H' d; ~' X$ O/ e( l
ARC2.eqn文件:(对应圆弧ARC2)
: t% C1 c {/ ]$ E+ \# c step_var1=t4 f( h3 ]+ W5 G) O9 u: n& Q
step_size1=0.1& J$ `/ ?1 B2 ^! y2 [2 z7 m# l
lower_limit1=4.50644
) D+ F4 K6 W( Z6 d upper_limit1=5.55363
+ x4 |8 T/ c6 ?& g0 H2 \& O0 R7 I geometry=lines
, ^1 u2 Z/ F3 F i4 f; c angles=radians
) k. D: H% ?7 p1 [2 y) Y0 k" q' @ origin=0,0,0
9 ^" j" Q& h9 C x=97.89*cos(t)
5 E8 h2 O$ I$ n7 D9 \ y=97.89*sin(t)
7 P: p9 L( i+ A0 E+ G 按照上面绘制的是理论轮廓曲线(外轮廓实线所示),要得到实际轮廓曲线(内轮廓虚线所示),根据两者的关系,只需利用命令“Xform”→“Xform Offset contour”向内偏移一个滚子的半径即可。绘制的凸轮轮廓曲线图如图4所示。
' |3 i$ z9 i4 l3 T; v# u+ v图4 绘制的某凸轮轮廓曲线图 四、 结论
# c( [ Q# \1 y4 l, Q0 j. U 从上面的实例可以看出,只要复杂曲线能够得到函数方程(解析式),就可以通过MasterCAM中的C—HOOKS功能绘制出来。该方法不但编程方便,容易理解,而且有较高的精度,效率高,是一种绘制复杂曲线的实用方法,值得使用者借鉴 |
|