QQ登录

只需一步,快速开始

登录 | 注册 | 找回密码

三维网

 找回密码
 注册

QQ登录

只需一步,快速开始

展开

通知     

查看: 3688|回复: 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环境下,生成图形速度快。" [5 Y: C/ @, _9 W' n
  二、 利用C-HOOKS绘制曲线的方法
) K% u* g- u& P( M' L0 [  C—HOOKS是MasterCAM系统中一个绘制复杂曲线、曲面的有用工具,它采用C语言形式编制程序来绘制各种曲线、曲面,绘制的方法如下。( S7 O4 w0 o. ]# ^' D3 ~% X  F
  (1)首先要把绘制曲线的方程式(解析式)http://www.idnovo.com.cn/uploadfile/magazine/uploadfile/200908/20090826044351400.jpg求出来,这个方程式可以写成 形式,也可以写成参数方程形式,还可以写成极坐标形式。如,正弦函数曲线可以写成http://www.idnovo.com.cn/uploadfile/magazine/uploadfile/200908/20090826044414945.jpg 的方程式(解析式)。) |' ^  K/ l& f& `) R& t( h2 r
  (2)根据方程式(解析式)编写绘图程序,该绘图程序以eqn文件保存。编写eqn文件有两种方法:1)先新建一个txt文件,在该文件中编写完程序后保存,再把该文件的后缀名改为eqn即可;2)直接打开系统中的eqn文件,在编辑器中新建一个文件,编写完程序后保存即可。编写程序比较严格,有一定的格式要求,并且只准用英文小写。例如上面提到的正弦函数曲线,它的绘制程序如下:
, O2 A5 V# i4 q2 _  step_var1=x //定义变量名+ T4 X* g0 i2 G# L- j$ j
  step_size1=0.2 //定义变量的步距
- b  ^4 j# W+ V1 f( w. T& n  lower_limit1=0 //定义变量的上限
+ t) _) d* {9 R: h! c  upper_limit1=6.28319 //定义变量的上限
8 |  F1 Q; W& S, w3 y% P! k$ C  geometry=lines //规定图形的型式
  D4 S  W4 S; p! j  angles=radians //定义角度采用弧度制4 P/ y& g( n$ O# d- T% a- l* [
  origin=0,0,0 //定义曲线的定位点(原点)
4 v; r7 m4 }3 K' p0 u: K- A. R" C  y=sin(x) //定义函数(解析式)
8 h+ C! i& E3 j- J3 z/ i6 R4 K  (3)得到eqn文件后,通过点击菜单“Settings”→“Run User Application”,在弹出的窗口中选择fplot.dll文件,再打开刚才编制的sina.eqn文件,然后点击“Plot it”,绘图区即可见到所绘制的曲线(在MasterCAM X中运行环境)。
8 ~$ ~) v$ W+ E& \$ d1 w) T  三、 各种复杂曲线的绘制: n9 |6 {( k; k! {
  1.渐开线% ^3 X0 m: ?* C0 n
  渐开线是齿轮常用的轮廓曲线,该曲线的参数方程为:http://www.idnovo.com.cn/uploadfile/magazine/uploadfile/200908/20090826044459743.jpg 。其中,α为基圆半径,t为变量角(弧度)。
0 P7 e7 W! D6 c* m  根据上述参数方程,编写eqn文件如下:
) l( q: o1 e) ]* ^5 q  step_var1=t
% ]6 W! A6 ]- v/ _4 U# Q3 t1 |$ Q9 b  step_size1=0.05. ?2 V5 |. Z1 O% ?
  lower_limit1=0
) t( c7 [' J1 c! p8 {3 `0 e  upper_limit1=6.28319  o7 P4 R: k' M6 \0 {
  geometry=lines" E) S- x) c/ t
  angles=radians
1 W" N6 t: t1 w9 ^% o6 a% k  origin=0,0,0& x+ |" ?3 u1 [  z" S6 z- V
  a=1
; z2 g' _" Z! u: t7 x, D  x=a*(cos(t)+t*sin(t))
& Y7 T! i" n% A- Z: P( b+ M" _  y=a*(sin(t)-t*cos(t))
# F8 u) W, m5 ]8 z+ {1 s% \! P  绘制出来的图形如图1所示。
1 n1 D: t6 g# G2 g$ v  F* y' [( R
图1 绘制的渐开线图
  2.阿基米德曲线
/ Z( |' b  h" p4 T  阿基米德曲线在凸轮和蜗杆等中较常用,它的参数方程为: http://www.idnovo.com.cn/uploadfile/magazine/uploadfile/200908/20090826044601105.jpghttp://www.idnovo.com.cn/uploadfile/magazine/uploadfile/200908/20090826044621620.jpg 。其中,r为曲率半径,α为基圆半径,t为变量角(弧度)。7 k9 y1 w. ]9 J( u
  根据上述参数方程,编写eqn文件如下:- O0 n# i3 {$ n5 C: `
  step_var1=t' i. T' H& b5 Y& _$ d9 Z" `
  step_size1=0.05
) {. i" x. r2 ~4 T  lower_limit1=0
# |! s4 A) T8 B: ]9 x& {; C  upper_limit1=6.28319
) q) Q" l- r' N  ~) @% u  geometry=lines
6 c6 f/ ~% |  R  angles=radians+ z" y( j1 i4 ?% [% a# Z% ?
  origin=0,0,0. P7 h# v% e4 l! J
  a=20
, P8 A$ s5 z& j/ A  r=a*t
3 b& n6 |$ }" F( Y  ~& z: ~  x=r*cos(t)7 h6 m7 Y1 t: v
  y=r*sin(t)/ W, m& J- ~0 J( V; `; O2 B( q6 j
  绘制出来的图形如图2所示。, V- s4 J1 w* j; A+ d
图2 绘制的阿基米德曲线图
  3.摆线1 p4 ?6 `' e% f7 s9 L/ M9 E
  摆线是钟表齿轮齿形轮廓的典型曲线,它的参数方程为:http://www.idnovo.com.cn/uploadfile/magazine/uploadfile/200908/20090826044746794.jpg 。其中,α为基圆半径,t为变量角(弧度)。- o" D& w9 ^% w
  根据上述参数方程,编写eqn文件如下:8 G5 [/ n" N" o: F
  step_var1=t, t* s9 f, o9 I2 n, y5 F3 E
  step_size1=0.05
1 }, E, `8 t" q0 l4 @! V$ P  lower_limit1=0( Q+ Q; j  W6 t1 A) M6 y
  upper_limit1=6.28319
+ S& J& q' ?8 O) V+ k0 v! k  geometry=lines! [" O. w' H+ q1 @5 E
  angles=radians: H. U% Y2 V1 Z1 q% Q
  origin=0,0,0% {# a7 B6 W) y9 X
  a=20- E! R0 n1 c) T9 ]. O' g1 D
  x=a*(t-sin(t))
* c8 t2 v( }% S7 q( F  y=a*(1-cos(t))
4 V$ K; f3 M0 r- Q0 d$ n4 I- ~1 h  绘制出来的图形如图3所示。: T' q# _( W4 i$ y" K8 b
图3 绘制的摆线图
  4.凸轮轮廓线
8 ?* q& w; `3 q; O) s% k5 ^: ~  在机械设计中凸轮设计会经常遇到,靠传统的作图法既繁琐,精度又不高,利用C—HOOKS功能却可以得到意想不到的结果。下面是设计某一偏置直动滚子推杆盘形凸轮的实际轮廓线。先绘制凸轮理论轮廓曲线,该曲线分为四部分:L1、ARC2、L2、ARC1(见图4),分别代表推程、远休止、回程、近休止轮廓。
4 A0 Y/ b: [. Q, W/ s  推程曲线的参数方程为: http://www.idnovo.com.cn/uploadfile/magazine/uploadfile/200908/20090826044852271.jpg。其中,http://www.idnovo.com.cn/uploadfile/magazine/uploadfile/200908/20090826044910240.jpg
! `- ]8 S7 T6 K( t' v* g# L  回程曲线的参数方程为:http://www.idnovo.com.cn/uploadfile/magazine/uploadfile/200908/20090826044925332.jpg 。其中, http://www.idnovo.com.cn/uploadfile/magazine/uploadfile/200908/20090826044944102.jpg
( c% [- W: \4 r& x/ e3 j3 ^  近休止、远休止轮廓是段圆弧,其参数方程分别为:
; |/ W; J. K- p0 E4 K5 l  近休止轮廓,http://www.idnovo.com.cn/uploadfile/magazine/uploadfile/200908/20090826045000217.jpg ,其中http://www.idnovo.com.cn/uploadfile/magazine/uploadfile/200908/20090826045023470.jpg ;  i6 M. i( O+ j0 T2 g5 y' @# @* k
  远休止轮廓, http://www.idnovo.com.cn/uploadfile/magazine/uploadfile/200908/20090826045041300.jpg,其中 http://www.idnovo.com.cn/uploadfile/magazine/uploadfile/200908/20090826045057717.jpg
. I$ y: c- b: r  为了简化方程,变量t的范围,可以根据已画出的推程、回程曲线,通过查询端点处对应的角度(弧度)来设置。
! `6 O5 e8 g" s% g  上述四段轮廓分别建立eqn文件,程序如下:  @, N9 h+ _/ F- i
  L1.eqn文件:(对应曲线L1)
3 Q, N& T# x8 v! ^  step_var1=t% [& w* X2 F( ], o. z
  step_size1=0.1
9 r3 u# W. J( j1 [* f- M  lower_limit1=09 ^1 [" ~1 G4 J* K" ?) h
  upper_limit1=2.09439
2 y* D* g  _. D1 E& G( K( j  geometry=lines
& K) F3 E8 Z% o) z  angles=radians* g0 b7 g: c- C- F( \
  origin=0,0,0/ \  ^* y+ n6 h, i
  x=(45.825+50*(3*t/6.28319-sin(3*t)/6.28319))*sin(t)+20*cos(t)
) N8 y7 Z7 l$ F8 h2 H  y=(45.825+50*(3*t/6.28319-sin(3*t)/6.28319))*cos(t)-20*sin(t)
9 G# U* d% b, A, G$ z, a7 t) c5 Q  {  L2.eqn文件:(对应曲线L2)
3 S6 k3 R& `, m. N/ h* H6 k; N  step_var1=t
( E5 r+ q$ a$ G  step_size1=0.1; I- X$ _, z# z+ ~
  lower_limit1=3.141591 r; ^7 U1 F+ e" F* y- ~
  upper_limit1=5.23598
* k" x7 X8 y% c# F  geometry=lines6 a7 M" O) h& Z1 T$ k
  angles=radians
& B" R  i. i# n9 M' j* Q! G* ^  origin=0,0,0( t: T! V3 K8 l0 J4 x
  x=(45.825+25*(1+cos(1.5*(t-3.14159))))*sin(t)+20*cos(t)
. {4 ^. {' i/ D7 M9 K1 J  y=(45.825+25*(1+cos(1.5*(t-3.14159))))*cos(t)-20*sin(t)  ]6 z7 t8 @+ h: q
  ARC1.eqn文件:(对应圆弧ARC1)5 `! j! e* W* a3 t5 G3 W
  step_var1=t3 A- X! e; U3 |) e" R
  step_size1=0.1
8 M- V; o& S$ |9 o5 N  lower_limit1=1.1589
8 G1 r7 I. m! u9 e  upper_limit1=2.2061
4 p4 d+ k  O; D+ v  geometry=lines7 {! K7 \! T/ \$ t! s7 i! z$ c% S6 o
  angles=radians9 ^. s3 g! T  Y# r
  origin=0,0,0! ]$ a7 A: {$ e/ ~5 h- T
  x=50*cos(t)9 e4 T0 I1 B" {- ]; w
  y=50*sin(t)  c1 n6 ^4 @  O$ B  O8 o
  ARC2.eqn文件:(对应圆弧ARC2)
  N4 }9 s5 T8 Q6 W3 @  step_var1=t
8 W) p! _8 u4 R/ |3 n  step_size1=0.18 ?& Y! }4 A: m1 Z9 J  o
  lower_limit1=4.50644# S) r7 Y' q7 {, g8 |5 p0 m
  upper_limit1=5.553631 L+ e" y' y3 z) I
  geometry=lines" p; D8 W2 X6 @
  angles=radians/ J. K& {+ J# }3 `
  origin=0,0,0- H/ i. n+ w5 t* w  R
  x=97.89*cos(t)6 ~1 \3 c7 m7 W% h  M- B# _+ e9 @
  y=97.89*sin(t)
( D8 Q6 {$ N$ y9 s* N  按照上面绘制的是理论轮廓曲线(外轮廓实线所示),要得到实际轮廓曲线(内轮廓虚线所示),根据两者的关系,只需利用命令“Xform”→“Xform Offset contour”向内偏移一个滚子的半径即可。绘制的凸轮轮廓曲线图如图4所示。
1 U/ j! d% @  Z, ^- K
图4 绘制的某凸轮轮廓曲线图
  四、 结论
0 O3 u1 o  ]- Y$ J- ?5 T9 l+ K  从上面的实例可以看出,只要复杂曲线能够得到函数方程(解析式),就可以通过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 )

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