QQ登录

只需一步,快速开始

登录 | 注册 | 找回密码

三维网

 找回密码
 注册

QQ登录

只需一步,快速开始

展开

通知     

全站
6天前
查看: 3921|回复: 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环境下,生成图形速度快。
/ Z# O- w3 d6 N! `) T& P/ n/ L  二、 利用C-HOOKS绘制曲线的方法7 J9 e3 v0 P: K4 J" p
  C—HOOKS是MasterCAM系统中一个绘制复杂曲线、曲面的有用工具,它采用C语言形式编制程序来绘制各种曲线、曲面,绘制的方法如下。
( |3 g' x4 X* t9 M( p1 B  (1)首先要把绘制曲线的方程式(解析式)http://www.idnovo.com.cn/uploadfile/magazine/uploadfile/200908/20090826044351400.jpg求出来,这个方程式可以写成 形式,也可以写成参数方程形式,还可以写成极坐标形式。如,正弦函数曲线可以写成http://www.idnovo.com.cn/uploadfile/magazine/uploadfile/200908/20090826044414945.jpg 的方程式(解析式)。& a) Q4 G$ ^2 m* K# M- S& W
  (2)根据方程式(解析式)编写绘图程序,该绘图程序以eqn文件保存。编写eqn文件有两种方法:1)先新建一个txt文件,在该文件中编写完程序后保存,再把该文件的后缀名改为eqn即可;2)直接打开系统中的eqn文件,在编辑器中新建一个文件,编写完程序后保存即可。编写程序比较严格,有一定的格式要求,并且只准用英文小写。例如上面提到的正弦函数曲线,它的绘制程序如下:9 t! ^* I& H# d& F$ ]
  step_var1=x //定义变量名6 d+ H! X/ |, B* ~
  step_size1=0.2 //定义变量的步距" L; X' h' ?' `/ P* S7 \
  lower_limit1=0 //定义变量的上限7 I& l- R* O6 J: D5 \$ \
  upper_limit1=6.28319 //定义变量的上限
, `' w0 u; A7 {: b  geometry=lines //规定图形的型式
- @6 i/ ?  x. Q% C  angles=radians //定义角度采用弧度制, t" |( W1 l, S- t4 w. x0 p
  origin=0,0,0 //定义曲线的定位点(原点)5 `  v3 e5 Z4 O; z/ r
  y=sin(x) //定义函数(解析式)+ a* n1 W0 F! H  I3 r) N' ?
  (3)得到eqn文件后,通过点击菜单“Settings”→“Run User Application”,在弹出的窗口中选择fplot.dll文件,再打开刚才编制的sina.eqn文件,然后点击“Plot it”,绘图区即可见到所绘制的曲线(在MasterCAM X中运行环境)。
2 y; R! f# d; w; Y3 R" \  三、 各种复杂曲线的绘制
: K" \! z5 Q- Z% K# O. L  1.渐开线# Y& H# s' S8 d
  渐开线是齿轮常用的轮廓曲线,该曲线的参数方程为:http://www.idnovo.com.cn/uploadfile/magazine/uploadfile/200908/20090826044459743.jpg 。其中,α为基圆半径,t为变量角(弧度)。
( ^* W& p) n% p2 U! V: @6 W' d) z  根据上述参数方程,编写eqn文件如下:' P+ `* R, T2 l5 T2 [$ C
  step_var1=t
: X; `  O8 z( V, H+ H; F3 W' s2 l: h% k6 r  step_size1=0.05, n4 J8 X4 U+ g' ^8 V( r
  lower_limit1=08 J; T, m: v0 W4 _( t
  upper_limit1=6.28319) e8 A: j1 {$ a3 t/ S
  geometry=lines. c% Q! |4 ^8 h
  angles=radians3 X. L2 l+ v. V
  origin=0,0,0. i6 W1 f" b, p( J( \4 c0 p# C
  a=1
8 E( S( q+ M) M! P' G  x=a*(cos(t)+t*sin(t))8 {* l& j. X; h1 S# E1 _* l( F
  y=a*(sin(t)-t*cos(t))
7 g' L6 ?$ k; U9 V7 s- n9 ^6 D; j  绘制出来的图形如图1所示。
0 a/ N. V  d: N& _
图1 绘制的渐开线图
  2.阿基米德曲线% t, b$ m; O/ A8 x8 N
  阿基米德曲线在凸轮和蜗杆等中较常用,它的参数方程为: http://www.idnovo.com.cn/uploadfile/magazine/uploadfile/200908/20090826044601105.jpghttp://www.idnovo.com.cn/uploadfile/magazine/uploadfile/200908/20090826044621620.jpg 。其中,r为曲率半径,α为基圆半径,t为变量角(弧度)。/ b9 b2 F5 J) g/ n/ ?* k
  根据上述参数方程,编写eqn文件如下:
* Z! r+ P) U8 K# I: E: x+ w  step_var1=t' {3 E. S, t9 J
  step_size1=0.053 i6 k' V8 T( }
  lower_limit1=0
% k( ~; e$ s" Q: L' n  upper_limit1=6.28319
; |: d) \: e# D+ v. r" C+ M8 I+ i  geometry=lines$ f6 J" ]3 F  a8 l2 j$ G3 e
  angles=radians) v* Z# u* V4 S4 `( P
  origin=0,0,0
0 m0 E9 L2 X$ y( g  a=20' q  B% D: M% y- J, g$ x9 t
  r=a*t, c* E2 P& b$ R, O
  x=r*cos(t)
" U! h; Y) l; O8 T+ I2 R8 s/ U  y=r*sin(t)
+ p& e: i# K* b3 X( r0 ~1 U& J& S  绘制出来的图形如图2所示。
$ P8 }; |/ j6 \: ?; R
图2 绘制的阿基米德曲线图
  3.摆线
* h/ u2 }( p% W9 H, N  摆线是钟表齿轮齿形轮廓的典型曲线,它的参数方程为:http://www.idnovo.com.cn/uploadfile/magazine/uploadfile/200908/20090826044746794.jpg 。其中,α为基圆半径,t为变量角(弧度)。8 i, D" L; t( T' n( |7 p
  根据上述参数方程,编写eqn文件如下:
- K7 V6 u. n; {2 x! D  step_var1=t) R8 U; x3 b- o* ?5 H3 T# e
  step_size1=0.05/ j3 p# t8 F- m" m9 s
  lower_limit1=0
! C  V) w6 c* b. C0 O  upper_limit1=6.28319
3 i) ?7 `1 H2 m3 s, ^  geometry=lines+ X& U( w+ Z$ z% e" }! R" A
  angles=radians6 U2 Y- q# [4 n8 }
  origin=0,0,03 v/ N! K# b; b
  a=20
6 J, n- b* B+ y  x=a*(t-sin(t))
- N6 i2 K" w8 T  `( |  y=a*(1-cos(t))+ r- M: I/ @$ `/ |1 k. X: z( q
  绘制出来的图形如图3所示。
1 L6 }) ?6 R7 ?
图3 绘制的摆线图
  4.凸轮轮廓线% A0 ?2 L4 m$ J5 s
  在机械设计中凸轮设计会经常遇到,靠传统的作图法既繁琐,精度又不高,利用C—HOOKS功能却可以得到意想不到的结果。下面是设计某一偏置直动滚子推杆盘形凸轮的实际轮廓线。先绘制凸轮理论轮廓曲线,该曲线分为四部分:L1、ARC2、L2、ARC1(见图4),分别代表推程、远休止、回程、近休止轮廓。& q% U6 g( y! y/ V
  推程曲线的参数方程为: http://www.idnovo.com.cn/uploadfile/magazine/uploadfile/200908/20090826044852271.jpg。其中,http://www.idnovo.com.cn/uploadfile/magazine/uploadfile/200908/20090826044910240.jpg
6 P0 Q: y. j" b2 ^! g7 I  回程曲线的参数方程为:http://www.idnovo.com.cn/uploadfile/magazine/uploadfile/200908/20090826044925332.jpg 。其中, http://www.idnovo.com.cn/uploadfile/magazine/uploadfile/200908/20090826044944102.jpg; D% S2 B7 [2 }9 G$ u6 r2 ]/ |
  近休止、远休止轮廓是段圆弧,其参数方程分别为:
% l( a* q; Z3 b  近休止轮廓,http://www.idnovo.com.cn/uploadfile/magazine/uploadfile/200908/20090826045000217.jpg ,其中http://www.idnovo.com.cn/uploadfile/magazine/uploadfile/200908/20090826045023470.jpg ;1 P. ]8 c- M0 b4 l& A% R; c
  远休止轮廓, http://www.idnovo.com.cn/uploadfile/magazine/uploadfile/200908/20090826045041300.jpg,其中 http://www.idnovo.com.cn/uploadfile/magazine/uploadfile/200908/20090826045057717.jpg
1 `0 P1 q9 m% E, m# `" K  为了简化方程,变量t的范围,可以根据已画出的推程、回程曲线,通过查询端点处对应的角度(弧度)来设置。* k9 q+ F$ [) o: h
  上述四段轮廓分别建立eqn文件,程序如下:
5 |# `+ q8 g5 e& I  L1.eqn文件:(对应曲线L1)
) W6 M8 W* s. u3 y) ~6 P& A  step_var1=t
! t, t5 e5 @" _  step_size1=0.1& T; C6 h& D& @9 u0 {
  lower_limit1=01 c) S6 ?7 J2 V% m$ F: x, d/ L- L
  upper_limit1=2.094393 r! X! p6 e1 B/ w5 j  s
  geometry=lines
: `; B) `& M; e% ?8 ^  angles=radians
6 r% l/ u5 H" o( k  origin=0,0,04 A2 d1 {0 M& |: R
  x=(45.825+50*(3*t/6.28319-sin(3*t)/6.28319))*sin(t)+20*cos(t)
+ }# l* Z* X, D( \3 ?* k. w9 R  y=(45.825+50*(3*t/6.28319-sin(3*t)/6.28319))*cos(t)-20*sin(t)
) f1 }/ W: J% A- f; v% Y: k; l9 ?  L2.eqn文件:(对应曲线L2)
3 [2 Q0 E. M0 k' R$ V7 i8 y  step_var1=t! G1 x9 s; P. k" ?9 n1 V5 k/ _
  step_size1=0.1; k$ Y9 ]: J' `+ F4 X# h- a
  lower_limit1=3.14159
. G) M! U9 V/ @9 ~' X4 i( c  upper_limit1=5.23598
! z8 @8 P4 @; }! I  geometry=lines
- _7 [1 k# p8 D4 ~% T  angles=radians% Z# A) c! N; V: q. o" e( U. \+ ^
  origin=0,0,01 v% E$ U3 x+ }% Z" F
  x=(45.825+25*(1+cos(1.5*(t-3.14159))))*sin(t)+20*cos(t)
9 j! }) m9 a5 i' f  y=(45.825+25*(1+cos(1.5*(t-3.14159))))*cos(t)-20*sin(t)
" ]; f+ o5 s& |  ARC1.eqn文件:(对应圆弧ARC1)
: n: M! i: w; ?! I9 s  step_var1=t
. k3 K/ S6 a9 X" s/ A  step_size1=0.1
6 o- R* l9 d" C4 B4 A: H  lower_limit1=1.1589; H, O" H: J& d4 h4 h4 z' @
  upper_limit1=2.2061
3 K0 [( J7 s/ e5 C. c  geometry=lines" S1 E3 z# D9 p% H, V6 L
  angles=radians! P2 L& C0 a" a& x" {( u8 r
  origin=0,0,0
( t4 ]& _5 l7 u! _& ^: F  x=50*cos(t)
. F6 @5 _+ t8 i. X* f/ M  y=50*sin(t)5 |- S6 E" {5 G1 R
  ARC2.eqn文件:(对应圆弧ARC2)8 ~* ^9 M5 x% }
  step_var1=t
$ p) [0 d0 W- T& }4 q* w  step_size1=0.1
; J7 h. M& V( @) E  lower_limit1=4.50644- o5 \8 U' O+ K  [
  upper_limit1=5.55363
% m' a: U2 Y5 M( q" A  geometry=lines
& c% R! H& E/ d1 |* G, g3 P0 r  angles=radians
8 |# G1 C  n) k  |. S- D# y  origin=0,0,0
, S1 ~, J0 z) |8 G* h  x=97.89*cos(t)! `5 x( b3 |2 {
  y=97.89*sin(t)9 [3 o. P" W7 n( Y1 M& Q
  按照上面绘制的是理论轮廓曲线(外轮廓实线所示),要得到实际轮廓曲线(内轮廓虚线所示),根据两者的关系,只需利用命令“Xform”→“Xform Offset contour”向内偏移一个滚子的半径即可。绘制的凸轮轮廓曲线图如图4所示。" M2 Z, c  D6 ]& ]2 ?6 R
图4 绘制的某凸轮轮廓曲线图
  四、 结论6 B, y% l+ a* B/ V
  从上面的实例可以看出,只要复杂曲线能够得到函数方程(解析式),就可以通过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 )

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