基于达索系统3DEXPERIENCE平台航空航天行业复合材料设计解决方案
每一位“攻城狮”都有一颗“程序猿”的梦!
CATIA 二次开发介绍
CATIA是一款强大的三维设计软件,广泛应用于航空航天和汽车等高精尖行业。而在实际工作中,标准的功能有时难以满足企业的特定需求,这时候“二次开发”就派上用场了。
想象一下,CATIA就像是一座高效的工厂,而二次开发则是为这座工厂定制的一条专属生产线。通过编写脚本或开发插件,我们可以让CATIA更加智能、自动化,不论是批量处理任务,还是构建复杂的定制功能,二次开发让CATIA真正成为设计师手中的“万能工具”!
图. CATIA主界面
主要的二次开发方式包括
1.VBA脚本开发:使用VBA(Visual Basic for Applications)编写脚本,进行简单的任务自动化,例如批量处理、参数化建模等。
2. C++/C#开发:CATIA提供了丰富的API,可以使用C++或C#等编程语言开发插件或独立应用程序,来扩展CATIA的功能。
3. EKL(Engineering Knowledge Language):这是CATIA中的一种高级脚本语言,用于编写知识模板和规则,以实现基于知识的工程自动化。
4. CATScript:类似于VBA,用于编写脚本以实现一些自动化任务。
5. CAA(Component Application Architecture)开发:这是CATIA中最强大的二次开发方式,允许开发者直接访问和扩展CATIA的内核功能,通常使用C++进行开发。
图. EKL Action
相比之下,CAA语言需要较高的门槛,作为一名“攻城狮”,几乎不会有机会和时间进行代码的系统学习,如果只是平常写一些小功能帮助自己提高重复工作的效率,那VBA是不二之选!
本次推文将介绍如何以VBA二次开发的方式,在CATIA中开展开发工作,让“攻城狮”也可以为自己量身定制一套专属武器!( •̀ ω •́ )✧
如何在CATIA中使用VBA宏
宏工具
1. 在「工具」工具条中,展开可找到和VBA有关的常用命令:
图. 宏工具
2. 「宏」:可在界面中新建或添加一个系统中已有的宏文件;
3. 「启动录制」:可将客户端中的操作录制到宏文件中,以vba语句的方式展示(请注意,并非所有的操作都可以录制下来),使用这个功能通常用来参数某个功能操作的接口用法;
4. 「Visual Basic 编辑器」:CATIA内置的VBA编辑器,在编辑器中创建GUI界面,编写代码,调试程序(使用VB6.0的语法);
创建第一个宏程序
1. 在编辑器的宏文件中创建一个「Moudle」对象,在其中输入:
Visual Basic |
图. 编辑器截图
2.点击「运行」按钮,在CATIA主界面中弹出弹窗,弹窗中显示内容:“Hello World!”;
图. Hello World弹窗
3.如果想要在运行时,打开一个窗体(Form),则可写入如下语句:
Visual Basic |
图. 弹出Form
将宏命令添加到工具条中
1. 先确保「宏」命令界面中,选择了要添加命令的宏文件;
图. 宏命令界面示意
2.在「自定义」中,找到“宏”选项,在其中会显示宏文件中的“Moudle”(命令的名称=Moudle的name),利用工具条自定义模式,将命令拖拽添加到工具条中(在自定义的界面中可对宏命令设置图标);
图. 自定义界面宏命令添加
3.此时,可像CATIA OOTB(默认)的命令,点击即运行;
Automation帮助文档
1. CATIA的安装路径中,有一个“开发用百科全书”,其中提供了丰富的二次开发接口,以及接口方法的使用样例,我们可以通过查阅这个帮助文档,来获取相关命令的接口API,快速上手;
2. Automation帮助文档路径在CATIA的安装路径下:
例如:“C:\Program Files\Dassault Systemes\B426\win_b64\code\bin”;
名称为:“DSYAutomation”
3. 双击打开帮助文档,其中显示了CATIA Automation的架构,不同的层级内展示了不同模块、功能、命令的接口方法;
图. Automation架构部分截图
4. 通过点击到不同的Object页面,可以发现不同的类型对象的方法,以及具体的API,点击每个API链接,可以查询其使用方法与样例;
图. Sheet页的API示意
VBA进阶VB.NET
使用CATIA中内置的VBA编辑器,几乎可以完成日常设计中大部分开发需求,但是老版的6.0编辑器在编写代码和设计界面时存在很多不便,例如:
1. 编写代码时没有联想,没有自动排版,没有折叠等;
2. Form缺少部分高级控件,可用控件较为基础;
3. 必须将代码保存在宏文件中,宏文件需要保存在3DE数据库里,并且运行时若出现报错会看到所有的过程代码;
4. 对UI有较高要求的朋友,6.0的界面显得太过老旧;
了解开发的朋友都知道,作为一款地表最强的编辑器之一的 Visual Studio 是由微软开发的一款功能强大的集成开发环境 (IDE),广泛用于软件开发。
图. Visual Studio界面
那么,有没有可能CATIA也可以使用这个编辑器来进行二次开发呢?答案是可以[]~( ̄▽ ̄)~*
VB.NET 作为 Visual Basic 的进化版本,运行在 .NET 框架之上。VB.NET 提供了与其他 .NET 编程语言(如 C#)一致的强大功能,同时保持了 Visual Basic 的简单易学特点。
接下来,下文中将以“创建标题栏”的开发实例,系统的介绍如何在Visual Studio创建项目、查询添加COM库、编写代码、编译可执行文件及在CATIA中运行命令。
*开发实例有如下要求:
a. 点击命令后按照样式一键生成标题栏;
b. 自动适配当前图纸幅面;
c. 相关标题栏文本自动从图纸或关联数模中取值;
图. 案例标题栏示意
VB.NET实战演练
1. 创建项目
PS.这里以Visual Studio 2022 版本示例
1. 运行 Visual Studio,进入开始使用界面,选择「创建新项目」;
2.在项目模板界面,选择“控制台应用(.NET Framework)”模板,点击「下一步」;
PS.这里实战的例子并不需要窗体交互,所以我们选择“控制台应用(.NET Framework)”,如果需要做窗体交互,则选择“Windows窗体应用(.NET Framework)”;
3.输入项目名称,例如“CreateFrameTitle”,勾选“将解决方案和项目放在同一目录中”,框架选择默认的“.NET Framework 4.7.2”的选项,点击「创建」;
4.进入主界面,自动创建了一个module语句,并内置了一个main方法;
5. 此时,点击「启动」按钮,在运行期间,会弹出一个黑窗体,一直持续到结束;
6.如何取消黑窗口的显示呢?其实很简单( •̀ ω •́ )✧
7. 选中项目,点击「属性」按钮,在弹出的属性页面中,应用程序类型选择“Windows窗体应用程序”,重新点击「启动」按钮,此时程序运行时,不会再弹出黑窗口;
添加引用
1.和直接在CATIA中使用内置的编辑器写vba代码有所不同的是,VB.NET中引用是没有自动添加3DE CATIA的 COM库的,所以在新建项目后,需要手动将3DE CATIA的COM库勾选添加;
2. 点击上方菜单“项目”,选择“添加引用”;
3.弹出引用管理器,找到其中为CATIA开头的库文件,可选择将其全部勾选,这样该项目中就可调用所有的可用API接口(前缀为CATIA V5的库文件是CATIA V5的API);
4.如果要追求精简极致的话,在写某个功能时,可能只需要用到几个库文件,那么我只需要针对性的添加这几个库文件到我的项目中就可以;
5. 想做到这一步就需要了解什么样的接口方法对应是哪一个库文件,在下文的示例代码中将展示方法;
代码部分
3.1 初始化Application
1. 使用VB.Net需要获取进程中的3DEXPERIENCE(CATIA),借助「GetObject」接口完成;
2. 「GetObject」的方法在「Application」中,进入Applcation的详情页;
3.点击“This Framwork”按钮,显示出当前「Application」方法对应的后台库文件;
4.在添加引用中找到“CATIA Inflnterfaces Framework”这一个COM,勾选,点击确定;
5.在Module上方,添加这条库引用「Imports INFITF」,即完成库的引用,接下来属于这个库内的所有接口即可使用;
6.接下来创建变量,写获取进程的代码(此项为必备代码,若在CATIA中直接运行exe,则可考虑不加入启动CATIA的代码逻辑):
Visual Basic |
7.注意增加的过程需要添加到module的main过程中(后续所有自定义的过程需要在运行时响应的都需要添加到main过程下)
3.2 分析内容
分析一下要创建的图纸标题栏不难发现,整个标题栏共有三部分组成:外框线+标题栏框线+标题栏文本,那么我们只需要通过代码依次创建出这些对象出来即可,梳理一下程序处理的整个逻辑过程:
由于篇幅过长,本期内容就暂告一段落。下一期,本文将深入解析「创建标题栏」实例的完整编码过程及其背后的逻辑思路,敬请期待!
关于钛闻软件
上海钛闻软件技术有限公司源自于上海江达科技发展有限公司,自2024年1月1日起,钛闻软件全面承接上海江达的人员、业务和相关资质。
钛闻软件在全国设有10个办事处,拥有超过200余人的专家顾问团队和近30年的行业经验,公司致力于向交通运输、工业装备、基础设施、航空航天、高科技电子及生命科学等行业客户提供先进的数字化解决方案及企业级应用系统。
作为达索系统重要的合作伙伴,钛闻软件在中国拥有1300多家客户。这些客户长期使用达索系统从需求、设计、工艺、仿真到制造的全生命周期解决方案,总装机量超过16000多套。钛闻软件非常注重客户的实施服务和应用支持,紧扣客户需求,引入最佳实践,让先进软件发挥出最大价值。