基於V5 Automation的CATIA 二次開發技術研究論文

基於V5 Automation的CATIA 二次開發技術研究論文

  引言

  CATIA是法國達索系統公司開發的集成了CAD、CAM和CAE的大型軟體,憑藉其突出的技術優勢在製造業的各個領域得到了廣泛的應用,現已成為全球製造業的主流設計軟體。應用CATIA先進的設計理念,可極大地提高企業的設計水平、設計質量和設計效率。

  二次開發是對軟體的使用者化和專業化的有效手段,可以使軟體更好地為使用者服務,在提高CAD軟體的應用效率、專業性,充分發揮CAD軟體的使用效益,提高工作效率和工作質量等方面有著十分重要的作用。CATIA作為一款通用、大型軟體,為使用者提供了二次開發介面和開放式的內部命令集合,給使用者的二次開發帶來了方便。在熟練掌握CATIA軟體功能的情況下,透過對CATIA軟體的二次開發功能進行深入研究,就可以開發出適用於本單位和個人習慣的CAT-IA二次開發程式,為提高工作效率和產品質量服務。因此,對CATIA進行二次開發研究,已受到國內外許多科研院所及高校的重視。

  機載電子裝置的結構設計通常會使用大量的各類標準件,如螺釘、墊圈、螺母等。在CATIA的裝配設計中,設計人員對這些標準件往往進行手工插入,在這樣的設計模式下,設計人員不得不重複地選擇零件、幾何約束物件並建立約束,費時費力且容易出錯。為解決上述問題,文獻10]提出了標準件的“批裝配”方法,文獻11]提出了‘‘棧式”裝配方法,但這些方法都需要使用者選擇多個裝配幾何元素。本文在上述研究的基礎上,給出了一個新的螺釘智慧裝配程式例項,只需讓使用者選擇一個裝配幾何元素(即螺釘安裝面),就可完成對所選安裝面上所有孔的螺釘(包括墊圈、螺母等)的自動裝配,極大地提高了CATIA裝配設計中標準件的裝配工作效率。

  1CATIA二次開發技術的主要研究方向及應用前景

  1.1CATIA二次開發技術的主要研究方向

  文獻對CATIA二次開發技術進行了研究,我們可以從上述文獻所做工作中提取出CATIA二次開發技術的主要研究方向:(1)引數化設計。通常的CAT-IA二次開發技術在引數化設計中的應用是編寫一個介面獲取使用者指定的引數後,透過程式設計來呼叫CATIA相應的造型函式,從而完成引數化設計。文獻1-4]是在這方面所做的工作。(2)CAE開發。強度設計和熱設計已越來越多地應用於結構設計領域,將強度設計和熱設計的相應演算法透過程式設計的方式應用到CATIA的二次開發中,繼而編寫出適合於本單位的強度設計和熱設計的程式,可實現結構設計和熱設計、強度設計的有機統一。由於這些程式是由本單位研發人員所編寫,因此它不僅能實現和CATIA的無縫整合,而且在操作上還很符合本單位設計人員的習慣。文獻是在這方面所做的工作。(3)最佳化設計。針對使用者產品設計的特點,為達到最優設計而提出相應的演算法,並在CATIA二次開發程式中實現這種演算法,從而達到最佳化設計的目的。文獻7-8是在這方面所做的工作。(4)簡化操作。針對CATIA中某些比較繁瑣的操作,結合使用者研發設計的特點,透過程式設計,使CATIA相關操作得以簡化。文獻9-10]是在這方面所做的工作。

  1.2CATIA二次開發技術的應用前景

  上述4個研究方向均有廣闊的應用前景。研究方向1的相關研究最多,其主要思想是透過引數化設計,將已有設計思想知識化和標準化,即使設計經驗相對欠缺的設計師透過輸入相關引數也能完成產品設計,從而大大提高產品重用化水平,提高設計效率。研究方向2難度最大但應用前景最廣。透過CATIA的二次開發,將強度設計和熱設計融入CATIA中,開發出與CATIA無縫整合的強度設計和熱設計程式,從而實現結構設計和強度設計、熱設計的有機統一。但其開發難度也較高,程式開發者不僅需要具備一定的程式設計經驗,更需要掌握強度設計和熱設計的演算法並且具有把這種演算法應用於CATIA二次開發的能力。研究方向3提供了一個有效的進行產品最佳化設計的途徑。在工程設計中,使設計效果達到最優是設計師不斷追求的目標,他們在長期的設計實踐中產生了大量的最佳化策略和方法,研究方向3的主要工作就是將上述最佳化策略和方法轉化成計算機能識別的演算法並在CATIA二次開發程式中實現,從而達到最佳化設計的目的。研究方向4針對CATIA中不滿足使用者應用習慣和應用需求的部分,開發出適用於本單位和個人習慣的工具,為提高工作效率和產品質量服務。本文第3節給出的應用例項“智慧化螺釘裝配程式”就是在這方面所做的工作。

  2 V5 Automation的關鍵技術

  2.1CATIA二次開發介面

  CATIA主要提供了兩種二次開發的`介面,包括自動化物件程式設計(V5Automation)和開放的基於構件的應用程式設計介面(CAA)。前者採用VisualBasic6.0(簡稱VB)對CATIA進行二次開發。VB是一種基於Bas?ic的視覺化程式設計語言,它繼承了先前Basic程式設計語言所具有的簡單、易用的特點,而且在其程式設計系統中採用了面向物件、事件驅動的程式設計機制,用一種巧妙的方法把Windows的程式設計複雜性封裝起來,提供了一種所見即所得的視覺化程式設計方法。結合VB強大的功能和CATIA本身提供的豐富的類、庫及二次開發函式,就能開發出個性化的CATIA二次開發程式。CATIA二次開發的過程和意義如圖1所示。

  2.2利用V5Automation進行CATIA二次開發的基本流程

  在V5Automation中,所有的資料都被封裝成物件的形式,並形成樹形結構,如圖2所示。圖2中,透過根物件Application可以訪問所有其他物件,如透過Application物件的Documents、Windows和SystemSer-vice等屬性就可以訪問CATIA的所有物件。同時,VB提供了許多非常有用的工具,使用這些工具,可以宣告任何由CATIA提供的庫檔案(.tlb),這些庫檔案包含了所有物件的宣告和所有外部物件的方法和屬性。

  在VB中對CATIA進行工程引用後,利用下面的程式程式碼,米用GetObject和CreateObject方法,即可實現VB對CATIA的連線。

  Dim CATIAAs Object On Error Resume NextSet CATIA=Get Object(/"CATIA.Application")

  If Err.Number<>0 Then

  SetCATIA=CreateObject("CATIA.Application")

  CATIA.Visible=True End If

  On Error GoTo 0

  連線到CATIA之後,就可以在VB中對CATIA進行操縱,而CATIA也提供了豐富的類、庫及二次開發函式供使用者呼叫。CATIA二次開發的過程可以理解為:使用者為實現某種功能,根據需要,合理地呼叫上述類、庫的屬性和方法以及二次開發函式。CATIA中的每個功能(包括零件設計、曲面造型、裝配設計、工程製圖等)以及所有的實體特徵(包括草圖特徵、修飾特徵、曲面特徵、變換特徵、組合特徵等)都有相應的類、庫支撐,因此CATIA二次開發的主要工作就是合理地對物件進行程式設計。圖3表示了利用V5Automation進行CATIA二次開發的基本流程。

  3應用例項

  基於上述思想,開發了一個智慧化螺釘裝配程式。該程式的主要功能如下:在CATIA裝配介面中,程式提示使用者選擇螺釘安裝面,並在程式對話方塊中選擇螺釘規格、螺釘長度和裝配螺釘的方向後,即可自動完成對所選螺釘安裝面上所有孔的螺釘的自動裝配。圖4(a)為該程式啟動時的介面,使用者需點選“請選擇螺釘安裝平面,並計算孔”按鈕,並在CATIA裝配介面中選擇一個螺釘安裝面。使用者選擇螺釘安裝面後,當所選螺釘安裝面上的螺釘規格為GB818時,程式經過計算後進入選擇介面,見圖4(b)。在該選擇介面上,程式顯示了所選螺釘安裝面上的孔的情況,並提示使用者選擇螺釘長度、裝配螺釘的方向以及是否需要裝配彈平墊等。最後,使用者點選“裝配螺釘”按鈕,即可完成螺釘的自動裝配。

  下面給出該“智慧化螺釘裝配程式”的步驟:

  1)提示使用者在CATIA裝配介面中選擇螺釘安裝面;

  2)判斷所選螺釘安裝面所在的零件;

  3)搜尋該零件上所有的孔特徵,如果孔特徵滿足其中心點在所選螺釘安裝面上,則該孔特徵進入“我需要的孔”陣列;

  4)計算“我需要的孔”陣列中元素的個數,如個數為0,則程式提示“所選螺釘安裝面上沒有孔特徵,不能進行螺釘裝配”並退出;

  5)在“我需要的孔”陣列中,計算孔的種類和大小;

  6)程式根據“我需要的孔”陣列中孔的種類和大小計算出適用於所選螺釘安裝面的螺釘規格;

  7)提示使用者選擇螺釘長度和裝配螺釘的方向,如果螺釘規格為GB818,程式還會提示使用者選擇是否需要裝配彈平墊;

  8)根據使用者的選擇情況,程式進入裝配實施階段,透過程式設計,在程式中對螺釘施加裝配約束,約束條件1為螺釘“安裝面”與所選螺釘安裝面重合;約束條件2為螺釘“中心軸”與“我需要的孔”陣列中孔特徵的中心軸重合;

  9)透過一個迴圈語句,完成對“我需要的孔”陣列中所有孔的螺釘裝配。

  4結束語

  本文對CATIA的二次開發技術進行了研究,提出了基於V5Automation的CATIA二次開發技術的基本方法、一般原則和開發流程,並透過一個智慧化螺釘裝配程式的例項,驗證了CATIA二次開發技術。應用CATIA二次開發技術可以實現強大的功能,對CATIA進行二次開發可實現真正意義上的CAD、CAM、CAE技術的有效應用,因此探索CATIA二次開發的技術和方法有著較大的現實意義。目前已作了初步的研究,今後,還可以在引數化設計、CAE開發、最佳化設計等方面對CATIA的二次開發技術展開更深入的研究,以推動設計水平的提升。

最近訪問