维普资讯 http://www.cqvip.com 兵工自动化 自动舅■与控制 Automatic Measurement and Control o.I.Automation 2008,Vo1.27,No.7 2008年第27卷第7期 文章编号:1006-1576(2008)07—0080—03 凸轮廓线画法的AutoCAD二次开发技术 洪友伦 (绵阳职业技术学院,四川绵阳621000) 摘要:利用AutoLISP语言开发出绘制各种常用凸轮廓线的程序。该程序由主程序、28个子程序和13个对话框 程序组成。运行的程序首先显示供用户选择凸轮类别的对话框,该对话框显示出程序可绘制的6种常用平面凸轮, 当用户点击图标按钮后便可显示相应的对话框。该对话框按功能分为图形显示窗口、从动件运动规律、设置凸轮运 动参数,以及设置凸轮几何参数4部分。 关键词:AutoLISP;凸轮廓线;二次开发 中图分类号:TP391.72 文献标识码:A 2“。Developing Technology of AutoCAD with Cam Line Drawing HoNG You—lun (Mianyang Vocational Technology College,Mianyang 62 l 000,China) Abstract:Use AutoLISP language to develop programs of each regular used cam line drawing.The programs consist of main program,28 sub—programs and 13 dialog box programs.The program first displays the dialog box for user selecting the cam type.The dialog box displays 6 plane cams.When users click the button,the corresponding dialog boxes are displayed.According to their functions,the dialog boxes include image display interface,driven moving rule,setting cam moving parameters and setting cam geometry parameters. Keywords:AutoLISP;Cam line;2“d developing 0 引言 AutoCAD软件提供了功能强大的计算机辅助 设计工具。由于嵌在该软件内的AutoLISP语言具 程序还可绘出各种空间凸轮的表面展开图。 2程序的组成 程序由主程序、28个子程序和l3个对话框程 序组成。 (1)主程序 用于设置绘图环境以及调用实现各功能模块的 子程序。 (2)调用并显示各对话框子程序 该子程序被主程序调用后,调用显示对话框子 程序和将幻灯片填充到对话框图标按钮中的填充子 有高智能化、图形处理功能强和简便易学等特点, 已成为当今计算机辅助设计的重要工具之一。故利 用AutoLISP语言开发出绘制常用凸轮廓线的程序。 1 常用凸轮廓线绘制程序的功能实现 常用凸轮廓线绘制程序可根据用户输入的选择 项及图形参数,绘出平面凸轮、空间凸轮的二维和 三维图形。 1.1平面凸轮 程序。同时激活对话框控件,等待并接受用户输入。 (3)显示对话框子程序 可绘制6种凸轮的廓线:①对心尖顶从动件; ②对心滚子从动件;③偏心尖顶从动件;④偏 心滚子从动件;⑤摆动滚子从动件;⑥对心平底 从动件。程序还可打印出与凸轮转角相对应的从动 件升程、凸轮廓线上各点的压力角和曲率半径值。 1.2空间凸轮 该子程序用对话框控制语言编写,并存放于 AutoCAD可搜索到的工作文件路径下。 (4)填充子程序 子程序将事先制作的幻灯片填充到对话框中的 图标按钮内。在程序的整个运行过程中,该子程序 将被其他子程序多次调用。 (5)转换数据类型子程序 转换子程序首先获取用户在对话框控件中输入 的数据,再用相应的函数将其转换成数值型参数。 可绘制4种空间凸轮:①直动滚子从动件圆 柱凸轮;②摆动滚子从动件圆柱凸轮;③直动滚 子从动件圆锥凸轮;④摆动滚子从动件圆锥凸轮。 (6)控制对话框控件显示模式子程序 收稿日期:2008—04—01;修回日期:2008~04 11 作者简介:洪友伦(1955一),男,安徽人,副教授,1987年毕业于广东教育学院,从事计算机技术在工程图学教学中的应用研究。 ・8O・ 维普资讯 http://www.cqvip.com 兵工自动化 2008年第27卷第7期 目动舅■与控制 Automatic Measurement and Control 0.I.Automation 2008,Vo1.27,No.7 当对话框中的某些控件不需用户输入时,可调 用该子程序对控件的显示状态加以控制。 (7)画图子程序 用户在此输入的参数包括凸轮基圆半径、从动 件升程(摆角)、偏距(中心距)以及推程角、远休 止角、回程角和近休止角。 f4)设置凸轮几何参数 该部分包括了绘制凸轮平面图形或是三维图形 程序运行的最后一模块是调用画图子程序,该 子程序将完成绘制凸轮廓线和打印数据的工作。 3程序的运行步骤 程序运行流程如图1。程序运行首先显示供用 户选择凸轮类别的对话框,可选择平面凸轮或空间 的2个单选按钮及凸轮的轴径、厚度和轴孔倒角尺 寸输入框等。 同理,若选取空间凸轮,程序显示4种类型的 空间凸轮供用户选择。再选择其中某类空间凸轮, 凸轮。 图1 程序运行流程图 若选取平面凸轮,可按提示继续选择6种常用 的平面凸轮,其中的偏心滚子从动件对话框如图2。 图2偏心滚子从动件对话框 该对话框按功能分为以下4部分: (1)图形显示窗口 通过窗口显示的图形提示用户此对话框的应用 类型。 (2)从动件运动规律 8个单选按钮分别列出供用户选择的从动件推 程及回程的运动规律。 (3)设置凸轮运动参数 程序又显示供输入参数的对话框,与图2类似。 4 建模分析 鉴于凸轮的设计理论和绘制凸轮平面图形的方 法已为人熟知,这里仅着重分析凸轮三维图形的建 模步骤、绘制圆锥凸轮及其展开图的主要方法。 4.1平面凸轮三维图形的建模步骤 用户在图2中输入参数并点取绘制三维图形按 钮后,程序运行步骤如下: (1)按用户输入的参数画出凸轮廓线,并将廓 线制成一面域(Region); (2)根据用户输入的轴孔直径和键槽的标准尺 寸,绘出轴孔圆和四边形; (3)按凸轮厚度参数拉伸出凸轮、轴孔及键槽 的三维图形; (4)用差集命令(Subtract)在凸轮中做出轴孔 和键槽; (5)根据轴孔倒角尺寸画出倒角的断面图形, 再用旋转成型命令(Revolve)画出凸轮上下端面倒 角的三维图形; (6)用差集命令做出凸轮轴孔倒角,如图3。 图3 程序绘制的平面凸轮的三维图形 4.2空间凸轮的建模分析 空间凸轮基体有圆柱体和圆锥体,建模的主要 步骤如下: (I)按用户输入的参数画出凸轮基体; (2)确定滚子的初始位置,并按尺寸画出滚子 圆柱: (3)按从动件运动规律计算滚子中心的位移 (或摆角),并确定其坐标; ・81・ 维普资讯 http://www.cqvip.com 兵工自动化 自动蔫量与控制 Automatic Measurement and ControJ 0.I.Automation 2008,Vo1.27,No.7 2008年第27卷第7期 (4)将滚子圆柱复制至动点位置后,用差集命 令在凸轮基体上减去滚子圆柱; (5)按用户输入的凸轮旋转方向,将凸轮基体 (3)根据0角余角以及圆锥底圆半径求得与P2 点位于圆锥同一素线上的P3点坐标,则Pl、P2和 P3点便构成滚子的摆动平面。滚子中心的动点坐标 均在由此3点建立的UCS坐标系的XOY平面内进 行计算,如图6。 旋转一角度; (6)再次计算滚子中心位移(或摆角),以确定 其坐标,复制滚子至动点位置后,用差集命令减去 滚子圆柱。 如此反复便可绘出空间凸轮模型,如图4。 图4 空间凸轮的建模 图4显示的坐标系表明,为便于计算滚子中心 的动点坐标,需要根据作图情况改变AutoCAD的 坐标系。其中较为典型的是摆动滚子从动件圆锥凸 轮的作图。如图5(a)所示,当圆锥绕其轴线旋转, 此时的坐标系为世界坐标系,且z轴与圆锥轴线重 合。由于滚子中心点是在Pl、P2和P3点所确定的 平面内变化,因此在计算滚子中心的动点坐标时, 应将坐标系转换成图5(b)所示的UCS坐标系。在 程序运行过程中,上述2种坐标系交替转换完成凸 轮的绘制。 (a) P3【b) 图5 2种坐标系的转换 按凸轮的设计理论,当从动件的摆角 1 =去 时,摆杆应垂直于圆锥面上的1条素线 (主母线),且滚子中心轨迹圆弧的两端点和中点 到主母线的垂直距离相等。因此确定滚子摆动平面 的步骤如下: (1)过摆杆固定点P 假想作与网锥轴线垂直的 剖切面截切圆锥,求出截交线圆半径r ; (2)按几何关系计算图中P2点坐标和0角度值; ・82・ P P 1 图6 摆动滚子从动件圆锥凸轮的建模分析 4.3绘制摆动滚子从动件圆锥凸轮表面展开图 通常圆锥凸轮机构的工作循环周期为2兀,对应 于圆锥展开图的扇形平面,凸轮工作循环周期则为 2n・sinl3(B为圆锥半锥角)。 同理,展开平面上凸轮各运动阶段的角度为: 推程角 ,= ・sin1) 休止角 2= ・sin1) 回程角 2= .sinB 近休止角 2= .sin 6 此外,绘制摆动滚子从动件圆锥凸轮表面展开 图还需解决下面问题: (1)摆杆固定点A0在展开图上的位置 如图6,设Ao为摆杆固定点初始位置,滚子中 心初始为Bo,L为摆杆长,摆杆固定点A。到锥顶 的距离为LoAo。则A。点坐标的近似计算方法: 2+L sin( 1“)+导J 1+cos( 1“)I‘ 式中Rh为凸轮轮廓的最小工作半径,即滚子中 心点位于初始位置时所接触的圆锥面上圆的半径。 求得LoAo后,可按余弦定理计算出AOA0Bo中 的 AoOBo值,并可确定Ao点坐标。 (2)计算滚子中心在展开图上的动点坐标 相对于凸轮的旋转,摆杆固定点A0在展开图上 的轨迹线是以锥顶O点为圆心,LoA0为半径的圆 弧,而滚子初始点B。的轨迹线则是以L0 0为半径 的圆弧。故计算滚子中心动点坐标时,先按一V方向 和从动件的运动规律求出上述两圆弧上的等分点, 并计算出两圆弧上对应等分点(例如AiCi)的连线 与水平线所夹锐角,再以Ai为极坐标原点, (兀一p一(pi)为极角,摆杆长L为极径,求得理论廓 线上Bj坐标,如图7。 ≤下转第9 页誊 维普资讯 http://www.cqvip.com 兵工自动化 2008年第27卷第7期 . 软件开发与应用 Exploitation and Application of Software O.I.Automation 2008Vo1.27,No.7 ,) ②第1个字符代表鼠标左右键状态:4一左键 按下;0一左键弹起;’ ③100表示x的绝对坐标,200表示Y的绝对 坐标。 return 0: ,、. ) (4)编辑native.C文件,在函数InitNativelnput 中参照IMPS2的格式,添加TOUCH项。MOUSE类型给MouseType赋一个值 ‘从l开始, 4 结束语 整个方法经过实验验证通过(Windows XP+ VMWare5.5),是切实可行的。 则TOUCH为6。 (6)修改mouse—updata0函数,在sign=l语句 参考文献: 前,添加判断语句。 If(MouseType==6 ( xpos=dx; ypos=dy; return 1; ) (7)修改native.h文件,参照IMPS2项,添加 自己的TOUCH项。 至此,驱动程序就写完了。 3 添加 (1)编辑MiniGUI的安装目录下的configure,in 文件,参照imps2的方式添加自己的touch内容; (2)编辑mgconfig.h.in文件,参照imps2的方 式添加自己的touch内容; (3)编辑native目录下的Makefile.am文件,在 MOUSE_SRC一行添加末尾“mou—touch.C”; (4)执行aclocal命令; (5)执行autoconf命令; (6)执行automake—add—missing命令; (7)执行./configure命令,查看最后的输出项 mgconfig.h文件有没有被修改。或打开mgconfig.h 文件,看里面有没有包含一TOUCH—SUPPORT选 项。如果没有,则添加不成功,再重复执行上面的 步骤。如果有,则添加成功,可执行后面的步骤。 (8)执行make命令; (9)执行make install命令; (10)编辑MiniGUI.C蟾文件,如下: mdev=/dev/ttyS1 #(使用的是串口1) mtype=TOUCH 保存退出。 (11)运行MiniGUI的例子程序helloworld。 (12)通过ttyS1输入“0100200\r\n”,鼠标光标 就移动到指定位置了。 协议说明: ①所有数据为ACSII; ・90・ [1】范永开,杨爱林.Linux应用开发技术详解[M】.北京 人民邮电出版社. 木木木木木木木木木木木木木木木木木木木木木木木木木木木木木木木木木木木木木木木木木木木木宰木木木木木 鬻童接第82页) O 图7 摆动滚子从动件圆锥凸轮表面展开图 摆动滚子从动件圆锥凸轮展开图的绘图步骤: ①按凸轮基圆锥几何尺寸画出展开图; ②确定滚子中心B。点在展开图上的初始位 置,并按几何关系求得摆杆固定点A。坐标; ③按凸轮一V方向及从动件运动规律,计算摆 杆固定点和滚子圆轨迹线上的等分点AiCi; ④以Ai点为极坐标原点,计算滚子中心的动 点坐标,连接各动点得凸轮理论廓线; ⑤以滚子半径r为偏距,将理论廓线分别向两 侧偏移,便得到凸轮的实际廓线。 5 结束语 基于AutoCAD开发的凸轮辅助设计程序功能 完善、用户界面友好,可提高凸轮设计效率和质量。 参考文献: [1】徐振华.凸轮机构设计[M/.上海:上海科学技术出版 社.1995.233-240.