关于访问方法和开发语言的选用

访问方法:

总的来说,任何Autodesk产品成熟的API,都包含三种访问方式:插件,独立的EXE和控件程序。

- 插件:是拓展产品能力的方式,其dll依附于宿主程序。这是Inventor API应用程序大量所使用的。甚至包括Autodesk前两年收购的CFDesign,它是基于Inventor的一个复杂高级应用,其中一些模块功能也是插件。在VB6年代,插件可以dll形式和exe形式,exe自然是和Inventor不在一个进程内。大部分用的是dll,和Inventor共处一个进程,获取最优的效率。
- 独立的EXE: 和Inventor不同进程,自然是效率上会逊色些。通常可能是因为需要有独立的界面,后台调用启动Inventor做处理(因为启动的Inventor进程可设置为不可见),例如批量的出图,打印,访问模型数据分析。这样甚至可以设置计划任务,定期调用exe程序,执行相应的工作。这里需要注意的时,并不是所有功能在Inventor不可见的时候都会能执行正常或成功,因为有些API需要更新视图,不可见的Inventor就不行了。
另外,独立的EXE可以访问已经在运行的Inventor进程。所以对于开发者研究API来说,是比较方便的,因为不需要如插件一样的重启Inventor才能看到代码修改的效果。可以修改,再启动EXE,再访问Inventor进程,发现问题很快修改。
- 控件:这个是利用到提供的Inventor View Control (InventorViewCtrl.ocx). 将其嵌入到独立程序,可以加载模型,进行浏览。

除以上三种方式外,Inventor还独有一种方法:Apprentice。名为学徒服务器。它拥有大部分API读取方面的功能,至于修改(写)的功能,仅限于iProperties等很少的部分。它只需要安装Inventor View这个免费产品即能过得使用。一般我们讲:Inventor提供的叫做Inventor API,而Apprentice是其子集合。所以在大部分场合,Inventor API特指安装Inventor后获取的所有API功能,而Apprentice指的只是部分功能。当然,若安装了Inventor,不仅能用到全功能API,也能使用到Apprentice。

所以,根据需求
- 若是拓展Inventor本身的能力,可做成插件
- 若是做自动化任务,独立界面,则可做成EXE
- 若还需要在独立程序里浏览模型,可嵌入Inventor View Control 

最后是VBA,它是集成到Inventor的编译环境,主要用来创建宏命令。大多数情况下,我喜欢用来做测试,因为最方便。


开发语言

目前Inventor API是COM的形式。只要是支持COM的开发语言都能用。 SDK的例子也提供了好几种语言: VB, C++, VB.NET, C#. 甚至我们看到有一些用户用Delphi。 我个人对 Delphi不熟悉,不好评价。

- VB虽然说还是可以用,但其语言本身已经逐渐的淡出。而且,VB6写的dll插件,总是32位的,不能在64位上运行。另外,最新的免注册插件VB用不了。
- VB.NET 和 C#,单纯就语言本身,网上有大量的分析和对比。这里就不赘述了。仅就Inventor API而言,两者没有太大区别,根据个人习惯选用即可。当然C#在一些方法调用上有其自身的特点,例如

http://adndevblog.typepad.com/manufacturing/2012/06/use-reference-keys-in-c.html
http://adndevblog.typepad.com/manufacturing/2012/06/how-to-convert-iconbitmap-to-ipicturedisp-without-visualbasiccompatibilityvb6supporticontoipicture.html
设计时稍许注意即可。
- C++: 毫无疑问,C++是强大的。但在COM方面,代码设计还是比.NET繁琐很多,类型强制要求也多。而且免注册插件方面我们发现了些小问题,如果你擅长.NET,可以优先考虑.NET。

如果你从0开始创建工程,切记用提供的Inventor 开发向导。它会安装.NET和C++的工程项目模板,极大的节省你创建工程的时间。注意,从2012开始, 向导创建的插件是免注册形式的。

在Win7上,可以从这里找到C:\Users\Public\Documents\Autodesk\Inventor 2013\SDK\DeveloperTools\Tools\Wizards

        

以上仅是个人的一点心得,供入门的开发者参考。各位若已经开发,有什么心得体会,请畅所欲言。谢谢分享。 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值