|
|
马上注册,结识高手,享用更多资源,轻松玩转三维网社区。
您需要 登录 才可以下载或查看,没有帐号?注册
x
在机械设计中经常会要求绘制一些较为复杂的曲线,例如渐开线、阿基米德曲线、摆线、凸轮轮廓线等,然而,在常用的CAD/CAM软件中却很少直接提供对这些曲线的绘制工具。所以,要绘制这些曲线就不得不进行二次开发,这对一般的用户就提出较高的要求。而MasterCAM中的C—HOOKS功能恰好为我们提供了比较快捷方便的方法。MasterCAM X的C—HOOKS功能集中在菜单“Settings”→“Run User Application”→“Fplot”中,可绘制各种复杂的曲线和曲面。同时,C—HOOKS是一个增强命令子集,不同于其他CAD软件的二次开发工具,它不需要接口,直接运行在MasterCAM环境下,生成图形速度快。
0 E+ E) [; m% e. w# e 二、 利用C-HOOKS绘制曲线的方法
% `$ |* e8 ]: X C—HOOKS是MasterCAM系统中一个绘制复杂曲线、曲面的有用工具,它采用C语言形式编制程序来绘制各种曲线、曲面,绘制的方法如下。1 j& W" R. P$ K7 B% R, ]
(1)首先要把绘制曲线的方程式(解析式)http://www.idnovo.com.cn/uploadfile/magazine/uploadfile/200908/20090826044351400.jpg求出来,这个方程式可以写成 形式,也可以写成参数方程形式,还可以写成极坐标形式。如,正弦函数曲线可以写成http://www.idnovo.com.cn/uploadfile/magazine/uploadfile/200908/20090826044414945.jpg 的方程式(解析式)。
, g" \: a" L' ^ (2)根据方程式(解析式)编写绘图程序,该绘图程序以eqn文件保存。编写eqn文件有两种方法:1)先新建一个txt文件,在该文件中编写完程序后保存,再把该文件的后缀名改为eqn即可;2)直接打开系统中的eqn文件,在编辑器中新建一个文件,编写完程序后保存即可。编写程序比较严格,有一定的格式要求,并且只准用英文小写。例如上面提到的正弦函数曲线,它的绘制程序如下:
) q, b" G6 U( x ]+ E step_var1=x //定义变量名4 g: N$ e( u- A6 S
step_size1=0.2 //定义变量的步距
/ M! u9 d% u, K) I9 W2 m( j, r lower_limit1=0 //定义变量的上限4 \/ ^0 G9 x! _8 m. X4 O
upper_limit1=6.28319 //定义变量的上限" d% O- l) e2 D7 @
geometry=lines //规定图形的型式6 _, C j* E: Q
angles=radians //定义角度采用弧度制3 D# r* }( P( Z% v4 ~1 B5 C
origin=0,0,0 //定义曲线的定位点(原点)& t& d; C9 t5 j2 X$ A( f
y=sin(x) //定义函数(解析式)& `2 K* e/ |/ n X# Z5 n: w
(3)得到eqn文件后,通过点击菜单“Settings”→“Run User Application”,在弹出的窗口中选择fplot.dll文件,再打开刚才编制的sina.eqn文件,然后点击“Plot it”,绘图区即可见到所绘制的曲线(在MasterCAM X中运行环境)。
; j' O+ F& e+ H- C+ Z 三、 各种复杂曲线的绘制7 h a$ H1 _% Z; ?* C
1.渐开线
7 {5 k7 q8 B ? 渐开线是齿轮常用的轮廓曲线,该曲线的参数方程为:http://www.idnovo.com.cn/uploadfile/magazine/uploadfile/200908/20090826044459743.jpg 。其中,α为基圆半径,t为变量角(弧度)。
' f( J, K" j) m$ A: p! e( R# a 根据上述参数方程,编写eqn文件如下:- M2 @3 j6 E! D* k. |& M
step_var1=t" P/ m+ s! x4 G6 D: {$ U
step_size1=0.058 s. }6 a. _6 l, x9 W9 T) N, H# h# ]7 I
lower_limit1=0! k9 r z- C# p) l4 Y# f
upper_limit1=6.283192 K; {) M% _9 u$ I( O/ j
geometry=lines
* N1 ?, k8 D) |5 J! P angles=radians
) ]& O5 M) s) P5 a: Q1 z5 }" g8 Q origin=0,0,04 g; S) h$ T0 y; p
a=1
9 _3 j( l6 l* y x=a*(cos(t)+t*sin(t))5 ~ J) Z/ s* _
y=a*(sin(t)-t*cos(t))" a' R$ @5 x4 R" a, n( J# K
绘制出来的图形如图1所示。% I3 l! R [+ X) A0 ?0 | K
图1 绘制的渐开线图 2.阿基米德曲线
1 k- J& t1 L/ e7 b7 L1 a 阿基米德曲线在凸轮和蜗杆等中较常用,它的参数方程为: http://www.idnovo.com.cn/uploadfile/magazine/uploadfile/200908/20090826044601105.jpg,http://www.idnovo.com.cn/uploadfile/magazine/uploadfile/200908/20090826044621620.jpg 。其中,r为曲率半径,α为基圆半径,t为变量角(弧度)。' p/ q. G" S/ \' W- e4 E; {3 ]( r
根据上述参数方程,编写eqn文件如下:* N5 R0 X+ X) H N) E2 F- v
step_var1=t( `2 W# v* i Q3 J+ P9 u! D
step_size1=0.05
7 d' c1 |* {9 D0 ~ H* g lower_limit1=0
. D% K5 [ f4 L Q: U+ p8 m; j upper_limit1=6.283192 @* T" Y, \, b% f
geometry=lines/ p7 U4 H' W! u7 n/ K; I
angles=radians! X. b/ g/ m5 a1 k
origin=0,0,0 ], B6 o8 t; {& Y4 M
a=20
# s a) H, _) Z$ b9 Q; M; v r=a*t" F* U* I' q! x4 e
x=r*cos(t)' z. \" N9 q n6 ~% U
y=r*sin(t)
: k( | ^ i3 u. C' J7 k& t7 p 绘制出来的图形如图2所示。, t5 j% W8 b% d; H/ _( {% G" B
图2 绘制的阿基米德曲线图 3.摆线" j' g* r! r ?( ?6 y5 y% c; ]% \
摆线是钟表齿轮齿形轮廓的典型曲线,它的参数方程为:http://www.idnovo.com.cn/uploadfile/magazine/uploadfile/200908/20090826044746794.jpg 。其中,α为基圆半径,t为变量角(弧度)。
! A6 ?2 v/ F f( U 根据上述参数方程,编写eqn文件如下:
+ N# q5 T! L5 k7 ?- b, u step_var1=t9 `6 j5 p. n2 {
step_size1=0.05
: n! V) y# y0 x7 ?: D lower_limit1=0+ K, R6 t6 ^: g1 B6 n* [- f' T
upper_limit1=6.283194 \, e. v5 C5 t3 }
geometry=lines; V2 g: S0 I2 x7 f+ e, N5 e
angles=radians
0 A( t3 S! _! d& E& h: C origin=0,0,0/ v+ U9 j1 `! A! N# w& v+ `
a=20
) w6 G! T& M' p% x- G/ F7 A! z x=a*(t-sin(t))
( H8 x5 e, A4 m6 U) s' v: D y=a*(1-cos(t))
* g0 S* c N8 F# V6 d. ]' Y 绘制出来的图形如图3所示。6 f: G. `& g% q U- q5 a; L
图3 绘制的摆线图 4.凸轮轮廓线
3 v+ Z: `' N6 V 在机械设计中凸轮设计会经常遇到,靠传统的作图法既繁琐,精度又不高,利用C—HOOKS功能却可以得到意想不到的结果。下面是设计某一偏置直动滚子推杆盘形凸轮的实际轮廓线。先绘制凸轮理论轮廓曲线,该曲线分为四部分:L1、ARC2、L2、ARC1(见图4),分别代表推程、远休止、回程、近休止轮廓。
1 E; O' Q) i) q+ g; p: k7 W* { 推程曲线的参数方程为: http://www.idnovo.com.cn/uploadfile/magazine/uploadfile/200908/20090826044852271.jpg。其中,http://www.idnovo.com.cn/uploadfile/magazine/uploadfile/200908/20090826044910240.jpg 。
7 n }0 D' ?- c' |) H! E 回程曲线的参数方程为:http://www.idnovo.com.cn/uploadfile/magazine/uploadfile/200908/20090826044925332.jpg 。其中, http://www.idnovo.com.cn/uploadfile/magazine/uploadfile/200908/20090826044944102.jpg。
: H# Z, ^2 m& J, ^ 近休止、远休止轮廓是段圆弧,其参数方程分别为:
1 K+ X+ h+ u. [/ f! f( x/ _5 D 近休止轮廓,http://www.idnovo.com.cn/uploadfile/magazine/uploadfile/200908/20090826045000217.jpg ,其中http://www.idnovo.com.cn/uploadfile/magazine/uploadfile/200908/20090826045023470.jpg ;
5 V, i: x& M/ R" C' s+ d8 Q 远休止轮廓, http://www.idnovo.com.cn/uploadfile/magazine/uploadfile/200908/20090826045041300.jpg,其中 http://www.idnovo.com.cn/uploadfile/magazine/uploadfile/200908/20090826045057717.jpg。
: i, j& N0 X4 j% R$ j# a3 u4 M) f4 ^ 为了简化方程,变量t的范围,可以根据已画出的推程、回程曲线,通过查询端点处对应的角度(弧度)来设置。- S& x! B8 e) p/ Y: f$ @9 o# L
上述四段轮廓分别建立eqn文件,程序如下:9 X6 t& p( H5 s" a5 C* u) v
L1.eqn文件:(对应曲线L1)
7 g4 z. Y0 H3 d- Q step_var1=t. h6 I' c4 D3 c8 M7 k3 L
step_size1=0.11 Z1 J! \9 } z0 ^+ \+ V3 N: _
lower_limit1=0
% ?$ o* F) x J) s& r( A upper_limit1=2.09439
3 j2 E2 B7 g% R( E! E8 b% ^" a geometry=lines3 R. o3 X# S7 D$ x1 K9 j. D' Z
angles=radians
* y8 J$ {' O4 P, H2 h origin=0,0,07 H+ e9 j; \: D( B; P
x=(45.825+50*(3*t/6.28319-sin(3*t)/6.28319))*sin(t)+20*cos(t): b- [2 E( S1 M
y=(45.825+50*(3*t/6.28319-sin(3*t)/6.28319))*cos(t)-20*sin(t) W- n7 Z* Z3 O, O P
L2.eqn文件:(对应曲线L2)
+ R$ d3 ^$ c" h step_var1=t
- L% w4 b7 T6 a2 a" T4 D- H* i step_size1=0.1
8 }% Q( V, P% V/ P* w lower_limit1=3.14159
1 }: q; l8 y, D, n upper_limit1=5.235980 B# h/ J% h* J8 M
geometry=lines& H/ v4 q7 P( [+ n8 i7 y6 g. n f9 Q: J
angles=radians( ^9 g# f% u* I; O5 M
origin=0,0,0
! R! x& F: s- H" d6 U x=(45.825+25*(1+cos(1.5*(t-3.14159))))*sin(t)+20*cos(t)
o' ` c9 _! H1 T y=(45.825+25*(1+cos(1.5*(t-3.14159))))*cos(t)-20*sin(t)8 U: r" B, k! |# |
ARC1.eqn文件:(对应圆弧ARC1)4 V- b' h. N5 ~7 m# G6 O
step_var1=t: S0 [2 g& `4 z; N2 m
step_size1=0.1. E+ |8 \* {6 N3 y+ m
lower_limit1=1.1589) O3 |! \3 H( p
upper_limit1=2.2061
( W6 o/ Z& g0 ]0 F, {) P geometry=lines
, W0 D7 L2 L y angles=radians/ w. X3 H9 x% O6 J4 F
origin=0,0,0
2 B- a* k; k6 w5 w6 i6 L. x O x=50*cos(t)
2 \* b8 [# ^+ C7 C# `: D- O y=50*sin(t)1 c7 C. [+ T2 Y4 K) t3 g
ARC2.eqn文件:(对应圆弧ARC2); v0 e, \9 d6 [: [" ^2 a+ D& h
step_var1=t
" T/ D1 h( {% ]( ~ step_size1=0.1
% A0 s6 B' t9 g7 v7 r* Q- J lower_limit1=4.50644( g1 e9 ?3 r. Y8 [4 g2 x; I ]. \
upper_limit1=5.55363
7 G6 [, j% R( X; ~ i) A* P geometry=lines! g' l* X( F. z) ~5 Q: h) s1 s8 v
angles=radians8 o0 _) Z+ E& O% U
origin=0,0,0
% {0 O$ [2 ~) V7 m/ _- P/ n. b0 q8 k x=97.89*cos(t) I3 P `: a% I/ o& G
y=97.89*sin(t)
2 I% ^# w% u1 a) x2 Z 按照上面绘制的是理论轮廓曲线(外轮廓实线所示),要得到实际轮廓曲线(内轮廓虚线所示),根据两者的关系,只需利用命令“Xform”→“Xform Offset contour”向内偏移一个滚子的半径即可。绘制的凸轮轮廓曲线图如图4所示。
" n& V" e; D n7 p& R图4 绘制的某凸轮轮廓曲线图 四、 结论
5 X4 P) R: A8 w0 n 从上面的实例可以看出,只要复杂曲线能够得到函数方程(解析式),就可以通过MasterCAM中的C—HOOKS功能绘制出来。该方法不但编程方便,容易理解,而且有较高的精度,效率高,是一种绘制复杂曲线的实用方法,值得使用者借鉴 |
|