2012-03-13

AutoCAD中VBA的沒落

VBA在AutoCAD 2000版開始支援,經過10多年的演進,目前官方已經正式宣佈,自AutoCAD 2010版開始,不再隨附安裝VBA(Visual Basic Application)這個模組了,以下是官方的說法:「雖然AutoCAD目前仍支持VBA,但Autodesk正在評估未來的Autodesk產品是否將繼續支援VBA。」...


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 !! ><





2 則留言:

  1. 哈!我只會 AutoLISP!

    回覆刪除
    回覆
    1. 原來,兄台您會比較難的那種!!^^

      刪除