c 的CAD二次開發兩種方式

2021-08-17 15:18:32 字數 3087 閱讀 4830

對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二次開發 看懂同事的 加入自己的需求開發 此處主要參考菜鳥教程,好快...