對autocad進行二次開發可以使用:objectarx,vba,vlisp。但在這裡不借用它們,而是直接使用c#開發。
有類庫和應用程式兩種方式:
方法1:vs2010 開發autocad 2008 類庫
建立動態庫,從autocad命令列使用netload調入,然後執行其方法
一 建立專案
1,建乙個wxindows窗體程式「專案」,設定輸出為「類庫」
2,新增引用--瀏覽--從autocad2008的安裝目錄c:\program files\autodesk\mdt 2008下,找到引用acdbmgd.dll和acmgd.dll
4,方法名前,加特性 commandmethod
5,完整**如下:
二 工程的目標框架框架版本
在 vs2010 中 開發,預設的版本是.net framework 4.0版本高,對於引用autocad 2008,講無法編譯
在工程的屬性中,目標框架是 改為 .net framework 2.0 或者.net framework 3.5 就可以了
三 除錯的方法設定
vs2010生成 autocad2008 類庫除錯方法
屬性中 --除錯-- 外部啟動程式:
四 啟動autocad 2008
1 在vs2010的開發環境,編譯鏈結完成後,按f5鍵啟動除錯,等待自動啟動autocad 2008完成後,
2 在命令列輸入:netload,彈出裝入類庫的對話方塊,
瀏覽找到剛編譯形成的類庫,classlibrary2\classlibrary2\bin\debug\classlibrary2.dll
3 在命令列輸入: helloworld,
將會提示是:未知的命令,原因是acdbmgd.dll acmgd.dll版本過高所致
五 重新引入較低版本的動態庫
autocad 2008 自帶的動態庫 acdbmgd.dll acmgd.dll
版本 17.1.0.0,執行時版本 v2.0.50727
版本高 ,在vs2010工程中引用後,雖可以生成的動態庫,但在autocad中netload可以裝入,但執行其中的方法,提示是未知的命令,有兩種方法:
1 引用autocad的安裝目錄下的acdbmgd.dll 和acmgd.dll的版本是 17.1.0.0,從其屬性中
將「複製本地」 改為 「false」,這樣形成的dll 的方法,在autocad中就可以認識,不再是未知的命令
版本 16.2.54.0
執行時版本 v1.0.3705
方法2:c#建立乙個操autocad2008的應用程式
二 型別庫的新增引用
右擊專案的「引用」--「新增引用」--從「com」頁,找到以下兩個型別庫
引用名稱 ----- 對應的動態庫
autocad ----- autodesk.autocad.interop.dll 嵌入互操作型別 false
2 autodesk autocad mechanical 1.0 type library
引用名稱 ----- 對應的動態庫
acadmauto ----- interop.acadmauto.dll,嵌入互操作型別 false
三 主要的操作函式
1 使用的檔案中加入語句
using autocad = autodesk.autocad.interop;
using system.runtime.interopservices;
using dbx = autodesk.autocad.interop.common;
2 注操作**
using system;
using system.collections.generic;
using system.componentmodel;
using system.data;
using system.drawing;
using system.linq;
using system.text;
using system.windows.forms;
using system.windows.forms;
using autocad = autodesk.autocad.interop;
using dbx = autodesk.autocad.interop.common;
using smartsoft.acad;
namespace aotucadwinfrm
private void button1_click(object sender, eventargs e)}}
Cad二次開發(三)
接著上次的說,上次介紹了環境搭建,並成功的列印了 hello cad,下面介紹cad中基本操作。首先加入乙個直線到cad中 想要讀取這段 要有一定的c 基礎,如果沒有任何c 基礎建議先從c 基礎學習,推薦譚浩強版本的教程,淺顯易懂。下面介紹一些cad的乙個基本實體 直線。直線包含兩個點 起點和終點。...
CAD二次開發(C )之Document 物件
document 物件實際上就是 autocad 圖形,它是 documentcollection 物件的一部分,並提供訪問與 document 物件相關的 database 物件。database 物件包括所有的圖形和大部分非圖形的 autocad 物件。連同 database 物件一起,docu...
《專注學習》基於C 的CAD二次開發
三 基於c 的cad二次開發 依舊因為專案需要,需要cad二次開發下,已經有優秀的同事做了一部分功能了,也已經有比較成熟的 因為我這邊專案的需要,得自己開發的相應功能,只能自己慢慢學起來了 c 語言的了解 了解如何利用c 進行cad二次開發 看懂同事的 加入自己的需求開發 此處主要參考菜鳥教程,好快...