QQ登录

只需一步,快速开始

登录 | 注册 | 找回密码

三维网

 找回密码
 注册

QQ登录

只需一步,快速开始

展开

通知     

查看: 4037|回复: 7
收起左侧

[分享] MasterCAM在绘制复杂曲线中的应用

[复制链接]
发表于 2011-2-22 09:45:24 | 显示全部楼层 |阅读模式 来自: 中国上海

马上注册,结识高手,享用更多资源,轻松玩转三维网社区。

您需要 登录 才可以下载或查看,没有帐号?注册

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.jpghttp://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.jpg9 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功能绘制出来。该方法不但编程方便,容易理解,而且有较高的精度,效率高,是一种绘制复杂曲线的实用方法,值得使用者借鉴
发表于 2011-2-22 19:12:51 | 显示全部楼层 来自: 中国台湾
學習了!
发表于 2013-5-20 16:41:16 | 显示全部楼层 来自: 中国广东广州
v版本的怎么用啊
发表于 2013-5-20 20:52:55 | 显示全部楼层 来自: 中国贵州遵义
哇!!好深奥!!
发表于 2013-5-20 21:10:41 | 显示全部楼层 来自: 中国广东东莞
太深奥了,还没学到那一步
发表于 2013-5-20 21:18:42 | 显示全部楼层 来自: 中国台湾
有看沒有懂
发表于 2013-5-20 22:24:13 | 显示全部楼层 来自: 新加坡
有点难,看了还不太懂。要慢慢学才是。
发表于 2021-9-8 18:41:18 | 显示全部楼层 来自: 中国广东深圳
人才杰出,谢谢!
发表回复
您需要登录后才可以回帖 登录 | 注册

本版积分规则


Licensed Copyright © 2016-2020 http://www.3dportal.cn/ All Rights Reserved 京 ICP备13008828号

小黑屋|手机版|Archiver|三维网 ( 京ICP备2023026364号-1 )

快速回复 返回顶部 返回列表