用VB/C#进行CATIA二次开发

前些时间接到一个 CATIA 二次开发的任务,于是就走上了一条不归路 >_

功能需求

  • 能够加载现有模型 (Product)
  • 能够调整载入模型的空间位置和姿态
  • 能够检测模型 (Product) 之间是否发生干涉

由于之前没有任何的相关经验,只能求助万能的百度大神了!╮(╯▽╰)╭ ,百度给出了两种方法

  • CAA (Component Application Architecture,组建应用架构)
  • Automation API (自动化应用程序接口)

下面,我们先来说说这个CAA方法:

CAA (Component Application Architecture) 是 CATIA 的一整套 C++ 函数库,该函数库在 CATIA 运行时加载。用户通过安装 RADE (Rapid Application Development Environment) 模块,可以在 VC++ 编程环境下编制程序并与 CATIA 进行通信,从而实现 CATIA 二次开发。– 来源 CAA(CATIA二次开发工具)-百度百科

采用CAA这种开发模式需要使用C++进行编程,同时需要手头有CAA开发包,RADE开发包(貌似这些都是需要付费的),并且开发环境的搭建过程十分艰辛。感谢 @企鹅1714131717 分享的CAA开发经验。
企鹅1714131717 - 想入门CATIA二次开发CAA的盆友看过来(谈谈开发经验,或许对你有帮助)

对于我这种C++小白来说,CAA这种开发方法简直是开启的地狱模式【难度:⭐⭐⭐⭐⭐】,只能转战另一种模式。


CAA开发模式相比, Automation API 开发模式就要亲民很多啦O(∩_∩)O!!

Automation API 具备与任何 OLE 所兼容的平台进行通讯能力,自动化 (Automation) 组件使用 VBScript 作为编辑工具。通过宏录制功能 (Macro Record),可以记录用户的操作过程并自动生成 VBScript 代码。这种方式比较简单,在CATIA环境就中可完成。

其不仅仅支持 VBScript,还同时支持 .Net 开发平台,因此允许使用VB.NET或C#等语言进行开发,【└(^o^)┘】

由于,现有项目均采用 .NET 平台开发,所以可以轻松的加入现有项目中。采用 Automation API 在.NET平台上进行开发,只需在项目中引入相关类库即可,免去了 CAA 繁琐的配置过程。

一个简单的开发实例
采用 Visual Studio 2010 + CATIA V5R20开发环境(由于对VB不是很熟,故采用C#代码【VB食用更佳】)。在调试之前需确保CATIA已经运行,否则无法连接到 CATIA,程序无法运行。

using INFITF;
using MECMOD;
using PARTITF;
using ProductStructureTypeLib;
using SPATypeLib;
using NavigatorTypeLib;

namespace CATIATest
{
    class Program
    {
        static void Main(string[] args)
        {
            // 第一步:连接CATIA
            Application Catia =(Application)System.Runtime.InteropServices.Marshal.GetActiveObject("Catia.Application");
            // 第二步:获取当前活动ProductDocument
            ProductDocument pd = (ProductDocument)Catia.ActiveDocument;
            // 第三步:创建一个ID为newProduct的Product
            pd.Product.Products.AddNewProduct("newProduct");
        }
    }
}

【举手】那既然Automation API 这么好用,为什么还需要CAA???(问号脸)

实际上,好不好用是有一定前提的!我的需求很简单,只要能够调用CATIA自身的功能接口,组合成我想要的功能即可,也就是将手动操作变为程序自动化执行。这里的大前提是,功能必须是 CATIA 已有的,已有的,已有的!!!如果你要的功能CATIA没有,那么不好意思,请回归到 CAA 的怀抱。

【对比】Automation API 的优势在于CATIA为开发者提供了良好的功能接口,只要有的功能尽管拿去用。而 CAA 的优势在于其提供了更加开放和灵活的编程方法,不管有的功能还是没有的功能,只要愿意统统都能实现。采用哪种方式,完全取决于开发者自身的需求。


【举手】有什么好的参考资料供学习和参考么

目前网络上关于Automation API 开发的资料比较稀少,但是 CATIA 已经为我们提供了最好的参考资料 《V5 Automation API 手册》。在CAITIA安装完毕之后,可以在其安装目录中找到该文件。其中包含了所有功能的详细说明以及程序实例(VB代码),足够满足大部分开发者需求。
文件位于 %Install Root%\Dassault Systemes\B20\intel_a\code\bin 目录中(CATIA V5R20版本)

推荐一本书《CAD软件二次开发丛书》-下载链接


好了,就酱紫!!!

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值