QQ登录

只需一步,快速开始

登录 | 注册 | 找回密码

三维网

 找回密码
 注册

QQ登录

只需一步,快速开始

展开

通知     

查看: 4104|回复: 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环境下,生成图形速度快。
) ]" a, j1 ^4 _, {* `4 k  二、 利用C-HOOKS绘制曲线的方法
; p$ q, Q0 K. \) k3 X# x  C—HOOKS是MasterCAM系统中一个绘制复杂曲线、曲面的有用工具,它采用C语言形式编制程序来绘制各种曲线、曲面,绘制的方法如下。. g8 I6 A# ?- \3 n- ~) z, G
  (1)首先要把绘制曲线的方程式(解析式)http://www.idnovo.com.cn/uploadfile/magazine/uploadfile/200908/20090826044351400.jpg求出来,这个方程式可以写成 形式,也可以写成参数方程形式,还可以写成极坐标形式。如,正弦函数曲线可以写成http://www.idnovo.com.cn/uploadfile/magazine/uploadfile/200908/20090826044414945.jpg 的方程式(解析式)。
0 v+ ^, A2 B9 D  (2)根据方程式(解析式)编写绘图程序,该绘图程序以eqn文件保存。编写eqn文件有两种方法:1)先新建一个txt文件,在该文件中编写完程序后保存,再把该文件的后缀名改为eqn即可;2)直接打开系统中的eqn文件,在编辑器中新建一个文件,编写完程序后保存即可。编写程序比较严格,有一定的格式要求,并且只准用英文小写。例如上面提到的正弦函数曲线,它的绘制程序如下:. O6 X" b. U9 T$ q1 |
  step_var1=x //定义变量名) W: N/ {4 s% c7 ?6 l0 Z7 B2 g" e
  step_size1=0.2 //定义变量的步距
' C8 v% ]; `  f" H  lower_limit1=0 //定义变量的上限/ B- D* X) l* \% h3 h
  upper_limit1=6.28319 //定义变量的上限6 E4 Q% S0 [: b8 A' L7 p" `
  geometry=lines //规定图形的型式! R7 K* m8 A8 x& F8 c, @
  angles=radians //定义角度采用弧度制
% }* @! K, p/ X: [( L# V  origin=0,0,0 //定义曲线的定位点(原点)' B/ D6 l* ~* W0 s- J6 \) m
  y=sin(x) //定义函数(解析式)
# W- a! y- n0 V. t$ f  (3)得到eqn文件后,通过点击菜单“Settings”→“Run User Application”,在弹出的窗口中选择fplot.dll文件,再打开刚才编制的sina.eqn文件,然后点击“Plot it”,绘图区即可见到所绘制的曲线(在MasterCAM X中运行环境)。
1 U3 W1 w! j5 {# K* p* }7 a  三、 各种复杂曲线的绘制
1 {0 y5 `8 Y( m) V2 C4 _  1.渐开线
. M) I- {! V( W$ G4 U0 a  渐开线是齿轮常用的轮廓曲线,该曲线的参数方程为:http://www.idnovo.com.cn/uploadfile/magazine/uploadfile/200908/20090826044459743.jpg 。其中,α为基圆半径,t为变量角(弧度)。1 v( G- W2 B, `" s, y4 v: U: i
  根据上述参数方程,编写eqn文件如下:
' c; X& e# m% Z; G3 G0 h  step_var1=t
# t, `, o6 P4 S! a' p# U" V  step_size1=0.05
% c) v- U6 N0 q6 {) B1 r, U  lower_limit1=0
+ E2 [9 W" h& s  upper_limit1=6.28319/ Z1 f( X+ L3 J
  geometry=lines  |) P/ u7 c2 ?$ p7 Z
  angles=radians
  |# P0 q7 r' j8 I( h9 i  origin=0,0,0
# X5 g: Y% [- k# f9 T: e4 @. G  a=1( T0 Q. I2 R' B) w
  x=a*(cos(t)+t*sin(t)). y+ y, y6 z2 m
  y=a*(sin(t)-t*cos(t)); Q/ u5 g0 p7 e) b- C+ @
  绘制出来的图形如图1所示。
1 I: E) B; ~& C' r
图1 绘制的渐开线图
  2.阿基米德曲线
. {$ G' j, k) |; v5 K  阿基米德曲线在凸轮和蜗杆等中较常用,它的参数方程为: http://www.idnovo.com.cn/uploadfile/magazine/uploadfile/200908/20090826044601105.jpghttp://www.idnovo.com.cn/uploadfile/magazine/uploadfile/200908/20090826044621620.jpg 。其中,r为曲率半径,α为基圆半径,t为变量角(弧度)。
: \. c. A, s. k; ~0 m  根据上述参数方程,编写eqn文件如下:
  {+ S, A6 v* ^  step_var1=t. B- b! K# |; M2 n$ T
  step_size1=0.05
7 z: x5 u5 @* E" E4 j  lower_limit1=0- O( ~( u% m3 C+ a0 e
  upper_limit1=6.28319, `8 l- S# i/ u# i- v7 V
  geometry=lines
4 ~6 Y1 K0 E$ [" u  angles=radians
7 `) L! H% t$ m+ L0 W3 O: A$ \! V# n& _  origin=0,0,0
  X; `4 H4 }! h, y  a=20" N. ?: B) i9 q/ S
  r=a*t
; E8 G# L0 Z2 d* Y  x=r*cos(t)
& X, P" n: b4 [( M% r. L/ i  y=r*sin(t)5 ~+ {% T5 C% M: u, c' H8 ~
  绘制出来的图形如图2所示。
: j* X" R0 a9 l& I# K  b
图2 绘制的阿基米德曲线图
  3.摆线
$ h$ j8 P  T0 \2 s  摆线是钟表齿轮齿形轮廓的典型曲线,它的参数方程为:http://www.idnovo.com.cn/uploadfile/magazine/uploadfile/200908/20090826044746794.jpg 。其中,α为基圆半径,t为变量角(弧度)。
4 h  X1 u3 L4 Z  Z8 O7 t  根据上述参数方程,编写eqn文件如下:* i: B/ t2 P" o, T
  step_var1=t
  x* e( u! }; B9 r. v  step_size1=0.051 E" h: h$ I2 Q% l4 D  e
  lower_limit1=0: n& m. y" d9 {. N
  upper_limit1=6.28319; f( {* ~# r" y7 ^, V2 t! C  c
  geometry=lines
8 ]1 l1 U4 Q$ I$ I" i0 {' N# L6 q  angles=radians1 h9 i' _8 w7 C8 y. F7 Y
  origin=0,0,0; I1 Y- H/ W' p3 l) O/ z# ~
  a=20" q- m. k% V; ]4 x6 X- R% ~
  x=a*(t-sin(t))7 l8 W  K) `! {
  y=a*(1-cos(t))
9 E/ z8 n% h2 U$ O. i+ C0 o  绘制出来的图形如图3所示。1 A% o2 z5 |$ j( Y1 L
图3 绘制的摆线图
  4.凸轮轮廓线
( R: N8 g7 K6 z$ k: F5 T# _- V  在机械设计中凸轮设计会经常遇到,靠传统的作图法既繁琐,精度又不高,利用C—HOOKS功能却可以得到意想不到的结果。下面是设计某一偏置直动滚子推杆盘形凸轮的实际轮廓线。先绘制凸轮理论轮廓曲线,该曲线分为四部分:L1、ARC2、L2、ARC1(见图4),分别代表推程、远休止、回程、近休止轮廓。
  F: d9 F, ?2 I  推程曲线的参数方程为: http://www.idnovo.com.cn/uploadfile/magazine/uploadfile/200908/20090826044852271.jpg。其中,http://www.idnovo.com.cn/uploadfile/magazine/uploadfile/200908/20090826044910240.jpg
- b1 p6 Z$ e: t' W  回程曲线的参数方程为:http://www.idnovo.com.cn/uploadfile/magazine/uploadfile/200908/20090826044925332.jpg 。其中, http://www.idnovo.com.cn/uploadfile/magazine/uploadfile/200908/20090826044944102.jpg+ n2 {: c/ W2 G5 r* }- T
  近休止、远休止轮廓是段圆弧,其参数方程分别为:7 ^* I& u1 `1 m+ C  M
  近休止轮廓,http://www.idnovo.com.cn/uploadfile/magazine/uploadfile/200908/20090826045000217.jpg ,其中http://www.idnovo.com.cn/uploadfile/magazine/uploadfile/200908/20090826045023470.jpg ;1 C( z! h7 H8 @8 z
  远休止轮廓, http://www.idnovo.com.cn/uploadfile/magazine/uploadfile/200908/20090826045041300.jpg,其中 http://www.idnovo.com.cn/uploadfile/magazine/uploadfile/200908/20090826045057717.jpg
( H2 V$ a# f- b: S  为了简化方程,变量t的范围,可以根据已画出的推程、回程曲线,通过查询端点处对应的角度(弧度)来设置。
) v$ O& H6 F3 B" k  上述四段轮廓分别建立eqn文件,程序如下:: g# ]! I- N  @
  L1.eqn文件:(对应曲线L1)
! a' }" Z' ~& X) {2 ]* j( Y  step_var1=t
; v% R$ y. G/ q6 o0 n8 Q  step_size1=0.1
" l( R8 w: A% X' s1 u* m  lower_limit1=02 i0 M! [2 s) D5 Q- b% ]2 g& a
  upper_limit1=2.094396 }5 F$ p+ y( g8 _
  geometry=lines/ s8 H% A% M! ?* n
  angles=radians
& W) j5 x* ^: q- J$ d# i  origin=0,0,0# ~6 b. Z5 T7 Y% ~
  x=(45.825+50*(3*t/6.28319-sin(3*t)/6.28319))*sin(t)+20*cos(t)
, C! y1 L( f' ]& ]  y=(45.825+50*(3*t/6.28319-sin(3*t)/6.28319))*cos(t)-20*sin(t)- j' z  K9 C' b% U. c1 j% V
  L2.eqn文件:(对应曲线L2)
5 i+ E0 N: U" R2 u5 K) \  step_var1=t5 E7 C) b. D9 @2 ]* s- F
  step_size1=0.1# b* D# `) X1 F) w" r+ Y* }  h* S, @
  lower_limit1=3.141595 g- r/ l) Z( C% N/ Z0 d! f
  upper_limit1=5.23598- x! @+ T; i2 p. G4 y8 ~# L2 o" O! t$ n
  geometry=lines
2 L) P) [. u: X* X5 Q/ e  angles=radians
. y; `* n3 e5 j4 @" g6 g  origin=0,0,0- W0 k8 B2 w  J  u5 ^" E/ Z* Z2 z8 }) t
  x=(45.825+25*(1+cos(1.5*(t-3.14159))))*sin(t)+20*cos(t)
: h) E3 Y: Z4 p: n+ F  y=(45.825+25*(1+cos(1.5*(t-3.14159))))*cos(t)-20*sin(t)8 T8 D5 ^* t& y$ W( L
  ARC1.eqn文件:(对应圆弧ARC1)5 v) M2 I0 e% M& N' g
  step_var1=t& k! F# U8 i6 r5 s* w
  step_size1=0.1
$ x0 h. z& V  j9 r  lower_limit1=1.15894 n4 s0 i  b; y1 M2 k: N
  upper_limit1=2.2061" H/ ?* ]. a/ C+ f+ f7 l9 ?6 f0 }
  geometry=lines
2 |; M$ T8 a. M5 N4 H1 N  angles=radians2 [/ M. ~0 C+ ~
  origin=0,0,0
! ]( M  m/ l. Q5 b; Q9 i+ U7 B  x=50*cos(t)
8 d# G/ a7 o$ O4 W* G, _4 Y  y=50*sin(t)7 I6 P8 v+ F9 d) \, w
  ARC2.eqn文件:(对应圆弧ARC2)
: i  r. x# z3 |0 ]% l/ j1 v( {  step_var1=t4 [' o6 f* ~0 I* s  e, P  q' w( h
  step_size1=0.1
8 ~; ^. U- Q6 d$ i) \/ y: T! \  lower_limit1=4.506440 Y! i# x; m) g
  upper_limit1=5.55363: `* {3 u* y- X1 w/ _: O
  geometry=lines3 A9 y3 K2 Z" G$ @- i9 q
  angles=radians
( v- @# G9 I% s9 i( ?7 R  origin=0,0,0* d; M1 D" c( Q9 h, e% o
  x=97.89*cos(t)
! z* F  {$ V1 ~9 G7 ]! g, _  y=97.89*sin(t)
, X4 F" p1 p" O. R4 ^1 p  按照上面绘制的是理论轮廓曲线(外轮廓实线所示),要得到实际轮廓曲线(内轮廓虚线所示),根据两者的关系,只需利用命令“Xform”→“Xform Offset contour”向内偏移一个滚子的半径即可。绘制的凸轮轮廓曲线图如图4所示。
/ S6 ^+ S2 L: |! s/ K
图4 绘制的某凸轮轮廓曲线图
  四、 结论
! E3 |* z% e$ F6 p, ]9 `3 g  从上面的实例可以看出,只要复杂曲线能够得到函数方程(解析式),就可以通过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 )

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