AutoCAD進行二次開發

2021-04-23 04:00:12 字數 1164 閱讀 3791

本文基於autocad 2006新推出的.net api為工具,介紹了在.net平台下對autocad進行二次開發的技術,並與目前常用的vba、objectarx作了對比。同時討論了如何彌補.net api某些不足的功能。

當前autocad的二次開發工具主要有:visuallisp、vba和objectarx等。其中,visuallisp與vba較為簡單,特別是 vba,使用方便且開發速度較快,但其功能相比objectarx有所不足,尤其是對物件導向的功能支援不好。而objectarx基於vc平台,在 c++的支援下,其功能非常強大,可以很好地運用各種物件導向技術,但其缺點是發開速度比較慢,同時對開發人員的能力要求較高。

.net是微軟新推出的開發平台,具有眾多優點。基於.net平台對autocad進行二次開發,可充分利用.net的各種優勢,在保證功能強大的前提下大大提高開發速度。

一、基於.net的開發

namespace arxexample

public void terminate() ……}

}同時,為加快載入速度,可在myarx.cs的檔案頭加入以下語句:

[assembly: commandclass (typeof (arxexample.myarx) ) ]

(5).net api與com互動操作

在目前的.net api中,其功能與傳統的objectarx相比有所不及,有相當的objectarx函式目前還沒有封裝到.net api中,如getpoint等。但可以通過com方式使用activex來彌補.net api的不足。

增加了com引用後,程式就可以使用許多vba中的功能了。以autocad activex中的事件為例,以下**可以為當前工作空間中所有的圖元新增modified事件:

blocktable bt = (blocktable)db.blocktableid.open(openmode.forread);

blocktablerecord btr = (blocktablerecord)bt[blocktablerecord.modelspace].open(openmode.forwrite);

try

}finally

其中事件響應函式obj_modified的表示如下所示:

public static void obj_modified(acadobject obj)

用C 進行AutoCAD的二次開發

在上一次的例子中我是通過引用autocad 2004 type library來進行c 與autocad之間的通訊,但這種方法存在兩個致命的缺點。第乙個缺點是每次除錯程式的時候c 都要重新啟動autocad,如果除錯的次數非常多 比如跟蹤錯誤然後除錯 那麼程式設計的效率就很低,因為啟動一次cad還是...

利用C 進行AutoCAD的二次開發

利用c sharp 進行autocad 的二次開發。在這一講中,主要介紹上一講例子中存在的問題。在上一次的例子中我是通過引用 autocad 2004 type library 來進行c sharp 與autocad 之間的通訊,但這種方法存在兩個致命的缺點。第乙個缺點是每次除錯程式的時候 c sh...

AutoCAD二次開發的好處

autocad二次開發的好處 首先,autocad自身的功能就很強大,對於一般的平面製圖 比如建築 結構方面 不使用任何第三方的軟體,僅憑 autocad 自帶的基本命令,就可以完成。但如果這樣的話,cad製圖就是一件很枯燥乏味 效率低下的事情,比手工製圖強不到 去。autocad 的高明之處就在於...