作者:梁晓冬 – Autodesk开发技术顾问
Inventor作为Autodesk公司制造业旗舰产品,已经在三维领域得到了广泛的应用。许多国内开发者迫切想学习InventorAPI,学习如何应用到专业领域。也有很多做设计的工程师,想借助API提高设计效率。本文面向准备使用Inventor进行开发的读者,旨在提供一个新手学习指南,以及相关学习资料,视频,文档,例子。每个人学习的速度和阶段不同,大家可根据自己的情况选取其中对你有用的内容(蓝色字体为对应资源下载或站点的链接)。
1.软件预备
-Inventor 产品:可从Autodesk官方网站的Inventor产品目录下载试用版,或从该链接查看如何购买。老一点的版本并不影响学习,但如果刚开始开发,建议用2012,2013,因为可用到最新的功能,如后面后提到的免注册插件机制。
-开发环境:本文建议用.NET开发(见第4点开发技能准备),因此需要VisualStudio 2008/2010或VisualStudio 2008/2010 Express。
-SDK(开发包): Inventor的SDK随产品安装(后面将详细介绍)。
2.学习三维设计概念
或许你尚不知Inventor的功能和用途?或者尚不了解三维设计概念?在Autodesk University和Autodesk University中国 网站有大量教程。下面选取几个,帮助学习三维设计的基本概念,例如,草图,特征,零件,装配,工程图等。
·籍Inventor及数字化样机,打通设计与工程的任督二脉(英文):Autodesk制造业部门资深副总裁Robert从最新的行业发展趋势到案例研究,介绍规模不同的制造企业如何依靠先进的技术在当今充满挑战的经济环境下保持竞争力。
·从AutoCAD迁移到Autodesk Inventor (中文): 展示如何充分轻松地从AutoCAD 迁移到Autodesk Inventor。
·AutoCAD 到Inventor(英文):AutoCAD资深人士Lynn Allen(Cadalyst杂志专栏作家和作者)介绍如何轻松地迁移到AutodeskInventor。
·Inventor零件建模系列教程 课程一,课程二,课程三(中文): 介绍Inventor零件的基本概念,如何建模,以及诸多零件相关知识。帮您为装配创建正确、合理的参数化零件。
·Inventor装配系列教程 课程一,课程二,课程三(中文): 介绍如何进行装配,约束,使用标准件等很多常用基本知识。学习Inventor如何灵活快速的进行装配。
·Inventor工程图系列教程 课程一,课程二,课程三(中文):介绍如何创建工程图视图,添加注释,定制模板等基本知识。学习Inventor高效的三维到二维的出图。
3. Inventor API 能干什么
API能完成绝大部分对应的产品功能,拓展其能力,实现特定的需求。作为应用概览,相信以下两个教程将能有所帮助:
·AU 2011大师汇演讲:InventorAPI在实际工作中的应用:此课程对InventorAPI做个概要介绍,并讲解如何快速地写些简单程序解决日常工作中遇到的具体问题。
·Inventor 2011定制揭秘-提升设计效率的一条捷径:通过几个典型的小例子演示Inventor API的定制开发,提高设计效率,定制设计流程,实现自动化,如何拓展Inventor本身的功能。
如果你是公司决策者,正在思索着未来的战略方向,这个链接可能对你有所帮助:
Autodesk合作伙伴的产品:该链接按照Autodesk公司产品以及行业列出了全球大多数Inventor上开发的程序。能够给您提供一个关于InventorAPI深入应用的概览。另外,Autodesk University 中国 网站也有大量行业应用的课程,或许能给你以启发。
在了解产品基础上,可开始接触API了。如果你原先有在二维CAD平台(例如AutoCAD)上开发的经验。建议先参考一下这篇文章从AutoCAD到Inventor应用程序移植释疑,帮助你理解AutoCAD和Inventor二次开发的区别。
Inventor API目前是COM的形式。因此任何支持COM的语言都能使用,例如C++,VB,C#,VB.NET,Java,Delphi等等。从我们接触到的全球开发者来看,大量的应用程序是用VB.NET和C#写的,也有C++,还有很少一点用VBA环境开发。请注意,由于微软已经不再提供VBA的授权,Autodesk也计划在未来的版本不再提供VBA。目前虽然Inventor中的VBA环境尚未去除,读者可借此熟悉InventorAPI,但我们还是建议大家学习就从.NET开始,因为不确定未来什么时候InventorVBA也去除了。而且本文提到的很多课程都是用.NET进行介绍。当然,如果你擅长用其它语言,例如C++,Java,Delphi也行。
有读者说,我没有一点开发基础怎么办?别着急,我们已经为你想到,下面的入门培训将介绍。
5.入门培训
在 Autodesk开发者中心 的 免费下载各类产品API课程 可以下载到许多Autodesk多种产品二次开发的讲座录像。我们按照产品和语言进行了分类。
Inventor API的基本概念和通用的文档简介:本中文课程从最基本的概念出发,介绍InventorAPI以及如何用.NET开发。并介绍了文档对象Document相关的知识,包括特性(iProperties),参数,单位等。
如果你英文没有困难,这里还有个很好的Newbie课程。Newbie就是初学者的意思。这个英文教程针对没有任何编程基础的学习者,手把手教如何用.NET 进行Inventor开发。它分为7个课程:
·课程1:开始接触InventorAPI,用VB.NET写一个最简单的插件,实现选择集的隐藏
·课程2:帮助了解VisualStudio编程环境以及基本需要熟悉的方面
·课程3:深入解释课程1里出现的InventorAPI相关代码,帮助了解相关对象
·课程4:学习简单的带界面程序,了解其中的逻辑,以及如何操作选择集
·课程7:深入学习的建议
通过这些课程,你不仅会了解到Inventor API,也能步入编程的大门。当然,要夯实开发能力还得需要其它的.NET课程和不断的磨练。
6.模块化学习
我们按照常用知识点的难易,分为初级和中高级两种学习模块。有些课程已经录制,是国外同事做的,可先睹为快。中文的已经录制了几个,其它将陆续推出。
建议初学者可依次学习以下几个初级篇:
·Inventor API_iProperties 详细介绍:详细介绍文档特性(iProperties)的使用
·InventorAPI中的零件图、部件图和工程图:介绍零件建模,部件组装,出工程图等系列功能。你将了解到很多基本的API对象和方法。
·如何用.NET做Inventor插件做安装程序:介绍.NET 制作插件的过程,以及如何制作安装包。
·如何开发Inventor免注册插件:结合最新的免注册插件机制,讲解如何实现免注册,以及如何移植原有的注册型插件
·事件的使用(英文):InventorAPI中各类型事件的使用方法,样例
·Brep边界表达法(英文):以图形学的边界表达法为理论基础,讲解如何理解和获取Inventor实体的图形信息。
高级篇可以从Autodesk University或Autodesk University 中国下载,例如插件制作高级篇(英文),Client Graphics(英文)等。
每年我们都会举办网络教程,对当年发布的InventorAPI的新功能进行介绍。例如去年的Inventor 2012 API新功能.今年的安排可在本年度计划举办的教室或网络培训课程上看到。
8.InventorAPI 帮助文档
如果碰到某个内容的API或者特定的需求,而现有的教程没有提及,那么请参考InventorAPI帮助文档。它是开发者经常要用的手边书,包含每个对象,方法,属性,事件的介绍。而且它提供了大量的代码示例和专题。我们教程里的一些内容都源自这些专题。文档只有英文版,阅读有困难的话建议可用Google翻译。API对象,属性方法的命名都大致遵循了对应的功能含义。因此,如果不知道哪个对象负责你所需要的功能,可用一些有含义的关键字检索,例如要创建拉伸特征,输入’Extrude’就能看到一些和其相关的搜索结果,还有示例代码。
另外,文档会列出和上个版本API变化的内容,例如添加了哪些对象,函数,删除了哪些,修改了哪些。如果你准备移植老程序,注意看看这些内容。当然最好先通过第7点提到的新功能教程得到一个概览。
Inventor2012的API帮助文档是<Inventor 安装路径>\Help_Lite\admapi_16_0.chm。16是2012的主版本号。2013就是17了。
9.InventorSDK
SDK是开发包的简称,安装产品后就装上了。位置在:
WindowsXP: <Inventor安装路径>\SDK
WindowsVista: C:\Users\Public\Documents\Autodesk\Inventor<版本>\SDK
Windows7: C:\Users\Public\Documents\Autodesk\Inventor <版本>\SDK
路径下有两个msi文件:DeveloperTools.msi和UserTools.msi。直接双击msi文件,会生成两个对应名字的文件夹。前者包含了大量的代码样例(按语言分类,C++),经常用到的Inventor插件向导,还有C++开发需要的头文件,库文件。后者都是代码样例,甚至直接可以作为工具使用。注意.NET需要用的InventorAPI互操作集(Interop)Autodesk.Inventor.Interop 已经随着产品安装到GAC中。另外,经过以上的学习,在对API有了一个比较系统的理解后,接下来可以开发一些复杂的应用。此时对某些类,方法和属性需要更具体的用法指导。比如同一参数在C#和VB.NET里的用法上是否有区别,在什么样的情况下可以用某函数等。若读完InventorAPI帮助文档的解释后还是不清楚。那么可在InventorSDK的实例代码里搜索。输入你关键字,找到使用该关键字的一些工程,打开工程研究其用法。
10.资源
若培训教程,帮助文档,SDK例子都没有涵盖你所需要实现的需求,当你一筹莫展的时候, 可以上一些网络资源看看有无答案,我和我的同事们也经常上去发表文章解答问题。为大家方便,加上上面提到的链接,总结如下:
·SDK: 随产品安装
·AutodeskUniversity(英文)
·AutodeskInventor API论坛: 免费的论坛,可发表问题,可得到全球开发者的帮助。
·CAD定制乐园:本博客的博主是我的同事韩华。上面发表Inventor,Vault,AutoCAD,Navisworks的技术文章。
·ModThe Machine(英文):本博客的博主是我们开发部同事Brian。上面专门发表Inventor开发的文章。
·Autodesk合作伙伴的产品: 基于Autodesk产品开发的复杂应用商业程序
·ADN网站: 只对ADN用户开放。上面有大量的技术文章,培训教程等资料。
11.咨询ADN技术支持和服务
你也可以加入ADN(Autodesk 开发商网络),成为Autodesk的合作伙伴,向我们的技术支持和服务专家咨询。他们会及时给出解决方案,另外可以参加ADN举办的Inventor二次开发教室培训(本年度计划举办的教室或网络培训课程)。
12.程序商店
作为开发者,实现自己程序价值最终落实到市场。Autodesk公司应时代趋势,推出了应用程序商店,这是类似苹果商店一样体验的平台。在上面你可以上载并出售程序。或许有些读者立马就想尝试了,别着急,先看看这个教程,如何开发Inventor免注册插件,这可是程序商店的一项要求哦。(注:等Inventor程序商店正式启动了,将附上其链接)
以上是我们的一点经验分享,不一定严格按照这些步骤学习,大家可根据自己的学习进度灵活安排。任何知识和技能,都需要不断的磨练。建议尽量的多熟悉各种例子,最好能结合项目做。暂时没有项目,多和你的客户和设计环节的同事交流。你会发现,InventorAPI强大的功能会让你的创意和智慧大有用武之地。三维设计大潮已经来临,用户的需求也层出不穷,商机无限。期待看到中国越来越多基于Inventor的应用程序。