利用C#进行CATIA自动化二次开发的入门指南
来源:互联网 发布:相关系数矩阵怎么求 编辑:程序博客网 时间:2024/04/19 14:38
本文包括以下内容:
- Automation(以下简称自动化)与CAA的区别
- 用C#创建Automation根对象的代码
Automation文档的使用方法
以下是正文
Automation(以下简称自动化)与CAA的区别
相比CAA开发,COM自动化接口的好处在于:
- 不需要购买安装CAA
- 因为是基于COM组件调用进行开发,所以可以用任何(高)版本VS进行开发,有更好的智能感知和代码提示
- CAA开发中涉及大量复杂的设计模式,而且必须用C++开发,编译环境也必须是达索提供的编译环境,而自动化开发可以基于C++,也可以使用CLR语言如C#、http://VB.NET,开发难度大大降低,可以非常非常顺手的写图形化程序,可以在同一个工程中同时用C#、VB、C++/CLI开发,这非常酷
- 开发前准备只需要安装CATIA和IDE如VS2015、而且接口一定程度上能够实现跨版本。
相比CAA开发,COM自动化接口的不足在于:
- 自动化只能实现CATIA本身各个模块能够做到的工作,比如你有一万个法兰需要批量打孔,甚至根据不同大小的法兰和受力打不通数量的孔,自动化接口都可以胜任。但如果你想要在一个曲面上求空间上从一个点出发经过曲面反射到另一个点的所有反射点,因为这样的工作CATIA本身做不到,自动化就难以胜任了。
- 自动化开发还有个缺点是:不能像CAA一般,开发嵌入CATIA的可交互的程序(感谢题主补充)。合理的使用自动化提供的select方法可以实现简单的选择或选择集交互,更复杂的拖动乃至子视图树状图什么的开发只能靠CAA
所以自动化接口能够胜任80%的自动化工作,其他的只能靠CAA。
用C#创建Automation根对象的代码
贴一段C#的代码,这段代码用于获得CATIA对象,是每个自动化程序最初的一步,之后都是按部就班的创建和操作CATIA的子类就可以了。
INFITF.Application CATIA;try{ CATIA=(INFITF.Application)Marshal.GetActiveObject("CATIA.Application");}catch{ Type oType = System.Type.GetTypeFromProgID("CATIA.Application"); CATIA = (INFITF.Application)Activator.CreateInstance(oType); CATIA.Visible = true;}
上述代码获得到的CATIA.Application对象就是下面的Application对象了
Automation文档的使用方法
达索原来是有在线文档的,但两年前关闭了不给访问了,或者链接改了,反正我没有再找到,这是很可惜的。
如果你安装了CAA的话,自动化文档的内容同样可以在任何版本的CAADoc目录中找到,如果你没有安装CAA,可以下载我提供的文档原件压缩包,密码为csq6
关于Doc,可以看到是分为三个目录
不过我比较常用的是第二个和第三个,因为够用了
Generated文档
generated文件夹下的是传统的interface document,里面朴素的列出了所有的类、公有方法原型、类继承关系,是我见过的API手册里面组织的比较清晰的。里面有两个文件夹,interface是给自动化开发用的,refman是给CAA开发用的,两者文档结构相似,内容不同,这里只表interface。
打开\Doc\generated\interfaces_index\main.htm,首页显示的是Framework list,每个Framework对应一个COM组件,就是说如果你的程序调用了Partinterface,你就要引用Partinterface对应的COM组件(一般和framework名字很像),然后在代码中impore(VB)或using(C#) PARTITF(它的命名空间,具体什么名字在vs中引用后可以通过双击引用查看到)
第二列是类继承关系
第三列是比较好用的各类索引,需要什么方法直接进master之后find之类的,小技巧很多,要靠自己摸索
online文档
达索原来的线上文档就是这个online文档,基本一样的,相比上面的,这个更像是Guiding、Tutorial之类的东西,讲解怎么使用一些接口,展示一些例子等等。
打开/Doc/online/CAACenV5Title.htm
第一个是CAA开发的,第二个是自动化开发的,下面的那些对象目录都是在这个文档里面找到的。比如零件设计(PartDesign)->
Shape Automation Objects->
就可以看到
最后附上我的一个插件源码https://github.com/Lentil1016/LTB
- 利用C#进行CATIA自动化二次开发的入门指南
- 【二次开发】如何使用C#进行CATIA二次开发
- CATIA 二次开发 C#
- 利用C#进行AutoCAD的二次开发
- CATIA 二次开发 C#如何获取点的坐标值
- 利用C#进行AutoCAD的二次开发(一)
- 利用C#进行AutoCAD的二次开发(二)
- 利用C#进行AutoCAD的二次开发(三)
- 利用C#进行AutoCAD的二次开发(二)
- 利用C#进行AutoCAD的二次开发(三)
- 利用C#进行AutoCAD的二次开发(一)
- 利用C#进行AutoCAD的二次开发(二) by C#才鸟
- 利用C#进行AutoCAD的二次开发(三) by C#才鸟
- 利用C#进行AutoCAD的二次开发(一)by C#才鸟
- CATIA VBA二次开发(一)快速入门之宏脚本
- CATIA VBA二次开发(二) 快速入门之VBA IDE
- 利用 Python 进行深度学习的完整入门指南
- 想入门CATIA二次开发CAA的盆友看过来(谈谈开发经验,或许对你有帮助!)
- 多媒体(拍照录像)
- CAJ文件转PDF的简单方法
- c/c++(二)
- codeup 1126
- FileProvider 的使用(Failed to find configured root that contains/storage/emulated/0/DCIM/ )
- 利用C#进行CATIA自动化二次开发的入门指南
- 777D
- 编写程序实现数字反转
- ST MCU_GPIO的八种工作模式详解
- 移动端开发详解(2)
- 二月英语——滋长
- P2024 食物链(two)
- PULL
- 关于文献阅读和寻找新的科研题目