编程开源技术交流,分享技术与知识

网站首页 > 开源技术 正文

CATIA软件二次开发:焊点数据导出工具应用程序编写

wxchong 2024-09-07 21:21:33 开源技术 22 ℃ 0 评论

前几期中为大家介绍过在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

Tags:

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表