李成華,周盼盼
(中航工業(yè)成都飛機工業(yè)(集團)有限責任公司,成都 610092)
基于CATIA和EXCEL二次開發(fā)自動生成質(zhì)保計劃的研究
李成華,周盼盼
(中航工業(yè)成都飛機工業(yè)(集團)有限責任公司,成都 610092)
飛機零件結(jié)構(gòu)特征復雜,機械加工完成后都需要上測量機檢測零件合格性,測量現(xiàn)場需要提供指導測量的質(zhì)保計劃。目前,質(zhì)保計劃依靠工藝人員手工編制,效率低下,標準化差。對CATIA,Excel二次開發(fā)進行了研究,開發(fā)基于CATIA測量數(shù)模自動生成質(zhì)保計劃的工具軟件,通過CATIA向預先定制好Excel質(zhì)保計劃模板中輸出數(shù)據(jù)自動生成質(zhì)保計劃,改變了目前依靠人工編制質(zhì)保計劃的局面,提高了工作效率。
測量數(shù)模;二次開發(fā);CATIA;Excel;自動;質(zhì)保計劃
隨著計算機輔助設(shè)計(CAD)技術(shù)的發(fā)展,三維輔助設(shè)計軟件在產(chǎn)品設(shè)計領(lǐng)域的應(yīng)用越來越廣泛。CATIA是法國達索(Dassault)公司開發(fā)的一款集CAD/CAM/ CAE于一體的三維設(shè)計軟件,現(xiàn)已廣泛運用于航空航天,機械設(shè)計,汽車船舶,電子等各行業(yè)中[1]。
目前,飛機產(chǎn)品設(shè)計主要基于CATIA平臺進行。工藝依據(jù)設(shè)計數(shù)模完成零件制造,質(zhì)量控制要求對零件的正確性做檢查;對于型面等非傳統(tǒng)方式可測量的特征需要上測量機進行測量,以驗證零件的合格性。測量機依據(jù)測量數(shù)據(jù)對零件進行測量?;贑ATIA二次開發(fā)零件點位提取相關(guān)的研究可以參考[3]。本文主要對依據(jù)測量數(shù)模自動生成質(zhì)保計劃進行研究。改善目前人工編制質(zhì)保計劃效率低的問題。
CATIA二次開發(fā)可以通過三種方式進行[2]。
1)宏(Macro)
CATIA提供了VBScript和CATIAScript兩種語言來進行宏編寫,簡單方便,無需額外開發(fā)環(huán)境。但此種方法人機交互性差,無法做出界面,只適用于簡單過程的實現(xiàn)。
2)CAA C++技術(shù)
CAA技術(shù)是CATIA一套C++函數(shù)庫,該函數(shù)在CATIA運行時加載,用戶可以通過RADE模塊在VC++編程環(huán)境下編寫程序,與CATIA進行通信,這種方法效率高,但入門困難,在國內(nèi)這方面的技術(shù)資料少見。
3)Automation技術(shù)
此種方法通過VB、VC等高級編程語言,利用Automation技術(shù)訪問CATIA對象的方法和屬性來獲取,設(shè)置及處理數(shù)據(jù),這種方法入門相對簡單,開發(fā)速度更快。
基于上述三種方法的特點,本次采用Automation技術(shù),利用VB對CATIA進行二次開發(fā)。
2.1總體思路
依據(jù)點位測量數(shù)模(*.CATPart)文件,提取與質(zhì)保計劃相關(guān)的零件圖號,測量數(shù)據(jù)名,點位分布圖片等信息,向預先定制好的Excel模板中輸入數(shù)據(jù),自動生成當前零件的質(zhì)保計劃。程序流程圖如圖1所示。
2.2信息的提取
依據(jù)質(zhì)保計劃要求提取零件圖號,測量坐標系,測量區(qū)域等描述信息以及零件測量點位分布圖。描述信息提取的核心偽代碼如下:
Private Sub GetInformation()
‘獲取輔助信息
On Error Resume Next’錯誤處理
‘定義變量
圖1 程序流程圖
Dim myPartDocument As Document
Dim myPart As Part
Dim myHybridBodies As HybridBodies
Dim i As Long
‘給變量賦值
Set myPartDocument=CATIA.ActiveDocument
Set myPart=myPartDocument.Part
Set myHybridBodies=myPart. HybridBodies
myPartName=myPart.Name
‘提取零件模型名稱
For i=1 To myHybridBodies.Count
myInformation(i)=myHybridBodies.Item(i).Name
‘獲取相關(guān)描述信息
Next
End Sub
質(zhì)保計劃需要零件測量點位分布圖,通過截屏獲取圖形。由于質(zhì)保計劃會打印輸出,因此,圖片需要白底背景。
截屏核心偽代碼如下:
Private Sub CaptureScreen()
‘捕捉屏幕
On Error Resume Next’錯誤處理
Dim myViewer As Viewer3D
Set myViewer=CATIA.ActiveWindow.ActiveViewer
myViewer.Reframe’視圖全部適應(yīng)
myViewer.Update’視圖更新
myViewer.PutBackgroundColor Array(1,1,1)
’背景色設(shè)置為白色
myViewer.CaptureToFile catCaptureFormatJPEG,”F: test.jpg”
’截取圖片另存為jpg格式
Set settingControllers1=CATIA. SettingControllers
Set visualizationSettingAtt1=settingControllers1.Item(“CATVizVisualizationSettingCtr1”)
visualizationSettingAtt1.ColorBackgroundMode=True
visualizationSettingAtt1.SaveRepository
‘重新設(shè)置背景色為系統(tǒng)默認顏色
End Sub
2.3Excel輸出質(zhì)保計劃
Excel具有強大的報表輸出功能,將質(zhì)保計劃在Excel中做好模板,并將文件另存為.xltx的模板格式。質(zhì)保計劃輸出是會調(diào)用模板,按照模板格式輸出質(zhì)保計劃。由于要向Excel輸入數(shù)據(jù),在做模板時有兩個技巧,第一,給需要填入數(shù)據(jù)的單元格重新取名,便于編程時調(diào)用;第二,模板中內(nèi)容相同的單元格,預先在模板中定義公式,簡化編程。
質(zhì)保計劃輸出函數(shù)核心偽代碼如下:
Private Sub ExportToExcelTemplate()
Dim xlApp As Application
Dim xlbook As Workbook
Dim xlSheet As WorkSheet
‘獲取正在運行的Excel程序
Set xlApp=GetObject(,”EXCEL.Application”)
If xlApp Is Nothing Then
‘新建一個Excel程序
Set xlApp=CreateObject(,”EXCEL.Application”)
End If
Set xlbook=xlApp.Workbooks.Add Template:=”F:質(zhì)保計劃模板.xltx”
‘調(diào)用模板生成工作簿
‘給Excel的單元格賦值
ExcelPartName=myPartName
ExcelTime=Now()’給時間單元格賦值
‘調(diào)入圖片并居中顯示。
Sheet3.Pictures.Insert(“F: est.jpg”).Select
Set Rng=Sheet3.Range(“A6:A14”)
With Selection
.Top=Rng.Top+2
.Left=Rng.Left+2
.Width=Rng.Width-2
.Height=Rng.Height -2
End With
‘更多詳細過程略
‘
xlSheet.Cells.EntireColumn.AutoFit
xlApp.Visible=True’顯示Excel界面
End Sub
最后生成質(zhì)保計劃如圖2所示。
圖2 質(zhì)保計劃
本項目通過CATIA、Excel二次開發(fā)相結(jié)合,實現(xiàn)了依據(jù)測量數(shù)模自動生成質(zhì)保計劃的目標,減少了人力勞動,提高了工作效率。本文提供的方法和步驟具有普適性,在類似的二次開發(fā)項目中都可以舉一反三使用,具有很高的推廣運用價值。
[1] 劉順濤.基于CATIA二次開發(fā)的數(shù)模信息提取及組織技術(shù)的研究[J].航空制造技術(shù),2014,19.
[2] 胡挺,吳立軍.CATIA二次開發(fā)技術(shù)基礎(chǔ)[M].北京:電子工業(yè)出版社,2006.
[3] 王勇.基于CATIA的測點自動生成技術(shù)的研究[D].沈陽航空航天大學,2013.
Research on automatical generating of quality assurance plan based on CATIA and EXCEL secondary development
LI Cheng-hua,ZHOU Pan-pan
TP311.56
A
1009-0134(2016)09-0135-03
2016-07-21
李成華(1989 -),男,重慶人,工程師,碩士研究生,主要從事機械制造技術(shù)及制造業(yè)信息化的工作。