首页/文章/ 详情

2025双dan福利——Excel与CATIA联动

1月前浏览274

在Excel中修改指定单元格的数值,CATIA模型里对应的参数值与模型便可随之更新。这一功能是CATIA自带的设计表即可实现的,我们在之前的文章中也有过讲解。

但很多小伙伴表示,设计表的数值变化后,CATIA那边的模型更新会有一个延迟。今天,我们就来使用Automation二次开发的方式,通过在Excel VBA里写一些代码,来消除这个延迟。

基于小编多年来一直叨逼叨的一句话:“点动成线,线动成面,面动成体”,我们先简单搭一个下面的模型:用三组点连成三根样条线,然后再通过这些样条线做一个多截面曲面。

接下来看一张动图,即我们本篇文章最后即将实现的效果:通过修改Excel里单元格的点坐标值,来控制这个三维模型。


然后我们来说原理与做法。

首先,要明确一件事:CATIA的VBA里可以操作Excel,Excel的VBA里也可以操作CATIA。

第一步,在Excel VBA的编译界面,通过菜单栏Tools--References,找到引用项目。

然后添加如下三个引用:Interface、Mecmod、GSM。

(注意这三个库只是本文实例所用到的,其他功能所需要引用的库,可通过API所在的手册页面的顶端,点击This Frame Work查看)。

这样,我们在Excel的VBA里写代码时,就可以像在CATIA VBA中一样,将变量定义为CATIA Automation Object类型。

好处是,写代码时可以自动联想出对象的属性和方法。


接下来,我们就开始在Excel里VBA里写代码。在vb或者说vba里,代码都是些在一个函数里,函数以sub / end sub或function / end function起止。

另外,函数里的代码不会无缘无故地自己运行。通常,我们会通过一个事件,来触发。简单说就是“当发生什么时,运行这段代码”。常见的比如Button的Click函数,也就是当我们点击按钮时,会触发执行里面的代码。

一个对象,或者我们叫一个控件,比如按钮,它有哪些事件函数,这个并不是手动一个字母一个字母敲上去的。我们可以在编译器上部的左边选择对象, 右边下拉列表里就是该对象可以使用的事件函数。


而今天这个例子,我们要把代码写在Sheet的Change事件函数中,意味着一旦Sheet里某个单元格的值有变化,就会执行我们所写的代码,从而实现实时联动。

反映到具体的操作,就是打开Excel的VBA编辑截面(快捷键是Alt+F11),然后双击左侧树上的Sheet对象,再选择右侧下拉列表中的Change。此时编译器将为我们自动创建一个函数。


至于二开操作CATIA模型这一部分,可以说是老生常谈了。我们最后直接给出完整的带注释的代码供参考。

需要说明一下,本文的内容,仅作为各位学习CATIA及Excel VBA二次开发的参考练习,实际工作中未必有实用价值,尤其模型很复杂,更新一次需要耗时很久的情况。

但又不能说完全没有意义,CATIA / Excel二者联动,给了我们更多的可能。比方说:

  • 可以在导出的Excel格式的BOM中编辑装配体各节点的属性,再写入CATIA


  • 可以在Excel中编辑图纸的标题栏,再写回到CATIA Drawing中

  • ……


以下是实现文章开头动图的完整代码及注释

来源:CATIA那点事儿
二次开发CATIA控制曲面装配
著作权归作者所有,欢迎分享,未经许可,不得转载
首次发布时间:2025-01-09
最近编辑:1月前
CATIA那点事儿
本科 CATIA小狼。微信公众号:CATIA那...
获赞 134粉丝 252文章 24课程 16
点赞
收藏
作者推荐
未登录
还没有评论
课程
培训
服务
行家
VIP会员 学习计划 福利任务
下载APP
联系我们
帮助与反馈