基于CATIA和EXCEL二次开发自动生成质保计划的研究

2016-10-18 09:59李成华周盼盼
制造业自动化 2016年9期
关键词:测量机数模二次开发

李成华,周盼盼

(中航工业成都飞机工业(集团)有限责任公司,成都 610092)

基于CATIA和EXCEL二次开发自动生成质保计划的研究

李成华,周盼盼

(中航工业成都飞机工业(集团)有限责任公司,成都 610092)

飞机零件结构特征复杂,机械加工完成后都需要上测量机检测零件合格性,测量现场需要提供指导测量的质保计划。目前,质保计划依靠工艺人员手工编制,效率低下,标准化差。对CATIA,Excel二次开发进行了研究,开发基于CATIA测量数模自动生成质保计划的工具软件,通过CATIA向预先定制好Excel质保计划模板中输出数据自动生成质保计划,改变了目前依靠人工编制质保计划的局面,提高了工作效率。

测量数模;二次开发;CATIA;Excel;自动;质保计划

0 引言

随着计算机辅助设计(CAD)技术的发展,三维辅助设计软件在产品设计领域的应用越来越广泛。CATIA是法国达索(Dassault)公司开发的一款集CAD/CAM/ CAE于一体的三维设计软件,现已广泛运用于航空航天,机械设计,汽车船舶,电子等各行业中[1]。

目前,飞机产品设计主要基于CATIA平台进行。工艺依据设计数模完成零件制造,质量控制要求对零件的正确性做检查;对于型面等非传统方式可测量的特征需要上测量机进行测量,以验证零件的合格性。测量机依据测量数据对零件进行测量。基于CATIA二次开发零件点位提取相关的研究可以参考[3]。本文主要对依据测量数模自动生成质保计划进行研究。改善目前人工编制质保计划效率低的问题。

1 CATIA二次开发简介

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 程序设计与描述

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 质保计划

3 结束语

本项目通过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 -),男,重庆人,工程师,硕士研究生,主要从事机械制造技术及制造业信息化的工作。

猜你喜欢
测量机数模二次开发
基于FMEA分析的数模混合电路多道脉冲幅度控制算法
三坐标测量机及配合使用的光学转台测量结果不确定度的评估
整车数模开发流程解析
西门子Operate高级编程的旋转坐标系二次开发
基于PMAC的动车轮对测量机控制系统设计
浅谈Mastercam后处理器的二次开发
三坐标测量机应用与研究
西门子Easy Screen对倒棱机床界面二次开发
激光跟踪仪在飞机翼下整流罩测量的应用
三坐标测量机维护保养方法及应用