QQ登录

只需一步,快速开始

登录 | 注册 | 找回密码

三维网

 找回密码
 注册

QQ登录

只需一步,快速开始

展开

通知     

查看: 4103|回复: 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环境下,生成图形速度快。6 x0 \* q9 F  e9 m7 o* k
  二、 利用C-HOOKS绘制曲线的方法& Y" C: G5 Y5 x- Z- w( ]
  C—HOOKS是MasterCAM系统中一个绘制复杂曲线、曲面的有用工具,它采用C语言形式编制程序来绘制各种曲线、曲面,绘制的方法如下。3 ]; x7 ?5 S& Y
  (1)首先要把绘制曲线的方程式(解析式)http://www.idnovo.com.cn/uploadfile/magazine/uploadfile/200908/20090826044351400.jpg求出来,这个方程式可以写成 形式,也可以写成参数方程形式,还可以写成极坐标形式。如,正弦函数曲线可以写成http://www.idnovo.com.cn/uploadfile/magazine/uploadfile/200908/20090826044414945.jpg 的方程式(解析式)。
8 S& O! O8 d- C, E7 F2 `  T  (2)根据方程式(解析式)编写绘图程序,该绘图程序以eqn文件保存。编写eqn文件有两种方法:1)先新建一个txt文件,在该文件中编写完程序后保存,再把该文件的后缀名改为eqn即可;2)直接打开系统中的eqn文件,在编辑器中新建一个文件,编写完程序后保存即可。编写程序比较严格,有一定的格式要求,并且只准用英文小写。例如上面提到的正弦函数曲线,它的绘制程序如下:
% e  _. g% w  D5 Z8 l! _% u" e4 [  step_var1=x //定义变量名- k9 V* Z3 ^7 E0 j6 X. M# F
  step_size1=0.2 //定义变量的步距% u! y2 b: N9 I( J; A7 v' m. @" L
  lower_limit1=0 //定义变量的上限" K2 o2 K0 b9 C) R8 U
  upper_limit1=6.28319 //定义变量的上限
6 g) K! ~' _/ k8 w4 M5 r  geometry=lines //规定图形的型式
3 h' s+ w$ K3 \$ B+ O2 G  angles=radians //定义角度采用弧度制3 M/ K) p/ z! m0 P, @) W1 g
  origin=0,0,0 //定义曲线的定位点(原点)1 p, b( M0 D" U- [
  y=sin(x) //定义函数(解析式)( X# i# C9 C# W
  (3)得到eqn文件后,通过点击菜单“Settings”→“Run User Application”,在弹出的窗口中选择fplot.dll文件,再打开刚才编制的sina.eqn文件,然后点击“Plot it”,绘图区即可见到所绘制的曲线(在MasterCAM X中运行环境)。% i  `# z+ s! G$ q
  三、 各种复杂曲线的绘制/ W& Z% k2 K9 I  \- @
  1.渐开线
7 \, R4 o; o3 w9 ]5 t$ j+ E4 ]( H  渐开线是齿轮常用的轮廓曲线,该曲线的参数方程为:http://www.idnovo.com.cn/uploadfile/magazine/uploadfile/200908/20090826044459743.jpg 。其中,α为基圆半径,t为变量角(弧度)。3 i% Y3 `1 C# |6 f# t- {
  根据上述参数方程,编写eqn文件如下:
) c! _  b/ _! n( E  step_var1=t
1 f6 k* ^5 r0 o! R  e6 U1 m  step_size1=0.05
" T! R. J9 i* `& C% x) B0 j: |  lower_limit1=0
: O  ]5 i" U: a: l+ s+ q  upper_limit1=6.283194 a3 X7 n# y5 z$ b' M3 S" W
  geometry=lines) e% B& h3 N* Y; M8 p+ H" `, H
  angles=radians
% A3 P$ c+ i/ f6 E  origin=0,0,06 Y- x  \, m+ P& R  X3 g- [: t
  a=1
) m. {. i( i3 |( s2 v( M  x=a*(cos(t)+t*sin(t))8 u) v- S* C* H
  y=a*(sin(t)-t*cos(t))8 [) k! z! l( K
  绘制出来的图形如图1所示。2 U- {! `# b4 ]5 `0 ?2 l) x5 }
图1 绘制的渐开线图
  2.阿基米德曲线
3 V: L9 R$ P+ d+ R/ }4 I$ e  阿基米德曲线在凸轮和蜗杆等中较常用,它的参数方程为: http://www.idnovo.com.cn/uploadfile/magazine/uploadfile/200908/20090826044601105.jpghttp://www.idnovo.com.cn/uploadfile/magazine/uploadfile/200908/20090826044621620.jpg 。其中,r为曲率半径,α为基圆半径,t为变量角(弧度)。
) ]8 w' X0 f  k  ^. |5 ~: P  根据上述参数方程,编写eqn文件如下:+ o( g" b+ s* {7 b3 T$ v
  step_var1=t
! V* _1 w/ z7 x  step_size1=0.05( L: {5 C6 _" u' u5 K! u* q! \8 o
  lower_limit1=0
, B/ {. M' f; _% N5 m  upper_limit1=6.28319
2 [3 j# z* w, e3 |  geometry=lines( \+ r! Y0 \( G& X. c
  angles=radians
7 F; l4 z$ _- Q1 T' o- N+ S  origin=0,0,03 c9 W6 T, z: W5 Y1 B
  a=20
8 G+ ]. s: n7 s$ ~  r=a*t
( x3 R0 \1 X  N# f$ c  x=r*cos(t)2 [( L! y$ |. \1 [9 Y- p8 ]# f8 Y8 \
  y=r*sin(t)
: V7 ~' `$ b. o; ]  绘制出来的图形如图2所示。
5 m9 e( I1 G" D' z' Z" n" m  G
图2 绘制的阿基米德曲线图
  3.摆线1 t0 o6 L5 Q$ w( i7 S! |* l
  摆线是钟表齿轮齿形轮廓的典型曲线,它的参数方程为:http://www.idnovo.com.cn/uploadfile/magazine/uploadfile/200908/20090826044746794.jpg 。其中,α为基圆半径,t为变量角(弧度)。) d: _+ G* J/ V* l  F
  根据上述参数方程,编写eqn文件如下:  \8 j. J$ }( q5 r# a9 |% ]2 n
  step_var1=t7 i7 |3 G% d: x- _
  step_size1=0.059 K" M+ s& f8 [9 [5 e8 S
  lower_limit1=0/ T3 e8 W- X2 f% v; @6 h. O
  upper_limit1=6.28319% e* d* t8 ^$ x! E7 g
  geometry=lines
0 e' O: \) h4 p& T  angles=radians
. V' c: n& J- R5 M0 R+ V  origin=0,0,0# I8 M! G5 |* U3 c* g0 |
  a=20  _$ q4 T/ V3 M
  x=a*(t-sin(t))0 y$ C% O5 Q, }, ~: g. J1 h) u( o. m
  y=a*(1-cos(t))
- U3 w$ T4 d% J7 O3 ?& i  绘制出来的图形如图3所示。
# i* E  u; N! a2 \* F
图3 绘制的摆线图
  4.凸轮轮廓线2 A+ j% H% B7 m, o& a( g8 W2 y2 N& W
  在机械设计中凸轮设计会经常遇到,靠传统的作图法既繁琐,精度又不高,利用C—HOOKS功能却可以得到意想不到的结果。下面是设计某一偏置直动滚子推杆盘形凸轮的实际轮廓线。先绘制凸轮理论轮廓曲线,该曲线分为四部分:L1、ARC2、L2、ARC1(见图4),分别代表推程、远休止、回程、近休止轮廓。+ d+ h! i4 g" J; _1 F) u% x
  推程曲线的参数方程为: http://www.idnovo.com.cn/uploadfile/magazine/uploadfile/200908/20090826044852271.jpg。其中,http://www.idnovo.com.cn/uploadfile/magazine/uploadfile/200908/20090826044910240.jpg
$ ?% Q- u2 E5 V& k, z+ S  回程曲线的参数方程为:http://www.idnovo.com.cn/uploadfile/magazine/uploadfile/200908/20090826044925332.jpg 。其中, http://www.idnovo.com.cn/uploadfile/magazine/uploadfile/200908/20090826044944102.jpg
! Q8 L. u* q) Q! M! F  近休止、远休止轮廓是段圆弧,其参数方程分别为:8 H% [4 w5 m3 a# J7 T& c* y
  近休止轮廓,http://www.idnovo.com.cn/uploadfile/magazine/uploadfile/200908/20090826045000217.jpg ,其中http://www.idnovo.com.cn/uploadfile/magazine/uploadfile/200908/20090826045023470.jpg ;- u0 c1 e6 T4 `/ k, B  _! L, w
  远休止轮廓, http://www.idnovo.com.cn/uploadfile/magazine/uploadfile/200908/20090826045041300.jpg,其中 http://www.idnovo.com.cn/uploadfile/magazine/uploadfile/200908/20090826045057717.jpg3 Q+ G# Q8 e6 X9 r: l+ A0 }
  为了简化方程,变量t的范围,可以根据已画出的推程、回程曲线,通过查询端点处对应的角度(弧度)来设置。
2 K. V5 I: y8 Z1 \: n  上述四段轮廓分别建立eqn文件,程序如下:7 A) H2 i; V$ t" G# b& v
  L1.eqn文件:(对应曲线L1)
# c. Y7 s, L  b8 k7 }0 _9 |' j2 Y  step_var1=t
- D3 c5 @# U4 g6 X( I# U  step_size1=0.15 s" C7 k& _* w  E# M: n
  lower_limit1=01 n- G# O; a; E$ l7 F
  upper_limit1=2.09439
9 ^8 i; ^( {, d+ H' \9 h$ g+ h  geometry=lines
9 J* i. r0 ~  D0 U5 `2 k. Q  angles=radians
2 M* i& R! J% G- R1 l" B3 z' ?% ~  origin=0,0,0
- |$ a- ?' H/ U4 \3 j" }  x=(45.825+50*(3*t/6.28319-sin(3*t)/6.28319))*sin(t)+20*cos(t)# m9 [3 J8 `0 k0 y" Z: _
  y=(45.825+50*(3*t/6.28319-sin(3*t)/6.28319))*cos(t)-20*sin(t)1 Z' @. Y  C2 @, s+ h7 X
  L2.eqn文件:(对应曲线L2)! \8 j9 U2 u6 U0 \
  step_var1=t* s  O- D5 G8 r" Z
  step_size1=0.1
, R6 |, n% a5 s. q4 {6 e  lower_limit1=3.14159
2 N+ s# R! \- [" @1 Q6 g7 }' `0 h  upper_limit1=5.235985 m3 D* N! n% F' A/ H1 _
  geometry=lines3 e' a- z' v9 Z7 w+ ]
  angles=radians; j# T% d$ b! p3 \
  origin=0,0,0' A& b: I) l+ g3 E7 U9 Y2 i! }/ u
  x=(45.825+25*(1+cos(1.5*(t-3.14159))))*sin(t)+20*cos(t)# F+ X8 {, j1 X+ e
  y=(45.825+25*(1+cos(1.5*(t-3.14159))))*cos(t)-20*sin(t)
. A) ?# m3 ^0 V0 x) X  ARC1.eqn文件:(对应圆弧ARC1)
0 p; a9 F& e7 ]7 x1 B  step_var1=t
3 n4 Y& v) M" K. T" X( ]  step_size1=0.1
/ G8 a6 j1 y& e  lower_limit1=1.1589
% Z& I9 S& [' c. Y' u  upper_limit1=2.2061
- m2 ^9 R$ s# S& \8 l  geometry=lines1 ^0 o* \7 w4 e& s! B
  angles=radians
" \, m3 h+ g, q% ~. K& G3 d  origin=0,0,0
* D% o2 f$ C, u' N" x8 C  x=50*cos(t)' d6 [4 i  A- |" j' W; r
  y=50*sin(t)
* v: r& Q1 m# y5 K( V- D  ARC2.eqn文件:(对应圆弧ARC2)
; x& r! G+ @, c5 G6 s  step_var1=t
$ c/ d2 N* `3 X! Y, ~  step_size1=0.1. }/ X6 |' _1 V2 `  ]6 A8 D
  lower_limit1=4.506442 k2 ]* K4 t7 G  ~$ u0 X  Q
  upper_limit1=5.55363
1 J3 V8 |8 w1 S+ |  geometry=lines
# u3 A8 t! q* i$ _, J- i) P% W  angles=radians
; |( y4 `/ }; u1 n% g' v0 q  origin=0,0,0
/ a# u' b5 L+ J" L  x=97.89*cos(t)
3 J/ j/ x  p# a' |7 D  y=97.89*sin(t)2 ~, M$ {, F' N* V
  按照上面绘制的是理论轮廓曲线(外轮廓实线所示),要得到实际轮廓曲线(内轮廓虚线所示),根据两者的关系,只需利用命令“Xform”→“Xform Offset contour”向内偏移一个滚子的半径即可。绘制的凸轮轮廓曲线图如图4所示。! H1 t! ^6 e% G+ [* x  j
图4 绘制的某凸轮轮廓曲线图
  四、 结论
: P7 z- S7 r7 y0 ?  从上面的实例可以看出,只要复杂曲线能够得到函数方程(解析式),就可以通过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 )

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