QQ登录

只需一步,快速开始

登录 | 注册 | 找回密码

三维网

 找回密码
 注册

QQ登录

只需一步,快速开始

展开

通知     

全站
5天前
查看: 3917|回复: 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环境下,生成图形速度快。8 H1 N8 r" z$ ~! j% p% I/ W
  二、 利用C-HOOKS绘制曲线的方法
1 C( b3 D8 q( Y0 d! L& b  C—HOOKS是MasterCAM系统中一个绘制复杂曲线、曲面的有用工具,它采用C语言形式编制程序来绘制各种曲线、曲面,绘制的方法如下。: h/ u3 U* n: `: {0 o* ^
  (1)首先要把绘制曲线的方程式(解析式)http://www.idnovo.com.cn/uploadfile/magazine/uploadfile/200908/20090826044351400.jpg求出来,这个方程式可以写成 形式,也可以写成参数方程形式,还可以写成极坐标形式。如,正弦函数曲线可以写成http://www.idnovo.com.cn/uploadfile/magazine/uploadfile/200908/20090826044414945.jpg 的方程式(解析式)。
9 Z+ D0 @: {6 H7 h; M9 n  (2)根据方程式(解析式)编写绘图程序,该绘图程序以eqn文件保存。编写eqn文件有两种方法:1)先新建一个txt文件,在该文件中编写完程序后保存,再把该文件的后缀名改为eqn即可;2)直接打开系统中的eqn文件,在编辑器中新建一个文件,编写完程序后保存即可。编写程序比较严格,有一定的格式要求,并且只准用英文小写。例如上面提到的正弦函数曲线,它的绘制程序如下:; _8 g3 ]2 m/ {8 Y# s
  step_var1=x //定义变量名
, S3 Q' ]) A) H/ \  step_size1=0.2 //定义变量的步距" e/ `. B/ B* Q. q
  lower_limit1=0 //定义变量的上限8 H( c' T- P+ K; I
  upper_limit1=6.28319 //定义变量的上限
' J, b# b8 `+ K# v" P- j! D  geometry=lines //规定图形的型式8 i" b( t* q$ o! D0 u
  angles=radians //定义角度采用弧度制
5 e  B7 \& Z) m% t$ s7 J5 p! x  origin=0,0,0 //定义曲线的定位点(原点)6 ]9 x3 e0 q" l; l
  y=sin(x) //定义函数(解析式)
% ^# w0 J) `4 J& p3 k* K  (3)得到eqn文件后,通过点击菜单“Settings”→“Run User Application”,在弹出的窗口中选择fplot.dll文件,再打开刚才编制的sina.eqn文件,然后点击“Plot it”,绘图区即可见到所绘制的曲线(在MasterCAM X中运行环境)。
6 t" y6 B& p0 z  三、 各种复杂曲线的绘制
; U# u( Q8 {8 k# o5 V2 u- h  1.渐开线
- I9 Y+ f3 y# k  渐开线是齿轮常用的轮廓曲线,该曲线的参数方程为:http://www.idnovo.com.cn/uploadfile/magazine/uploadfile/200908/20090826044459743.jpg 。其中,α为基圆半径,t为变量角(弧度)。
  ]3 S, {& ^$ S  L: C! X" ^  根据上述参数方程,编写eqn文件如下:. z  X* q, Q, V1 f
  step_var1=t! z2 V! K! d; x2 S: m
  step_size1=0.05: B( D% C- ]  ^" {+ d2 f- ?
  lower_limit1=0* V9 u0 c6 ~% O* n- i
  upper_limit1=6.28319- o5 [( o. v; T/ |0 ?! ]1 |
  geometry=lines
, M. \( H0 X: D& B* \  angles=radians; n. e8 x3 m6 M5 ~  ~
  origin=0,0,0- _7 ^' c1 ]6 h' d
  a=1
4 M- ?# l5 h* \4 T+ S  x=a*(cos(t)+t*sin(t))2 d' v2 m# b& C$ H8 {+ v
  y=a*(sin(t)-t*cos(t))
( G. q- a. h* v  绘制出来的图形如图1所示。0 T9 c! I# H7 ]4 b
图1 绘制的渐开线图
  2.阿基米德曲线
4 ~/ s7 c2 q/ _  阿基米德曲线在凸轮和蜗杆等中较常用,它的参数方程为: http://www.idnovo.com.cn/uploadfile/magazine/uploadfile/200908/20090826044601105.jpghttp://www.idnovo.com.cn/uploadfile/magazine/uploadfile/200908/20090826044621620.jpg 。其中,r为曲率半径,α为基圆半径,t为变量角(弧度)。: _6 O4 s6 l9 B5 k" C6 j% {' S
  根据上述参数方程,编写eqn文件如下:
8 G- P3 }/ z8 y. G9 F  step_var1=t
; i+ L! o6 d0 R- A! D& Y  step_size1=0.05
/ s+ T& `# g" o% G/ [9 H  lower_limit1=0
% }2 r- C2 v5 o/ s& z# c- }  upper_limit1=6.283196 |% P) Y" w/ r+ Z
  geometry=lines6 l- T. S6 o" L5 P; Z
  angles=radians
3 c* ~6 W" p3 ^; ?  K' r( i5 L  origin=0,0,0, ^* T; Y# M: I$ k- b
  a=20% X7 Y9 r  M, U7 h/ b. d! S
  r=a*t
# _. P2 D4 p# `* Y2 P5 q  x=r*cos(t)3 h" V" K/ g& b& Z3 E. y  C
  y=r*sin(t)4 M' E5 a5 t$ v5 s) c' C& e4 `
  绘制出来的图形如图2所示。8 X1 c8 W' f  K% U9 F
图2 绘制的阿基米德曲线图
  3.摆线
' O8 B9 {0 c1 D8 H5 B  摆线是钟表齿轮齿形轮廓的典型曲线,它的参数方程为:http://www.idnovo.com.cn/uploadfile/magazine/uploadfile/200908/20090826044746794.jpg 。其中,α为基圆半径,t为变量角(弧度)。4 T2 J6 T( H' u' `) Z0 f/ A* v
  根据上述参数方程,编写eqn文件如下:
; |$ `/ a# F; }8 z  h  step_var1=t
6 ]; q* ~4 K, M* p+ M  step_size1=0.05
; T# s1 S4 e% R4 D* q  lower_limit1=08 ^7 T. f2 T! ?# C4 c# c
  upper_limit1=6.28319
; L6 c9 f  B4 h  geometry=lines
1 ^2 r" \$ l+ |. e; K3 T/ D2 A7 ^  angles=radians
' }, J0 I7 T. w9 q  origin=0,0,0; a+ A( R3 D% W1 T  Z5 }
  a=20
2 M. @% `% S# V9 M  x=a*(t-sin(t))
, C+ _7 u( i. t- A, E3 G" Q  y=a*(1-cos(t))* z+ ^0 l* w* @. Y
  绘制出来的图形如图3所示。! m# t& |7 N% u& L* \' ^7 h
图3 绘制的摆线图
  4.凸轮轮廓线# J0 h7 b; m3 V( R
  在机械设计中凸轮设计会经常遇到,靠传统的作图法既繁琐,精度又不高,利用C—HOOKS功能却可以得到意想不到的结果。下面是设计某一偏置直动滚子推杆盘形凸轮的实际轮廓线。先绘制凸轮理论轮廓曲线,该曲线分为四部分:L1、ARC2、L2、ARC1(见图4),分别代表推程、远休止、回程、近休止轮廓。
- \8 L; k. ^% [+ b; F2 P- w9 s  推程曲线的参数方程为: http://www.idnovo.com.cn/uploadfile/magazine/uploadfile/200908/20090826044852271.jpg。其中,http://www.idnovo.com.cn/uploadfile/magazine/uploadfile/200908/20090826044910240.jpg6 }5 ]: @2 x& d* N( [3 t0 L4 K2 S. I% I
  回程曲线的参数方程为:http://www.idnovo.com.cn/uploadfile/magazine/uploadfile/200908/20090826044925332.jpg 。其中, http://www.idnovo.com.cn/uploadfile/magazine/uploadfile/200908/20090826044944102.jpg
% T& D" d; _) W; o  近休止、远休止轮廓是段圆弧,其参数方程分别为:
  G  v" p  a0 v2 R  近休止轮廓,http://www.idnovo.com.cn/uploadfile/magazine/uploadfile/200908/20090826045000217.jpg ,其中http://www.idnovo.com.cn/uploadfile/magazine/uploadfile/200908/20090826045023470.jpg ;
0 K; x/ L& L% w: L. u+ G  远休止轮廓, http://www.idnovo.com.cn/uploadfile/magazine/uploadfile/200908/20090826045041300.jpg,其中 http://www.idnovo.com.cn/uploadfile/magazine/uploadfile/200908/20090826045057717.jpg2 m) j- I0 z; B' g% E
  为了简化方程,变量t的范围,可以根据已画出的推程、回程曲线,通过查询端点处对应的角度(弧度)来设置。- y7 o) Z7 D0 c' D+ u3 d  z7 ^9 `
  上述四段轮廓分别建立eqn文件,程序如下:, x# N1 p8 V2 u& J* h
  L1.eqn文件:(对应曲线L1)
  G/ l" _. f( ]& [  step_var1=t
8 [- c8 A! X. e0 z& j% k$ R% b# p  step_size1=0.1, \# S( w1 [4 D2 C4 s
  lower_limit1=0
& J9 g( n: W* N2 i  _  upper_limit1=2.09439
$ K( {, Q/ R" E) N  geometry=lines( B' I; _3 s" L- ~% Q' X
  angles=radians
( n  y1 t/ {$ x& R* u  origin=0,0,0( T) O6 E1 [) Y5 j6 Z& t
  x=(45.825+50*(3*t/6.28319-sin(3*t)/6.28319))*sin(t)+20*cos(t)
" s1 J# D: u  A5 [$ S  y=(45.825+50*(3*t/6.28319-sin(3*t)/6.28319))*cos(t)-20*sin(t)
+ `3 a7 D2 S' s3 O/ x  L2.eqn文件:(对应曲线L2)
: m  \0 c8 S0 O% ~! B1 k# ~6 g. x  step_var1=t7 `' g- s  K3 s: G# v1 ]$ R
  step_size1=0.1
8 a: ~* U& |. N* T6 p! f! m  lower_limit1=3.14159
7 a; i! c" h4 G  upper_limit1=5.23598; m* `! F) `, C2 ^+ V* y
  geometry=lines  f$ `: J) I7 f) R" V( J8 q0 d  u
  angles=radians
  f  m1 n6 y5 }  origin=0,0,0
, |4 d# G4 y! T5 t8 d0 G. v# q  x=(45.825+25*(1+cos(1.5*(t-3.14159))))*sin(t)+20*cos(t)( n% |% l: ^: e7 z
  y=(45.825+25*(1+cos(1.5*(t-3.14159))))*cos(t)-20*sin(t)
; t+ Y7 z3 O* M0 e  ARC1.eqn文件:(对应圆弧ARC1)! i( b$ p$ e' u, }
  step_var1=t
2 ^, Z. W0 f  O: n* l; }  step_size1=0.1
) o( g3 E$ s1 ?' x4 U$ Z/ V- b  lower_limit1=1.1589
0 ~2 F9 p" f% r  upper_limit1=2.2061
! v7 f/ `0 n  N4 L5 i# v  geometry=lines
! Q) G" \% w( Z/ v  angles=radians; A* O4 S) y$ {
  origin=0,0,0* @- E6 J: x/ \& t  k3 p) \
  x=50*cos(t)( S" _0 z: t5 Q) |
  y=50*sin(t)
8 Y  |6 T1 o" x  `  ARC2.eqn文件:(对应圆弧ARC2)( s. e. }0 U9 ]; J
  step_var1=t8 x$ j2 y0 W- o3 p% ^  C2 B
  step_size1=0.1
7 T. X0 w. d/ V' _0 y  lower_limit1=4.50644/ P9 Y- I+ s* h; u- [4 _
  upper_limit1=5.55363
% G5 s, [  Q" f2 V6 O  geometry=lines
1 [- [* r$ P) i( J- A6 v$ K  angles=radians' L# f) x9 D) n+ d
  origin=0,0,01 A$ S) ], U9 ]! v0 t. A
  x=97.89*cos(t)
5 ?: ]. A: Y) g6 I( e5 Q7 p  y=97.89*sin(t)
1 A. S6 x. ?5 U/ j" s/ K  P  按照上面绘制的是理论轮廓曲线(外轮廓实线所示),要得到实际轮廓曲线(内轮廓虚线所示),根据两者的关系,只需利用命令“Xform”→“Xform Offset contour”向内偏移一个滚子的半径即可。绘制的凸轮轮廓曲线图如图4所示。
. k1 @9 V1 {' }; r$ b
图4 绘制的某凸轮轮廓曲线图
  四、 结论5 a7 p6 J# R4 P9 l" D/ a9 }' M
  从上面的实例可以看出,只要复杂曲线能够得到函数方程(解析式),就可以通过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 )

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