Inventor 二次開發學習指南(入門到精通)
作者:樑曉冬 – Autodesk開發技術顧問
Inventor作為Autodesk公司製造業旗艦產品,已經在三維領域得到了廣泛的應用。許多國內開發者迫切想學習InventorAPI,學習如何應用到專業領域。也有很多做設計的工程師,想借助API提高設計效率。本文面向準備使用Inventor進行開發的讀者,旨在提供一個新手學習指南,以及相關學習資料,視訊,文件,例子。每個人學習的速度和階段不同,大家可根據自己的情況選取其中對你有用的內容(藍色字型為對應資源下載或站點的連結)。
1. 軟體預備
- Inventor 產品:可從Autodesk官方網站的Inventor產品目錄
- 開發環境:本文建議用.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:學習簡單的帶介面程式,瞭解其中的邏輯,以及如何操作選擇集
· 課程5:操作物件的附著屬性(Attributes)
· 課程6:基於前面課程,製作一個更加豐富的外掛
· 課程7:深入學習的建議
通過這些課程,你不僅會了解到Inventor API,也能步入程式設計的大門。當然,要夯實開發能力還得需要其它的.NET課程和不斷的磨練。
6. 模組化學習
我們按照常用知識點的難易,分為初級和中高階兩種學習模組。有些課程已經錄製,是國外同事做的,可先睹為快。中文的已經錄製了幾個,其它將陸續推出。
建議初學者可依次學習以下幾個初級篇:
· InventorAPI中的零件圖、部件圖和工程圖:介紹零件建模,部件組裝,出工程圖等系列功能。你將瞭解到很多基本的API物件和方法。
· 如何開發Inventor免註冊外掛:結合最新的免註冊外掛機制,講解如何實現免註冊,以及如何移植原有的註冊型外掛
· 事件的使用(英文):InventorAPI中各型別事件的使用方法,樣例
· Brep邊界表達法(英文):以圖形學的邊界表達法為理論基礎,講解如何理解和獲取Inventor實體的圖形資訊。
7. API 新功能
每年我們都會舉辦網路教程,對當年釋出的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檔案,會生成兩個對應名字的資料夾。前者包含了大量的程式碼樣例(按語言分類,VB.NET, C#, C++),經常用到的Inventor外掛嚮導,還有C++開發需要的標頭檔案,庫檔案。後者都是程式碼樣例,甚至直接可以作為工具使用。注意.NET需要用的InventorAPI互操作集(Interop)Autodesk.Inventor.Interop 已經隨著產品安裝到GAC中。另外,經過以上的學習,在對API有了一個比較系統的理解後,接下來可以開發一些複雜的應用。此時對某些類,方法和屬性需要更具體的用法指導。比如同一引數在C#和VB.NET裡的用法上是否有區別,在什麼樣的情況下可以用某函式等。若讀完InventorAPI幫助文件的解釋後還是不清楚。那麼可在InventorSDK的例項程式碼裡搜尋。輸入你關鍵字,找到使用該關鍵字的一些工程,開啟工程研究其用法。
10. 資源
若培訓教程,幫助文件,SDK例子都沒有涵蓋你所需要實現的需求,當你一籌莫展的時候, 可以上一些網路資源看看有無答案,我和我的同事們也經常上去發表文章解答問題。為大家方便,加上上面提到的連結,總結如下:
· SDK: 隨產品安裝
· 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的應用程式。