本文目的 当AutoCAD二次开发编程人员转到Inventor平台时,会有很多的疑问。同样是Autodesk的产品,它们有相似性吗?相似到何种程度?作为一个有相当多的AutoCAD二次开发经验的人,该从那里下手呢?本文主要是针对这样的一个群体进行解答的。 思考一下:你的开发目的是什么?AutoCAD是一个2D CAD软件,Inventor是一个3D CAD软件。第一步要清楚的是,两者在功能特征上有很大区别;其次,使用习惯有很大区别;最后,编程接口也有很大区别。 熟悉AutoCAD的人调查Inventor时,第一个问题可能是Inventor能干什么/不能干什么。弄清楚后,就要思考自己的开发目的了。请不要理所当然的以为在AutoCAD上开发出来的产品,移植到了Inventor平台上照样有用。也就是说,有些功能在AutoCAD上有人买账,但是在Inventor上如果也做一套类似的功能,可能就没人用了,原因是这两个平台提供的功能特征、用户使用习惯有太多地方不同。反之,在AutoCAD上不需要的、或者你没想过的功能,在Inventor上可能就会变的非常有价值。所以,在用Inventor 做开发之前,一定要先熟悉产品,然后想清楚需求,再决定是移植还是开发新的需求。 两个平台的基本特点AutoCAD的用户画图时,使用的是AutoCAD或者二次开发商提供的图元,比如点、线、面、墙、窗户;AutoCAD还提供命令行,让用户输入命令文本;图纸只有两种格式,即dwg、dxf格式。 Inventor的用户画图时,使用的是草图和参数驱动的各种特征,特征种类非常多;画图的历史可见;画图流程一般是:零件图->装配图->工程图;没有命令行,所以不能输入命令文本;文件分ipt、iam、idw三种格式,而且支持很多3D格式,比如SAT, STL等,的导入导出。 两个平台的开发方法简介AutoCAD的开发接口有4种(如下表)。最早的是AutoLisp,然后出现了定制功能强大的ObjectARX,后来AutoCAD.NET API得到快速发展(大部分的AutoCAD.NET API都是对ObjectARX接口的封装,也有个别定制功能只有AutoCAD.NET API支持,比如CUI定制)。 AutoCAD API类型
| ObjectARX
| COM (ActiveX)
| AutoCAD.NET
| AutoLisp
| 开发语言
| C++
| VBA/C++/VB.NET/C#/Java/Delphi等
| .NET
| AutoLisp
|
Inventor 的接口一直都是COM类型,不像AutoCAD的接口类型那么多,开发语言也同样是C++/VB.NET/C#/Java/Delphi等等支持COM的语言环境。 API的架构和组织方式两个平台的 API架构并不相同。AutoCAD API架构: ObjectARX 的数据库对象的组织方式:
AutoCAD COM 对象组织方式:
Inventor API架构和组织方式:
简而言之,两个平台的API不同。因此,如果要把AutoCAD的定制应用程序移植到Inventor上来,除了独立于开发平台的部分(比如自己的数据库管理程序),其它的代码几何都要重写,甚至重新设计。 另外,由于AutoCAD COM API和Inventor API的组织结构有点相似,所以,运用AutoCAD COM API的程序相比运用其它类型API的程序,移植起来更简单容易。 更多Inventor API学习资料推荐:
文章来源:http://blog.csdn.net/barbarahan
|