本文已经首发在个人微信公众号:工业机器人仿真与编程(微信号:IndRobSim),欢迎关注!

前几期为大家介绍了基于VBA二次开发的CATIA软件焊点坐标数据导出应用程序编写以及焊点小球生成工具应用程序的编写,本期再来为大家介绍一下基于VBA二次开发的Excel焊点坐标数据导入与生成点数模的应用程序编写。

CATIA软件版本:CATIA V5R21。

VisualStudio软件版本:VisualStudio Ultimate 2010。

一、项目创建

打开VisualStudio软件,进入VB.Net开发环境。然后新建项目,选择“Windows窗口应用程序”模板,创建点坐标数据导入工具项目。

二、CATIA Automation API类库引用

在添加引用对话框中点选上方的“COM”标签,下方的组件显示框中全选带有“CATIA V5”前缀的API组件,点击确定按钮,稍等片刻后组件加载完成后窗口将自动关闭。

三、软件界面设计

1.在自动添加的Form1窗体控件中分别添加一个Button公共控件和一个OpenFileDialog对话框控件。

2.分别设置Form1窗体控件属性参数与Button公共控件属性参数。

Form1窗体属性

属性

设置参数值

说明

FormBorderStyle

FixedSingle

设置窗体的边框样式为固定单边框。

MaximizeBox

False

设置在窗体的标题栏中不显示 “最大化”按钮。

MinimizeBox

False

设置在窗体的标题栏中不显示 “最小化”按钮。

Text

点坐标数据导入工具

设置窗体标题为“焊点小球生成工具”。

TopMost

True

设置该窗体显示为最顶层窗体。

Button控件属性

(Name)

CreatePointBotton

设置控件的名称为CreatePointBotton。

Text

数据导入

设置控件显示内容为“数据导入”。

3.控件属性设置完成后将Form1窗体控件拖拽到合适大小,然后将Button控件拖放到剧中位置。

四、程序编写

1.双击Form1窗体控件,打开程序代码编辑窗口,在Public Class Form1代码上方编写CATIA API类库引用代码。

2.在Form1窗口控件的Load事件代码编辑器区中编写CATIA软件连接控制VBA代码。

3.双击Form1窗体控件上的Button控件,进入按钮的Click事件代码编辑区,分别编写打开点坐标数据Excel文件代码、遍历Excel文件中点坐标数据代码、生成点数模VBA代码。

4.完整程序VBA代码如下所示。

'添加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 ObjectPrivate Sub Form1_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.LoadTry'获取CATIA COM对象CATIA = GetObject(, "CATIA.Application")Catch ex As Exception'未打开CATIA软件时提示打开CATIA软件MsgBox("请先启动CATIA软件。")EndEnd TryEnd SubPrivate Sub CreatePointBotton_Click(sender As System.Object, e As System.EventArgs) Handles CreatePointBotton.Click'打开点坐标数据Excel文件Dim FilePath As StringOn Error Resume NextOpenFileDialog1.FileName = "" '清空打开文件对话框文件名OpenFileDialog1.Filter = "Excel工作簿|*.xlsx" '筛选扩展名为“Excel工作簿”或“*.xlsx”格式的文件OpenFileDialog1.ShowDialog() '显示打开文件对话框If OpenFileDialog1.FileName <> "" Then '判断是否选择了文件,若选择了Excel文件则将其赋值给FilePath,若未选择则不做任何响应FilePath = OpenFileDialog1.FileNameEnd IfOn Error GoTo 0'点坐标数据生成点If FilePath <> "" Then '判断是否已选择点坐标数据Excel文件,若打开则执行生成点,若为打开则无响应Dim partDocument1 As Document '创建文件partDocument1 = CATIA.ActiveDocumentDim part1 As Part '创建部件part1 = partDocument1.partDim hybridBodies1 As HybridBodieshybridBodies1 = part1.HybridBodies '获取Part中的几何图形集集合对象Dim hybridBody1 As HybridBodyhybridBody1 = hybridBodies1.Add() '添加一个几何图形集part1.Update() '更新零件显示Dim hybridShapeFactory1 As HybridShapeFactoryhybridShapeFactory1 = part1.HybridShapeFactory '获得HybridShapeFactory对象Dim excel As Object '调用excel对象excel = GetObject(FilePath) '获取坐标数据Excel文件路径'利用循环语句,遍历读入Excel中的数据。这些值分别存于Excel的Sheet1中的B、C、D中,把这些值分别赋给变量x,y,zDim i As Integeri = 1Dim x, y, z As Stringx = excel.worksheets(1).cells.range("B" & i).Value '初始化x坐标数据Do While x <> ""y = excel.worksheets(1).cells.range("C" & i).value 'Excel中C列单元格数据赋值y坐标数据z = excel.worksheets(1).cells.range("D" & i).value 'Excel中D列单元格数据赋值z坐标数据'定义点坐标Dim hybridShapePointCoord1 As HybridShapePointCoordhybridShapePointCoord1 = hybridShapeFactory1.AddNewPointCoord(x, y, z)'生成点hybridBody1.AppendHybridShape(hybridShapePointCoord1)part1.InWorkObject = hybridShapePointCoord1 '定义当前工作对象,此行代码可以不要i = i + 1x = excel.worksheets(1).cells.range("B" & i).value 'Excel中B列单元格数据赋值x坐标数据Looppart1.Update()End IfEnd Sub
End Class

五、运行测试

1.创建一个Excel点坐标数据文件,在工作簿1(Sheet1)的A列输入点ID,B、C、D列分别输入点的x、y、z坐标值,并保存。

2.打开CATIA软件,新建或打开一个零件文件。

3.对编写的代码进行测试,打开点坐标数据导入工具软件,点击“数据导入”按钮,在打开的文件浏览对话框中选择创建的点坐标数据Excel文件并打开。

4.如果未出错,等待片刻后CATIA软件中将生成以Excel文件中的数据为坐标值的点数模。

5.在项目文件夹的Debug目录下可以找到编译生成了“点坐标数据导入工具”应用程序,直接双击打开使用,效果与调试程序一致。

The End


上一篇:Auto CAD二次开发:基于VBA语言的画圆软件开发

CATIA软件VBA二次开发:Excel文件中点坐标数据导入与生成点应用程序编写相关推荐

  1. ABB机器人二次开发:基于PC SDK的机器人控制器扫描程序编写

    目录 一.项目创建 二.窗口布局 三.开发接口引用 四.代码编写 五.运行测试 本文已经首发在个人微信公众号:工

  2. Python 二次开发 Excel 简介

    目 录 一.前言 1.1 pywin32库 1.2 帮助文档 1.3 枚举 1.4 颜色 二.与 Excel 的连接 三.工作簿 Workbook 3.1 打开/新建 四.工作表 Worksheet ...

  3. bim的二次开发需要什么语言_BIM软件的二次开发是什么?都需要做哪些准备?

    BIM技术已经成为这个时代中的新理念和新管理,那么在技术方面,BIM软件的二次开发是什么?包含哪些内容? 1.BIM图形引擎示例 WebGL技术是目前最为流行的,且支持度最高的Web图形技术之一.其支 ...

  4. 什么是软件的二次开发?

    管理软件的二次开发就是在现有软件产品的基础上,针对客户的个性化需求进行的开发,一般是由软件产品的开发厂商进行,或由厂商提供二次开发接口和源码由第三方来进行.不同于完全的定制开发,二次开发不是从头开发, ...

  5. 2022年9月7日-天正软件CAD二次开发-C++windows桌面开发岗

    2022年9月7日:天正软件CAD二次开发一面(已过) 笔试阶段 1.循环链表的最大优势 能够通过任意结点实现链表的遍历 2·static关键字 #include <iostream> # ...

  6. CATIA通过excel文件快速批量导入材料库

    CATIA通过excel文件快速批量导入材料库 在excel中编辑材料库,并保存,如图所示: 将MATLAB代码中的inputFilename改为材料库对应的文件名,运行代码(excel文件需要和MA ...

  7. NX二次开发-UFUN文件选择对话框UF_UI_create_filebox

    NX二次开发-UFUN文件选择对话框UF_UI_create_filebox NX11+VS2013#include <uf.h> #include <uf_ui.h>UF_i ...

  8. 使软件可二次开发_基于C++的?UG二次开发

    C++是C语言的继承,它既可以进行C语言的过程化程序设计,又可以进行以抽象数据类型为特点的基于对象的程序设计,还可以进行以继承和多态为特点的面向对象的程序设计.C++擅长面向对象程序设计的同时,还可以 ...

  9. 使软件可二次开发_RobotStudio二次开发:Smart组件I/O信号声明

    机器人I/O信号说明 Smart组件是RobotStudio软件实现虚拟仿真必不可少的功能,它是机器人I/O信号对仿真对象运动属性控制的连接桥梁.由此可以看出,Smart组件其实就是由I/O信号控制功 ...

最新文章

  1. 加拿大阿尔伯塔大学韩杰教授招收电子与计算机专业博士/博后
  2. Spark(1)——spark基本原理与启动
  3. OpenStack的部署T版(七)——cinder模块
  4. c# 删除文件,清理删除文件
  5. easyswoole数据库连接池_easyswoole orm配置数据库连接
  6. oracle 119(11.2.0.4),ORACLE 从 11.2.0.1 升级到 11.2.0.4 版本之ORA-00119问题处理纪实
  7. Revit二次开发The symbol is not active
  8. postgreSQL源码分析——索引的建立与使用——总结篇
  9. 仓储rfid文件_RFID技术在智能制造模具管理中的应用
  10. 计算机的五大组成部分(计组学习一)
  11. yaml 文件格式语法
  12. 服务器系统自带的系统清理工具,一键清除系统垃圾
  13. cdr三角形转化为圆角_cdr怎么把直角变成圆角
  14. 黑苹果 U盘刻录工具Transmac与Etcher使用
  15. 小米路由修改服务器密码,小米路由器怎么重新设置密码?
  16. Technorati 100个最受关注的博客的CMS分布
  17. QR扫码综合示例教程(六)Qt6.2.1(widget)取出视频帧 取景器帧
  18. Python+大数据-数仓实战之滴滴出行(二)
  19. apple pay 技术_如何在手机上设置Apple Pay和Google电子钱包
  20. .NET Core API网关Ocelot(十四)【转换Claims,日志,跟踪】

热门文章

  1. 绘画新手怎么把人物骨骼画好
  2. 【Pygame小游戏】Python版有迷宫嘛?原来藏在个地方呀~
  3. 揭秘:雷电模拟器工作方式
  4. 中型研发组织管理之--选择人
  5. ftp服务启动之后拖文件失败,返回code550的错误之一
  6. AES128加密算法实现(C语言:ECB加密模式实现)
  7. 《自控力》与《学习之道》
  8. 图像在空域上的平滑处理
  9. 【小知识】TVS瞬态抑制二极管与齐纳二极管(稳压管)的差异点分析
  10. SQL语句常见面试题(一)