AutoCAD 的自動化(Automation),R14版前的DOS模式,主要有利用AutoLisp程式與C語法的RAX,其中AutoLisp的語法比較簡單,較符合非專業程式開發使用者來做繪圖自動化,而ARX則較難,適合效能需求或複雜度高的3rd Party之類軟體開發。
Window 95開始,正式進入視窗時代,AutoCAD也跟著支援VBA的功能,AutoLisp也因應視窗環境開發升等到VisualLisp。為何新增支援VBA呢?不難發現是配合微軟的Office系列,不僅可以將AutoCAD當作獨立自動化平台,甚是可以跨軟體處理數據,諸如:Excel處理完的數據,丟到AutoCAD繪圖、或是將AutoCAD繪圖的資料丟回Access 資料庫儲存統計...等等,用法千變萬化,只要利用不是很難的程式,就可以作到符合自己或公司的需求。況且這些特殊性用法的小軟體,市場需求不大,專業軟體開發公司是不會開發這類的軟體的。
2002年,微軟改推.Net,作業系統也自WindowsXP以後,開始做了變革,第一個是不受好評的Windows Vista,到目前主力作業系統 Windows 7,後面的 Windows 8也即將上市,作業系統的改變也意味著相關產品及支援即將不同,所以不難發現AutoCAD為何開始慢慢遠離VBA,改推.Net方式的自動化。讓我不解的是微軟自身的Office及相關產品,目前都還正常支援VBA功能,為何AutoCAD急著想與VBA切割,這就不得而知。
目前在Windows下可支援VBA的應用程式,查了一下大致有
- MS Word
- MS Excel
- MS Access
- MS PowerPoint
- MS Outlook
- MS Project
- MS Publisher
- MS Visio
- Autodesk AutoCAD
- Bentley MicroStation
- 其他
話說AutoCAD 2010開始不主動安裝VBA軟體,不過至今AutoCAD2012版,皆提供下載安裝的服務,否則辛苦撰寫的VBA程式不就白寫的。需要下載安裝的人,可以到AutoDesk官網下載安裝(http://usa.autodesk.com/adsk/servlet/item?siteID=123112&id=12715668&linkID=9240618)
以本人的看法,目前還是偏愛利用VBA來做Automation,其原因如下
1. 使用者版本不會跟上太快
以在下的觀察,目前有版權的用戶,應該還是集中在2004-2008版本之間,除非你需要新版本的某些特殊功能。 況且新版本還提供VBA的下載安裝來解套,所以VBA應該還可以撐個5-10年以上。
2. VBA可以方便與其他軟體溝通
VB的語法比Lisp簡單易懂,方便程式撰寫,且學校大部分都有教Basic程式,上手容易。會在AutoCAD寫程式代表也會在其他軟體寫程式,通用性較高。
至於他的接班人VSTA(Visual Studio Tools for Applications,有人稱.Net), 主要缺點是還要購買安裝Visual Studio!不能軟體(AutoCAD)打開就可以開始撰寫程式。好處是可以利用VB.net 或 C#程式語言,藉用.Net Framework來呼叫AutoCAD的函式庫,這種作法感覺就跟直接利用VisualBasic 6來呼叫AutoCAD的COM元件沒什麼兩樣(ActiveX Automation),開發門檻高且不方便。與一開始原意:可以讓使用者快速撰寫簡單小程式來自動化的想法相違背。除非:你用 AutoLisp !! ><
哈!我只會 AutoLISP!
回覆刪除原來,兄台您會比較難的那種!!^^
刪除