蔡漢明,劉明召,井 浩,郝同暉,常瑞鵬(青島科技大學 機電工程學院,山東 青島 266061)
兩組完整的凸輪機構(gòu),同類構(gòu)件相互剛性連接,分別控制同一從動件運動規(guī)律中的退程和回程,其中剛性連接的兩個凸輪稱為共軛凸輪[1]。共軛凸輪機構(gòu)是機械化和自動化等生產(chǎn)設備中的關鍵部件,廣泛應用于各種自動機械的間歇轉(zhuǎn)位分度及自動生產(chǎn)線的步進輸送機構(gòu)。共軛的兩片凸輪必須嚴格保證一進一退,否則共軛凸輪機構(gòu)會卡死或損壞,所以共軛凸輪的設計要求有較高的輪廓精確度。目前,凸輪的設計方法主要分為兩類:解析法、圖解法[2]。解析法設計的凸輪輪廓曲線中的點是根據(jù)凸輪機構(gòu)的原始尺寸、從動件運動規(guī)律求得的精確點,當需要求解的點數(shù)多時,計算量大。傳統(tǒng)圖解法設計難以滿足對凸輪精度的要求,如今,計算機繪圖軟件的不斷發(fā)展,用Auto CAD畫圖的精度已經(jīng)極大提高,目前,凸輪輪廓的設計已經(jīng)可以借助Auto CAD等計算機輔助繪圖軟件,在畫圖軟件中根據(jù)“反轉(zhuǎn)法”的原理,逆向求得凸輪理論輪廓線上的點。但是當對凸輪輪廓的精度要求高時,需要多次進行畫圖求點,過程并不簡潔,且對于同一種的凸輪結(jié)構(gòu),改變了其基本尺寸、從動件的運動規(guī)律后,就要重新求點畫線,無法實現(xiàn)對同一種凸輪機構(gòu)的參數(shù)化設計。精度要求較高的共軛凸輪也面臨著參數(shù)化設計的難題。Auto CAD是一種具有高度開放結(jié)構(gòu)的CAD軟件開發(fā)平臺,它提供給編者一個強有力的二次開發(fā)環(huán)境。通過對Auto CAD進行二次開發(fā),設計良好的用戶界面和交互功能,將生成凸輪輪廓線上點的方法用程序取代,能實現(xiàn)對共軛凸輪的參數(shù)化設計[3]。Auto Lisp是嵌入Auto CAD的解釋型過程語言,盡管具有較強的開發(fā)能力,但其運行速度較慢、程序規(guī)模小、保密性不強、缺乏底層和系統(tǒng)支持,不宜進行高強度的數(shù)據(jù)處理[4]。Lisp語言通用性不高,可移植性差,增加了設計難度。
針對以上問題,本研究通過綜合分析,選擇出合適的二次開發(fā)工具,設計共軛凸輪程序開發(fā)的流程,對Auto CAD進行二次開發(fā),設計出計算機輔助設計軟件,實現(xiàn)共軛凸輪設計的完全自動化,并對設計結(jié)果進行驗證。
Autodesk公司為用戶提供了多種二次開發(fā)Auto CAD的方式,如:Auto LISP、ADS、Object ARX、ActiveX Automation。ActiveX Automation是微軟公司推出的一個技術(shù)標準,其核心技術(shù)是允許一個Windows應用程序通過暴露對象控制和操作另一個Windows應用程序,可以通過ActiveX與Auto CAD進行通信,實現(xiàn)應用程序之間相互控制、相互調(diào)用。本研究采用Visual C#語言基于ActiveX Automation技術(shù)對Auto CAD進行二次開發(fā),C#語言語法簡單,功能強大,且操作類型安全,并且綜合了VB簡單的可視化操作和C++的高效率運行的優(yōu)點,逐漸開始成為.NET開發(fā)的首選。因此,本研究選用Visual Studio作為開發(fā)工具,利用ActiveX Automation技術(shù)和C#語言設計合理的界面,編寫代碼,在Auto CAD界面中自動生成共軛凸輪曲線[5-7]。
對Auto CAD進行二次開發(fā),首先需要建立Visual Studio與Auto CAD互相通信的橋梁。在Visual Studio上設置Windows窗體應用程序,在“解決方案資源管理器”的“引用”中添加引用:Auto CAD 2014 Type Library、Auto CAD/ObjectDBX Common 19.0 Type Library(本研究二次開發(fā)的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二次開發(fā)奠定了基礎[8-10]。
樣條曲線是指給定一組控制點而得到一條曲線,曲線的大致形狀由這些點予以控制,一般可分為插值樣條和逼近樣條兩種。三次B樣條曲線造型靈活,可以構(gòu)造任意形狀的曲線,曲線的二階導數(shù)連續(xù),而且三次B樣條曲線具有光順的特點。因此,在凸輪輪廓的設計中一般采用三次B樣條插值算法將離散點進行連接,形成完整的凸輪輪廓線。
本研究中,通過計算機輔助手段在CAD界面中顯示出離散點,是按照一定角度分度的順序排列的凸輪輪廓線上點,用三次B樣條插值算法將這一系列順序連接,形成的閉合輪廓,可以達到較好的優(yōu)化效果。本研究將凸輪上輪廓上的離散點依次加入到一個集合中,再調(diào)用Visual C#中的三次B樣條插值算法命令,指定加入點的集合和開始點結(jié)束點的矢量,就可形成閉合的三次B樣條插值曲線,也就生成了凸輪的輪廓線[11-13]。
共軛凸輪連桿機構(gòu)如圖2所示。
圖2 共軛凸輪連桿機構(gòu)示意圖
兩個凸輪圍繞軸O逆時針旋轉(zhuǎn),凸輪1與凸輪2分別有180°在推程和回程,桿件1、2、3夾角固定安裝在軸A上,通過共軛凸輪的旋轉(zhuǎn)運動帶動桿件的運動,最終實現(xiàn)滑塊C余弦運動規(guī)律的水平運動。兩凸輪上設計有銷孔,確保在安裝時保持準確的相位差。
在已知各桿件長度、桿件1、2與桿件3夾角α1、α2、桿1桿2交點A、凸輪基圓圓心O的前提下,本研究根據(jù)滑塊C的運動運動規(guī)律與行程范圍反求出凸輪的輪廓曲線,步驟如下:
步驟1:根據(jù)滑塊的運動規(guī)律求桿4上C點的位置;(選擇余弦加速度運動規(guī)律)
步驟2:已知A點C點位置和桿3與桿4的長度,通過圓圓求交方程確定B點位置;
由以上聯(lián)立方程可得公共弦方程:
(3)
聯(lián)立式(1,3),得:
(4)
令:
代入以上數(shù)據(jù),求得兩個圓的交點坐標(x1,y1)、(x2,y2):
比較x1、x2的大小,B點橫坐標取二者中的小值;
步驟3:由步驟2確定出桿3位置,因為桿1、2與桿3間夾角固定,故可求得桿1、2的位置;
步驟4:桿1、2上滾子的中心D、E即為凸輪理論輪廓線上的點,重復以上步驟得到多個這樣的點,用三次B樣條曲線將一系列點連接就得到共軛凸輪的理論輪廓線。
步驟5:將得到的理論輪廓線沿法線方向向內(nèi)偏移滾子半徑距離r,即得到共軛凸輪的實際輪廓線。
基于Visual C#對Auto CAD進行二次開發(fā)逆向求凸輪輪廓曲線時,可以在程序里將循環(huán)次數(shù)定義的足夠大,得到足夠多的理論輪廓線上的點,點數(shù)越多,精確度越高。本研究中設定了360次循環(huán),每1°生成一個曲線上的點。曲線上的點非常密集時,本研究對求已知點(xi,yi)沿曲線法線方向偏移一定距離的算法進行了創(chuàng)新。
求某點偏移點的示意圖如圖3所示。
圖3 求某點偏移點的示意圖
圖3中點(xi,yi)偏移后的坐標點(x,y)的求法為:
(5)
x=xi-Lcos?
(6)
y=yi-Lsin?
(7)
式中:L—偏移距離,等于滾子半徑長度。
本研究通過公式(5)求出?值,并代入式(6,7)中。
本研究設計的交互界面如圖4所示。
圖4 共軛凸輪設計界面圖
本研究根據(jù)以上畫圖步驟體現(xiàn)出的原理,在“確定”按鈕中,添加代碼,用代碼的形式表述出反求凸輪輪廓的步驟。
筆者在本研究中點擊Visual Studio中的“啟動”按鈕,Auto CAD軟件和圖4界面會自動響應。在界面中填寫各項參數(shù),實例驗證中的界面如圖5所示。
圖5 實例驗證中的界面
本研究點擊圖5界面上的“確定”按鈕,Auto CAD軟件中自動生成共軛凸輪的理論輪廓線和實際輪廓曲線,如圖6所示,對兩凸輪的實際輪廓曲線分別保存。
圖6 自動生成的共軛凸輪圖
本研究打開SolidWorks軟件,在“打開”命令中,選擇保存好的DWG格式的兩凸輪實際輪廓線文件,拉伸,生成共軛凸輪的三維造型。
共軛凸輪的三維造型圖如圖7所示。
圖7 共軛凸輪三維造型圖
本研究對桿件1、2、3、4、凸輪滾子、放凸輪的軸、放桿件的軸分別進行三維造型。在裝配體模塊中,在了解各零件的約束形式和自由度后,進行裝配。
虛擬凸輪樣機如圖8所示。
圖8 虛擬凸輪樣機
本研究啟動SolidWorks中的Motion插件,打開裝配好的三維造型圖,選擇Motion分析,在放凸輪的軸上添加驅(qū)動,即旋轉(zhuǎn)馬達,重新計算運動算例,觀察各零件的運動是否干涉,并生成共軛凸輪與滑塊的運動學分析。
凸輪1、2和滑塊的線形位移結(jié)果圖如圖(9~11)所示。
圖9 凸輪1線性位移結(jié)果圖
圖10 凸輪2線性位移結(jié)果圖
圖11 滑塊線性位移結(jié)果圖
從以上分析圖可以看出:
(1)共軛凸輪與滑塊的位移—時間圖像均呈現(xiàn)余弦加速度運動規(guī)律,運動曲線光滑平順、狀態(tài)平穩(wěn),不產(chǎn)生沖擊;
(2)曲線反映的從動件的位移范圍約為-43 mm~54 mm,符合設計共軛凸輪時設定的滑塊行程為48 mm的參數(shù)要求[14-15]。
在對Auto CAD進行二次開發(fā)的過程中本研究使用了.NET平臺和Visual C#語言,該代碼編寫簡單,運行效率高,并能實現(xiàn)共軛凸輪的參數(shù)化設計,保證了凸輪實際輪廓線的準確性,并通過SolidWorks軟件仿真,仿真結(jié)果達到了預期目標。
本研究所得結(jié)果驗證了計算機輔助凸輪參數(shù)化設計的精確性與高效性,降低了凸輪結(jié)構(gòu)的設計難度;同時,本研究采用的算法和思想也適用于其他類型的凸輪輪廓設計。
[1] 林仁邦.共軛凸輪機構(gòu)運動副接觸剛度分析及動態(tài)特性研究[D].上海:東華大學機械工程學院,2009.
[2] 彭紅星.盤形凸輪的參數(shù)化設計及仿真驗證[J].機械工程與自動化,2010(2):69-71.
[3] 張棉好,徐 洪,劉智強.參數(shù)化凸輪輪廓曲線的設計[J].現(xiàn)代制造工程,2005(9):90-92.
[4] 徐 凱,張裕中.CAD二次開發(fā)技術(shù)(Ⅰ)[J].包裝與食品機械,2004(1):15-17.
[5] 晁彩霞,魏永樂.Auto CAD二次開發(fā)工具探討[J].機械,2008(S1):35-37,70.
[6] 徐賢德.Auto CAD二次開發(fā)在鐵路橋墩設計中的應用[J].鐵道工程學報,2014,31(2):56-60.
[7] 高成慧,李 燕.關于Auto CAD二次開發(fā)工具的探討[J].現(xiàn)代計算機:專業(yè)版,2002(2):31-33.
[8] 邱瑞杰.探析Auto CAD的二次開發(fā)技術(shù)及相關應用[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平臺的蝸輪蝸桿減速器的全參數(shù)化設計[J].科技視界,2012(23):225-226.
[11] 孫佳楠,呂永鋒,范建蓓.基于VB與ANSYS的二次開發(fā)的沖壓成形參數(shù)化設計[J].輕工機械,2016,34(2):77-80.
[12] 程立斌,潘 嘹,徐 貞.鋼提桶塑料提梁自動彎曲機構(gòu)的設計[J].包裝與食品機械,2016(2):70-72.
[13] 邱 斌.三次樣條插值在凸輪輪廓軌跡分析中的應用[J].寧波職業(yè)技術(shù)學院學報,2010,14(5):79-82.
[14] 趙明俠.基于Solidwords的盤形凸輪CAD設計[D].西安:西安工業(yè)大學機電工程學院,2014.
[15] 顧紅靜.基于Solidworks的凸輪機構(gòu)的實體建模[J].教育教學論壇,2011(27):211-212.