李成华,周盼盼
(中航工业成都飞机工业(集团)有限责任公司,成都 610092)
基于CATIA和EXCEL二次开发自动生成质保计划的研究
李成华,周盼盼
(中航工业成都飞机工业(集团)有限责任公司,成都 610092)
飞机零件结构特征复杂,机械加工完成后都需要上测量机检测零件合格性,测量现场需要提供指导测量的质保计划。目前,质保计划依靠工艺人员手工编制,效率低下,标准化差。对CATIA,Excel二次开发进行了研究,开发基于CATIA测量数模自动生成质保计划的工具软件,通过CATIA向预先定制好Excel质保计划模板中输出数据自动生成质保计划,改变了目前依靠人工编制质保计划的局面,提高了工作效率。
测量数模;二次开发;CATIA;Excel;自动;质保计划
随着计算机辅助设计(CAD)技术的发展,三维辅助设计软件在产品设计领域的应用越来越广泛。CATIA是法国达索(Dassault)公司开发的一款集CAD/CAM/ CAE于一体的三维设计软件,现已广泛运用于航空航天,机械设计,汽车船舶,电子等各行业中[1]。
目前,飞机产品设计主要基于CATIA平台进行。工艺依据设计数模完成零件制造,质量控制要求对零件的正确性做检查;对于型面等非传统方式可测量的特征需要上测量机进行测量,以验证零件的合格性。测量机依据测量数据对零件进行测量。基于CATIA二次开发零件点位提取相关的研究可以参考[3]。本文主要对依据测量数模自动生成质保计划进行研究。改善目前人工编制质保计划效率低的问题。
CATIA二次开发可以通过三种方式进行[2]。
1)宏(Macro)
CATIA提供了VBScript和CATIAScript两种语言来进行宏编写,简单方便,无需额外开发环境。但此种方法人机交互性差,无法做出界面,只适用于简单过程的实现。
2)CAA C++技术
CAA技术是CATIA一套C++函数库,该函数在CATIA运行时加载,用户可以通过RADE模块在VC++编程环境下编写程序,与CATIA进行通信,这种方法效率高,但入门困难,在国内这方面的技术资料少见。
3)Automation技术
此种方法通过VB、VC等高级编程语言,利用Automation技术访问CATIA对象的方法和属性来获取,设置及处理数据,这种方法入门相对简单,开发速度更快。
基于上述三种方法的特点,本次采用Automation技术,利用VB对CATIA进行二次开发。
2.1总体思路
依据点位测量数模(*.CATPart)文件,提取与质保计划相关的零件图号,测量数据名,点位分布图片等信息,向预先定制好的Excel模板中输入数据,自动生成当前零件的质保计划。程序流程图如图1所示。
2.2信息的提取
依据质保计划要求提取零件图号,测量坐标系,测量区域等描述信息以及零件测量点位分布图。描述信息提取的核心伪代码如下:
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
‘获取相关描述信息
Next
End Sub
质保计划需要零件测量点位分布图,通过截屏获取图形。由于质保计划会打印输出,因此,图片需要白底背景。
截屏核心伪代码如下:
Private Sub CaptureScreen()
‘捕捉屏幕
On Error Resume Next’错误处理
Dim myViewer As Viewer3D
Set myViewer=CATIA.ActiveWindow.ActiveViewer
myViewer.Reframe’视图全部适应
myViewer.Update’视图更新
myViewer.PutBackgroundColor Array(1,1,1)
’背景色设置为白色
myViewer.CaptureToFile catCaptureFormatJPEG,”F: test.jpg”
’截取图片另存为jpg格式
Set settingControllers1=CATIA. SettingControllers
Set visualizationSettingAtt1=settingControllers1.Item(“CATVizVisualizationSettingCtr1”)
visualizationSettingAtt1.ColorBackgroundMode=True
visualizationSettingAtt1.SaveRepository
‘重新设置背景色为系统默认颜色
End Sub
2.3Excel输出质保计划
Excel具有强大的报表输出功能,将质保计划在Excel中做好模板,并将文件另存为.xltx的模板格式。质保计划输出是会调用模板,按照模板格式输出质保计划。由于要向Excel输入数据,在做模板时有两个技巧,第一,给需要填入数据的单元格重新取名,便于编程时调用;第二,模板中内容相同的单元格,预先在模板中定义公式,简化编程。
质保计划输出函数核心伪代码如下:
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:质保计划模板.xltx”
‘调用模板生成工作簿
‘给Excel的单元格赋值
ExcelPartName=myPartName
ExcelTime=Now()’给时间单元格赋值
‘调入图片并居中显示。
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
最后生成质保计划如图2所示。
图2 质保计划
本项目通过CATIA、Excel二次开发相结合,实现了依据测量数模自动生成质保计划的目标,减少了人力劳动,提高了工作效率。本文提供的方法和步骤具有普适性,在类似的二次开发项目中都可以举一反三使用,具有很高的推广运用价值。
[1] 刘顺涛.基于CATIA二次开发的数模信息提取及组织技术的研究[J].航空制造技术,2014,19.
[2] 胡挺,吴立军.CATIA二次开发技术基础[M].北京:电子工业出版社,2006.
[3] 王勇.基于CATIA的测点自动生成技术的研究[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 -),男,重庆人,工程师,硕士研究生,主要从事机械制造技术及制造业信息化的工作。