前几期中为大家介绍过在CATIA软件中使用VBA语言编写宏脚本导出机器人焊点数据的操作方法,本期再来为大家介绍一下使用VisualStudio软件制作一个机器人焊点数据导出的应用软件,也算是为喜欢二次开发的小伙伴做个抛砖引玉吧。
CATIA软件版本:CATIA V5R21。
VisualStudio软件版本:VisualStudio Ultimate 2010。
一、创建项目
1.打开VisualStudio软件,并进入VB.Net开发环境。
2.新建项目,选择“Windows窗口应用程序”模板,输入项目名称,如焊点数据导出工具,点击确定按钮,新项目创建完成。
二、引用CATIA Autimation API类库
1.“项目”工具栏下点选“添加引用”,打开添加引用对话框。
2.对话框中点选上方的“COM”标签,下方的组件显示框中点选全部带有“CATIA V5”前缀的API组件,点击确定按钮。
稍等片刻后组件加载完成后窗口将自动关闭。
注:此处也可以单独点选要开发的功能的API组件,这样加载时间就会快很多了。
三、添加按钮
1.点选自动添加的窗口Form1,然后在其属性设置栏中修改Text属性为“焊点数据导出工具”,即窗口显示名称。
2.拖动Form1窗口至合适大小,然后在工具箱中拖拽一个“Button”公共控件到Form1窗口中,并将其移动到合适位置。
3.点选添加的Button1控件,然后分别修改其属性(Name)与Text属性为“CmdSpotdataEx”与“导出数据”
四、程序编写
1.双击Form1窗口进入程序编辑界面,在“Public Class Form1”之前添加CATIA API类库引用代码。
注:此处也可以根据需要单独引用所需的CAIT API类库。
2.在Public Class Form1下,即窗口打开的Load事件中添加CATIA对象控制判断代码。
3.返回Form1窗口中,点击添加的“导出数据”按钮控件,进入按钮程序编辑界面,编写按钮Click事件的焊点数据导出程序代码。
完整代码如下所示。
'添加CATIA API引用 Imports SURFACEMACHINING Imports CATStrSettingsTypeLib Imports StrTypeLib Imports SPATypeLib Imports SMTypeLib Imports SimulationTypeLib Imports SIM Imports CATRsc2 Imports ProductStructureTypeLib Imports PRISMATICMACHINING Imports PPR Imports PCBITF Imports PARTITF Imports OSMInterfacesTypeLib Imports NavigatorTypeLib Imports MECMOD Imports MANUFACTURING Imports KnowledgewareTypeLib Imports KinTypeLib Imports INFITF Imports HybridShapeTypeLib Imports GenKwe Imports FittingTypeLib Imports ElectricalTypeLib Imports ElecSchematicTypeLib Imports DRAFTINGITF Imports LAYOUT2DITF Imports DNBSimulation Imports DNBSimIO Imports DNBSimAct Imports DNBRobot Imports DNBIgpResourceProgram Imports DNBReporting Imports DNBMHIItf Imports DNBManufacturingLayoutItf Imports DNBIgripSim Imports DNBIgpTagPath Imports SWKHumanModelingItf Imports DNBPert Imports DNBFastener Imports DNBDpmItf Imports DNBBIW Imports DNBDevice Imports DNBDeviceActivity Imports DNBD5I Imports DNBASY Imports PROCESSITF Imports ComponentsCatalogsTypeLib Imports AnnotationTypeLib Imports CATTooling Imports CATStk Imports CATSmInterfacesTypeLib Imports CATSmarTeamInteg Imports SHEITF Imports CATSdeSetting Imports CATSchematicTypeLib Imports CATRsc Imports CATRma Imports CATRpmReporterTypeLib Imports CATRdg Imports CATPspPlantShipTypeLib Imports CATOBM Imports CATMultiCAD Imports CATMat Imports DNBIPD Imports CATInstantCollabItf Imports CATImm Imports CATIdeSettings Imports CATV4IInteropTypeLib Imports CATHumanPackaging Imports CATFunctSystem Imports CATEdbTypeLib Imports CATDrmRmsSettings Imports CATDataExch Imports BehaviorTypeLib Imports CATAssemblyTypeLib Imports CATArrangementTypeLib Imports SAMITF Imports CAT3DXml Imports CATCompositesMat Imports AECRTypeLib Public Class Form1 '声明CATIA COM对象 Dim CATIA As Object Private Sub Form1_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load Try '获取CATIA COM 对象 CATIA = GetObject(, "CATIA.Application") Catch ex As Exception '未打开CATI提示打开CATIA MsgBox("请启动一个CATIA 应用程序。") End End Try End Sub Private Sub CmdSpotdataEx_Click(sender As System.Object, e As System.EventArgs) Handles CmdSpotdataEx.Click Dim lApp, lBook, lSheet, lEslct Dim lDoc, lPrt, lHybody, lPoint, Coord(2) '创建Excel对象 lApp = CreateObject("excel.application") '让Excel可见 lApp.Visible = True '创建一个新Excel文件 lBook = lApp.workbooks.Add '添加一个新Sheet lSheet = lBook.Sheets.Add '给刚才添加到Sheet命名 lSheet.Name = "WeldPoint" '获取CATIA当前激活的文件 lDoc = CATIA.ActiveDocument '获取文件的Part lPrt = lDoc.Part '获取Part下名为“几何图形集.1的几何图形集”’以下为添加表头信息 lHybody = lPrt.HybridBodies.Item("几何图形集.1") '第一行第一列值为“PointName” lSheet.Cells(1, 1) = "Point Name" '第一行第二列为“x”,下面同理 lSheet.Cells(1, 2) = "X" lSheet.Cells(1, 3) = "Y" lSheet.Cells(1, 4) = "Z" '初始化一个变量,代表第i行,因为第一行被设置成了表头,所以从第二行开始 Dim i = 2 '遍历几何图形集中的元素 For Each lPoint In lHybody.HybridShapes '获取点点坐标并赋给Coord,Coord前面定义了,是一个三维数组 lPoint.GetCoordinates(Coord) On Error Resume Next '第i行,第1列的值为点的名称 lSheet.Cells(i, 1) = lPoint.Name '第i行,第2列的值为行坐标,以下同理 lSheet.Cells(i, 2) = Coord(0) lSheet.Cells(i, 3) = Coord(1) lSheet.Cells(i, 4) = Coord(2) On Error Resume Next 'i自加1下一个循环获取到的值将填入下一行 i = i + 1 Next '根据单元格内容自动调整列宽 lSheet.Columns("A:D").EntireColumn.AutoFit() '第2到4列的显示格式为小数点后面三位 lSheet.Columns("B:D").NumberFormatLocal = "0.000" End Sub End Class
?五、运行测试
1.点击“启动调试”工具按钮,稍等片刻自动弹出焊点数据导出工具,若是CATIA软件未启动,工具界面将显示“请启动一个CATIA应用程序。”
2.启动CATIA软件并打开机器人焊点数据模型,再次点击“启动调试”工具按钮,焊点数据导出工具正常启动。
3.点击“导出数据”按钮,稍等片刻之后在打开的Excel软件中自动生成已经导出的焊点数据。
4.在项目文件夹的Debug目录下,即X:\CATIA VBA\焊点数据导出工具\焊点数据导出工具\obj\x86\Debug目录中此时已经编译生成了“焊点数据导出工具”应用程序,可以将其复制到其他地方直接双击打开使用了,效果与调试程序一致。
The End
本文暂时没有评论,来添加一个吧(●'◡'●)