蔡汉明,刘明召,井 浩,郝同晖,常瑞鹏(青岛科技大学 机电工程学院,山东 青岛 266061)
两组完整的凸轮机构,同类构件相互刚性连接,分别控制同一从动件运动规律中的退程和回程,其中刚性连接的两个凸轮称为共轭凸轮[1]。共轭凸轮机构是机械化和自动化等生产设备中的关键部件,广泛应用于各种自动机械的间歇转位分度及自动生产线的步进输送机构。共轭的两片凸轮必须严格保证一进一退,否则共轭凸轮机构会卡死或损坏,所以共轭凸轮的设计要求有较高的轮廓精确度。目前,凸轮的设计方法主要分为两类:解析法、图解法[2]。解析法设计的凸轮轮廓曲线中的点是根据凸轮机构的原始尺寸、从动件运动规律求得的精确点,当需要求解的点数多时,计算量大。传统图解法设计难以满足对凸轮精度的要求,如今,计算机绘图软件的不断发展,用Auto CAD画图的精度已经极大提高,目前,凸轮轮廓的设计已经可以借助Auto CAD等计算机辅助绘图软件,在画图软件中根据“反转法”的原理,逆向求得凸轮理论轮廓线上的点。但是当对凸轮轮廓的精度要求高时,需要多次进行画图求点,过程并不简洁,且对于同一种的凸轮结构,改变了其基本尺寸、从动件的运动规律后,就要重新求点画线,无法实现对同一种凸轮机构的参数化设计。精度要求较高的共轭凸轮也面临着参数化设计的难题。Auto CAD是一种具有高度开放结构的CAD软件开发平台,它提供给编者一个强有力的二次开发环境。通过对Auto CAD进行二次开发,设计良好的用户界面和交互功能,将生成凸轮轮廓线上点的方法用程序取代,能实现对共轭凸轮的参数化设计[3]。Auto Lisp是嵌入Auto CAD的解释型过程语言,尽管具有较强的开发能力,但其运行速度较慢、程序规模小、保密性不强、缺乏底层和系统支持,不宜进行高强度的数据处理[4]。Lisp语言通用性不高,可移植性差,增加了设计难度。
针对以上问题,本研究通过综合分析,选择出合适的二次开发工具,设计共轭凸轮程序开发的流程,对Auto CAD进行二次开发,设计出计算机辅助设计软件,实现共轭凸轮设计的完全自动化,并对设计结果进行验证。
Autodesk公司为用户提供了多种二次开发Auto CAD的方式,如:Auto LISP、ADS、Object ARX、ActiveX Automation。ActiveX Automation是微软公司推出的一个技术标准,其核心技术是允许一个Windows应用程序通过暴露对象控制和操作另一个Windows应用程序,可以通过ActiveX与Auto CAD进行通信,实现应用程序之间相互控制、相互调用。本研究采用Visual C#语言基于ActiveX Automation技术对Auto CAD进行二次开发,C#语言语法简单,功能强大,且操作类型安全,并且综合了VB简单的可视化操作和C++的高效率运行的优点,逐渐开始成为.NET开发的首选。因此,本研究选用Visual Studio作为开发工具,利用ActiveX Automation技术和C#语言设计合理的界面,编写代码,在Auto CAD界面中自动生成共轭凸轮曲线[5-7]。
对Auto CAD进行二次开发,首先需要建立Visual Studio与Auto CAD互相通信的桥梁。在Visual Studio上设置Windows窗体应用程序,在“解决方案资源管理器”的“引用”中添加引用:Auto CAD 2014 Type Library、Auto CAD/ObjectDBX Common 19.0 Type Library(本研究二次开发的Auto CAD是2014版本,不同的版本添加的引用略有差异)。
添加“引用”示例图如图1所示。
图1 添加“引用”示例图
如图1所示,点击鼠标右键刚添加的引用“Auto CAD”,将其“属性”下的“嵌入互操作类”设定为“False”,并添加“using AutoCAD”指令。程序代码中首先要设置全局变量如“AcadApp”,做好.NET平台与Auto CAD平台连接工作,用来启动Auto CAD平台。具体代码为:
public partial class Form1: Form
{
private AcadApplication AcadApp;
pubilc Form1()
{
InitializeComponent();
AcadApp=new AcadApplicationClass();
AcadApp.Visible=true;
}
}
本研究中,通过以上的工作,建立了Visual Studio与Auto CAD之间的通讯,为Auto CAD二次开发奠定了基础[8-10]。
样条曲线是指给定一组控制点而得到一条曲线,曲线的大致形状由这些点予以控制,一般可分为插值样条和逼近样条两种。三次B样条曲线造型灵活,可以构造任意形状的曲线,曲线的二阶导数连续,而且三次B样条曲线具有光顺的特点。因此,在凸轮轮廓的设计中一般采用三次B样条插值算法将离散点进行连接,形成完整的凸轮轮廓线。
本研究中,通过计算机辅助手段在CAD界面中显示出离散点,是按照一定角度分度的顺序排列的凸轮轮廓线上点,用三次B样条插值算法将这一系列顺序连接,形成的闭合轮廓,可以达到较好的优化效果。本研究将凸轮上轮廓上的离散点依次加入到一个集合中,再调用Visual C#中的三次B样条插值算法命令,指定加入点的集合和开始点结束点的矢量,就可形成闭合的三次B样条插值曲线,也就生成了凸轮的轮廓线[11-13]。
共轭凸轮连杆机构如图2所示。
图2 共轭凸轮连杆机构示意图
两个凸轮围绕轴O逆时针旋转,凸轮1与凸轮2分别有180°在推程和回程,杆件1、2、3夹角固定安装在轴A上,通过共轭凸轮的旋转运动带动杆件的运动,最终实现滑块C余弦运动规律的水平运动。两凸轮上设计有销孔,确保在安装时保持准确的相位差。
在已知各杆件长度、杆件1、2与杆件3夹角α1、α2、杆1杆2交点A、凸轮基圆圆心O的前提下,本研究根据滑块C的运动运动规律与行程范围反求出凸轮的轮廓曲线,步骤如下:
步骤1:根据滑块的运动规律求杆4上C点的位置;(选择余弦加速度运动规律)
步骤2:已知A点C点位置和杆3与杆4的长度,通过圆圆求交方程确定B点位置;
由以上联立方程可得公共弦方程:
(3)
联立式(1,3),得:
(4)
令:
代入以上数据,求得两个圆的交点坐标(x1,y1)、(x2,y2):
比较x1、x2的大小,B点横坐标取二者中的小值;
步骤3:由步骤2确定出杆3位置,因为杆1、2与杆3间夹角固定,故可求得杆1、2的位置;
步骤4:杆1、2上滚子的中心D、E即为凸轮理论轮廓线上的点,重复以上步骤得到多个这样的点,用三次B样条曲线将一系列点连接就得到共轭凸轮的理论轮廓线。
步骤5:将得到的理论轮廓线沿法线方向向内偏移滚子半径距离r,即得到共轭凸轮的实际轮廓线。
基于Visual C#对Auto CAD进行二次开发逆向求凸轮轮廓曲线时,可以在程序里将循环次数定义的足够大,得到足够多的理论轮廓线上的点,点数越多,精确度越高。本研究中设定了360次循环,每1°生成一个曲线上的点。曲线上的点非常密集时,本研究对求已知点(xi,yi)沿曲线法线方向偏移一定距离的算法进行了创新。
求某点偏移点的示意图如图3所示。
图3 求某点偏移点的示意图
图3中点(xi,yi)偏移后的坐标点(x,y)的求法为:
(5)
x=xi-Lcos∂
(6)
y=yi-Lsin∂
(7)
式中:L—偏移距离,等于滚子半径长度。
本研究通过公式(5)求出∂值,并代入式(6,7)中。
本研究设计的交互界面如图4所示。
图4 共轭凸轮设计界面图
本研究根据以上画图步骤体现出的原理,在“确定”按钮中,添加代码,用代码的形式表述出反求凸轮轮廓的步骤。
笔者在本研究中点击Visual Studio中的“启动”按钮,Auto CAD软件和图4界面会自动响应。在界面中填写各项参数,实例验证中的界面如图5所示。
图5 实例验证中的界面
本研究点击图5界面上的“确定”按钮,Auto CAD软件中自动生成共轭凸轮的理论轮廓线和实际轮廓曲线,如图6所示,对两凸轮的实际轮廓曲线分别保存。
图6 自动生成的共轭凸轮图
本研究打开SolidWorks软件,在“打开”命令中,选择保存好的DWG格式的两凸轮实际轮廓线文件,拉伸,生成共轭凸轮的三维造型。
共轭凸轮的三维造型图如图7所示。
图7 共轭凸轮三维造型图
本研究对杆件1、2、3、4、凸轮滚子、放凸轮的轴、放杆件的轴分别进行三维造型。在装配体模块中,在了解各零件的约束形式和自由度后,进行装配。
虚拟凸轮样机如图8所示。
图8 虚拟凸轮样机
本研究启动SolidWorks中的Motion插件,打开装配好的三维造型图,选择Motion分析,在放凸轮的轴上添加驱动,即旋转马达,重新计算运动算例,观察各零件的运动是否干涉,并生成共轭凸轮与滑块的运动学分析。
凸轮1、2和滑块的线形位移结果图如图(9~11)所示。
图9 凸轮1线性位移结果图
图10 凸轮2线性位移结果图
图11 滑块线性位移结果图
从以上分析图可以看出:
(1)共轭凸轮与滑块的位移—时间图像均呈现余弦加速度运动规律,运动曲线光滑平顺、状态平稳,不产生冲击;
(2)曲线反映的从动件的位移范围约为-43 mm~54 mm,符合设计共轭凸轮时设定的滑块行程为48 mm的参数要求[14-15]。
在对Auto CAD进行二次开发的过程中本研究使用了.NET平台和Visual C#语言,该代码编写简单,运行效率高,并能实现共轭凸轮的参数化设计,保证了凸轮实际轮廓线的准确性,并通过SolidWorks软件仿真,仿真结果达到了预期目标。
本研究所得结果验证了计算机辅助凸轮参数化设计的精确性与高效性,降低了凸轮结构的设计难度;同时,本研究采用的算法和思想也适用于其他类型的凸轮轮廓设计。
[1] 林仁邦.共轭凸轮机构运动副接触刚度分析及动态特性研究[D].上海:东华大学机械工程学院,2009.
[2] 彭红星.盘形凸轮的参数化设计及仿真验证[J].机械工程与自动化,2010(2):69-71.
[3] 张棉好,徐 洪,刘智强.参数化凸轮轮廓曲线的设计[J].现代制造工程,2005(9):90-92.
[4] 徐 凯,张裕中.CAD二次开发技术(Ⅰ)[J].包装与食品机械,2004(1):15-17.
[5] 晁彩霞,魏永乐.Auto CAD二次开发工具探讨[J].机械,2008(S1):35-37,70.
[6] 徐贤德.Auto CAD二次开发在铁路桥墩设计中的应用[J].铁道工程学报,2014,31(2):56-60.
[7] 高成慧,李 燕.关于Auto CAD二次开发工具的探讨[J].现代计算机:专业版,2002(2):31-33.
[8] 邱瑞杰.探析Auto CAD的二次开发技术及相关应用[J].黑龙江科技信息,2011(32):106.
[9] WANG Ying, ZHAO Xiong, LIN Wan-huan, et al. Establishment and application of the platform for reverse solution and parametric design platform of the conjugate cam beating-up mechanism[J].AdvancedMaterialsResearch,2011,1445(332):303-308.
[10] 王 旭.基于VISUAL STUDIO.NET平台的蜗轮蜗杆减速器的全参数化设计[J].科技视界,2012(23):225-226.
[11] 孙佳楠,吕永锋,范建蓓.基于VB与ANSYS的二次开发的冲压成形参数化设计[J].轻工机械,2016,34(2):77-80.
[12] 程立斌,潘 嘹,徐 贞.钢提桶塑料提梁自动弯曲机构的设计[J].包装与食品机械,2016(2):70-72.
[13] 邱 斌.三次样条插值在凸轮轮廓轨迹分析中的应用[J].宁波职业技术学院学报,2010,14(5):79-82.
[14] 赵明侠.基于Solidwords的盘形凸轮CAD设计[D].西安:西安工业大学机电工程学院,2014.
[15] 顾红静.基于Solidworks的凸轮机构的实体建模[J].教育教学论坛,2011(27):211-212.