楊洪云,萬剛,陳琪,施正生
(上汽依維柯紅巖商用車有限公司技術(shù)中心,重慶 401122)
商用車DMU工具研究與開發(fā)
楊洪云,萬剛,陳琪,施正生
(上汽依維柯紅巖商用車有限公司技術(shù)中心,重慶 401122)
通過研究CATIA的二次開發(fā)功能,結(jié)合Visual Basic 6.0開發(fā)工具,編寫DMU工具,并利用其實現(xiàn)對各種結(jié)構(gòu)平衡懸架的自動化裝配和運(yùn)動分析,從而使設(shè)計效率和開發(fā)周期都大幅縮短,降低開發(fā)成本。
二次開發(fā);裝配;CATIA;Visual Basic;Publication
10.16638/j.cnki.1671-7988.2016.01.028
CLC NO.:TG156 Document Code:A Article ID:1671-7988(2016)01-79-04
在當(dāng)今汽車產(chǎn)品的設(shè)計開發(fā)中,有很多模塊已逐漸地發(fā)展成為成熟的結(jié)構(gòu),如商用車領(lǐng)域的平衡懸架、乘用車領(lǐng)域的麥佛遜懸架等。由于現(xiàn)今汽車產(chǎn)品配置的發(fā)展呈現(xiàn)出多樣化的趨勢,使得在產(chǎn)品的設(shè)計開發(fā)過程中,設(shè)計人員不可避免地需要做大量重復(fù)性的工作,例如對于同一種平衡懸架匹配不同類型的驅(qū)動橋時,就需要反復(fù)地對平衡懸架進(jìn)行裝配、運(yùn)動分析和裝車驗證。鑒于如今大部分汽車廠都采用CATIA軟件作為主要的設(shè)計開發(fā)工具,因此,如何利用CATIA實現(xiàn)產(chǎn)品的智能化裝配功能,成為解決這些問題的關(guān)鍵點。
CATIA的二次開發(fā)接口是一個COM服務(wù)器,利用VB中的對象作為客戶端與CATIA進(jìn)程進(jìn)行進(jìn)程間的通信,操作CATIA進(jìn)程中的函數(shù),訪問其中的數(shù)據(jù)。而VB提供的一組具有相關(guān)關(guān)系的對象形成一個抽象層,使得用戶可以在不了解COM底層通信方法的情況下,方便地對CATIA進(jìn)程進(jìn)行操作。
CATIA.Application對象:該對象實例是系統(tǒng)中CATIA進(jìn)程的代表,所有其他的對象都依賴于該對象的相關(guān)方法返回。在CATIA進(jìn)程已經(jīng) 啟動的情況下,CATIA.Application對象的實例可以以“CATIA.Application”字符串調(diào)用全局工廠函數(shù)CetObject獲 得,可以將獲得的對象付給一個變量Set CATIA= GetObject(“CATIA.Application”)。當(dāng)CATIA進(jìn)程沒有啟動時,可以調(diào)用全局工廠函數(shù)CreateObject函數(shù)帶“CATIA.Application”字符串獲得,并把其賦給變量Set CATIA=CreateObject(“CATIA.Application”)。最終,獲得的CATIA.Application對象存在CATIA 變量中。
Document對象:Document類的對象代表進(jìn)程中打開的CATIA文檔,Document類是其他文檔類的基類,從CATIA.Application對象的ActiveDocument方法獲得當(dāng)前激活的文檔,本次主要使用的到其子類ProductDocument 的對象,并將其賦值給一個變量以便以后使用。Set product Document=CATIA.ActiveDocument。后續(xù)的對象都要從該P(yáng)roductDocument對象中獲取。
ActiveX Automation是一套微軟標(biāo)準(zhǔn),以前通常稱為OLE Automation,該標(biāo)準(zhǔn)允許通過外顯(exposed)的對象,由一個Windows應(yīng)用程序控制另一個Windows應(yīng)用程序。Windows自身允許在同一時間內(nèi)執(zhí)行多個應(yīng)用程序,ActiveX Automation則主要處理它們之間的通信問題,每一個應(yīng)用程序都可以訪問其他應(yīng)用程序所暴露的信息。
ActiveX Automation所涉及的一個主要問題是兩個應(yīng)用程序之間的對話問題,但兩個應(yīng)用程序之間并不是一種對等的關(guān)系。ActiveX Automation和每個部分所涉及到的兩個應(yīng)用程序所起的作用是不同的。客戶機(jī)是對話的發(fā)起端,而服務(wù)器則是對話的響應(yīng)端,對客戶機(jī)作出響應(yīng)。ActiveX Automation代碼主要在客戶機(jī)上運(yùn)行,但其功能是在服務(wù)器實現(xiàn)的。
每個ActiveX Automation操作過程都分3步:當(dāng)有一個應(yīng)用程序耍進(jìn)行ActiveX Automation操作時,該程序就以客戶機(jī)模式進(jìn)行對話呼叫,而另一個被它所訪問的應(yīng)用程序以服務(wù)器的模式響應(yīng)。對話開始后,客戶機(jī)模式應(yīng)用程序運(yùn)行一些包括服務(wù)器命令的代碼。在使用時,則由客戶機(jī)應(yīng)用程序決定具體使用哪個命令。于是ActiveX Automation的相應(yīng)命令被傳送到服務(wù)器模式應(yīng)用程序,服務(wù)器模式應(yīng)用程序按照客戶機(jī)模式應(yīng)用程序的要求完成特定的任務(wù)??蛻魴C(jī)模式應(yīng)用程序可以繼 續(xù)發(fā)出其他的執(zhí)行命令,直到整個任務(wù)完成為止。
CATIA支持ActiveX Automation標(biāo)準(zhǔn),可完全實現(xiàn)ActiveX Automation自動化。
Visual Basic 6.0是Microsoft公司推出的面向?qū)ο蟮目梢暬幊坦ぞ?。VB具有快速的程序開發(fā)環(huán)境,界面設(shè)計操作簡單,代碼編寫量小,用戶可以很方便地直接改動界面。由于CATIA加人了ActiveX自動化服務(wù)功能,而VB又是最為常用的支持ActiveX技術(shù)的開發(fā)工_具,以它作為開發(fā)工具,可使 CATIA與其他Windows程序的數(shù)據(jù)共享變得非常容易。
4.1 引用CATIA庫文件
在Visual Basic 6.0環(huán)境下對CATIA進(jìn)行二次開發(fā)之前,需要引用CATIA的全部庫文件(圖1)。
圖1 引用CATIA庫文件
4.2 發(fā)布參考元素
利用CATIA的Publication技術(shù),將零件上需要創(chuàng)建約束的點、線、面參考元素進(jìn)行發(fā)布,方便在創(chuàng)建裝配約束時調(diào)用(圖2)。
圖2 發(fā)布參考元素
4.3 程序設(shè)計思路
首先需要檢測CATIA對象是否存在,若不存在則需要創(chuàng)建CATIA對象,在獲得CATIA對象后,再獲取當(dāng)前工作區(qū)的Product文檔對象,定義零部件產(chǎn)品對象,對零部件產(chǎn)品對象實例化,再定義參考元素對象,對參考元素實例化,最后以Publication發(fā)布元素作為參考元素,利用庫文件中的裝配函數(shù)對參考元素創(chuàng)建相應(yīng)的裝配約束(圖3)。
圖3 程序流程圖
4.4 程序UI界面設(shè)計
利用Visual Basic 6.0編程工具編寫用戶UI界面,在程序界面上放置若干Textbox控件,用以接受用戶的輸入,這些輸入信息包括:零部件在裝配中的實例名稱、發(fā)布元素的名稱、懸架高度等。在裝配環(huán)境下的運(yùn)動仿真中,還需要提供運(yùn)動步數(shù)、單步延時的設(shè)置選項,以此實現(xiàn)運(yùn)動仿真精確性和連續(xù)性的調(diào)節(jié),并且在運(yùn)動仿真的過程中,需要隨時觀察某一個狀態(tài)的間隙、干涉情況,因此有必要增加程序的暫停和停止功能(圖4)。
圖4 程序UI界面
4.5 編寫程序代碼
4.5.1 獲取CATIA對象
4.5.2 獲取當(dāng)前CATIA工作區(qū)的裝配文檔
4.5.3 定義零部件產(chǎn)品對象并對其實例化
4.5.5 對參考元素創(chuàng)建裝配約束
4.5.6 釋放對象,清理內(nèi)存
程序運(yùn)行結(jié)束后裝配約束已自動創(chuàng)建好,更新約束后,所有零部件均會裝配到正確位置上(圖5)。
圖5 平衡懸架自動裝配結(jié)果
裝配約束創(chuàng)建完成后,可以通過設(shè)定驅(qū)動命令名稱、最小值、最大值、步數(shù)和單步延時來對產(chǎn)品進(jìn)行運(yùn)動仿真,比如設(shè)置驅(qū)動命令為驅(qū)動橋軸線到車架下平面的懸架高度值來模擬驅(qū)動橋的跳動過程,在此過程中,可以清晰的觀察到橋上零部件、穩(wěn)定桿的運(yùn)動狀態(tài)和軌跡,直觀的進(jìn)行仿真。
模擬車輛通過地面凸起物的跳動運(yùn)動(圖6):
圖6 平衡懸架跳動仿真
模擬車輛通過地面凸起物的對扭運(yùn)動(圖7):
圖7 平衡懸架對扭仿真
針對汽車設(shè)計開發(fā)過程中DMU的重復(fù)性工作,通過研究的CATIA二次開發(fā)功能并結(jié)合Visual Basic 6.0開發(fā)工具,成功的開發(fā)出一款DMU自動化裝配軟件,實現(xiàn)了平衡懸架快速裝配和運(yùn)動仿真的目的,有效提高產(chǎn)品開發(fā)效率、降低開發(fā)成本。
[1] 彭歡. 基于V5 Automation的CATIA二次開發(fā)技術(shù)研究[J]. 電子機(jī)械工程,2012,02:61-64.
[2] 李維學(xué),王仲奇,康永剛,殷俊清. 基于CATIA V5二次開發(fā)的產(chǎn)品自動裝配[J]. 機(jī)械制造,2010,01:40-43.
[3] 陳振藝. 用VB對Catia軟件進(jìn)行簡單的二次開發(fā)[J]. 輪胎工業(yè), 2010,12:746-750.
[4] 趙禮東. 重型汽車多軸平衡懸架運(yùn)動分析及仿真[D].武漢理工大學(xué),2004.
DMU software research and development on commercial vehicle
Yang Hongyun, Wan Gang, Chen Qi, Shi Zhengsheng
( Saic-iveco Hongyan Commercial Vehicle Co., Ltd., Technical Center, Chongqing 401122 )
This article introduces the process of designing and developing a DMU application software by studying the CATIA re-development function and utilizing the Visual Basic 6.0 programming tool to realize the automatically assembly method and kinematic analysis of variants of balanced shaft suspension so as to improve the designing efficiency, to shorten the product development cycle and to reduce the developing costs.
Re-development; Assembly; CATIA; Visual Basic; Publication
TG156
A
1671-7988(2016)01-79-04
楊洪云,就職于上汽依維柯紅巖商用車有限公司技術(shù)中心,DMU工程師。主要研究方向為商用車DMU。