用C#編寫AutoCAD中的直線

來源:互聯網
上載者:User

標籤:cad   調試   vs2005   

1)開啟VS2005,選擇Visual C#--》類庫--》名稱為:Line2,如下:

圖(1) 建立C# 的類庫

2)為項目Line2引用三個dll檔案,分別為acdbmgd.dll、acmgd.dll、DotNetARX.dll。其中acdbmgd.dll、acdmgd.dll是AutoCCAD託管封裝類,DotNetARX.dll是一個用於.net開發AutoCAD程式的類庫。前兩個dll在AutoCAD的安裝檔案裡可以找到,DotNetARX.dll可以在網上下一個,我用的是DotNetARX6.0。acdbmgd.dll、acdmgd.dll的屬性有一個“複製到本地“:False。


圖(2)添加三個dll引用


圖(3)將cdbmgd.dll、acdmgd.dll的”複製本地“選為False

3)禁用LoaderLock。點擊”調試“--》異常--》 Managed Debugging Assistans-->去掉”LoaderLock“前面的對勾。


圖(4)禁用LoaderLock

4)啟用外部程式:C:\Program Files\AutoCAD 2006\acad.exe。

   右擊項目”Line2“--》屬性--》調試--》勾選”啟用外部程式“。如下:


圖(5)啟用外部的acad.exe

5) C#編寫的代碼如下:

using System;using System.Collections.Generic;using System.Text;using Autodesk.AutoCAD.DatabaseServices;using Autodesk.AutoCAD.Geometry;using Autodesk.AutoCAD.Runtime;namespace Line2{    public class Line2    {        [CommandMethod("FirstLine")]        public static void FirstLine()        {            //擷取當前活動圖表形資料庫            Database db = HostApplicationServices.WorkingDatabase;            Point3d startPoint = new Point3d(500, 500, 0);  //直線起點            Point3d endPoint = new Point3d(700, 500, 0); //直線終點            Line line = new Line(startPoint, endPoint); //建立一直線對象               //定義一個指向當前資料庫的交易處理,以添加直線            using (Transaction trans = db.TransactionManager.StartTransaction())            {                BlockTable bt = (BlockTable)trans.GetObject(db.BlockTableId, OpenMode.ForRead); //以讀方式開啟塊表.                //以寫方式開啟模型空間塊表記錄.                BlockTableRecord btr = (BlockTableRecord)trans.GetObject(bt[BlockTableRecord.ModelSpace], OpenMode.ForWrite);                //將繪圖物件的資訊添加到塊表記錄中,並返回ObjectId對象.                btr.AppendEntity(line);                trans.AddNewlyCreatedDBObject(line, true); //把對象添加到交易處理中.                trans.Commit(); //提交交易處理            }        }    }}


 6)按F5鍵啟動調試,在AutoCAD的命令列視窗輸入命令:

        netload
   找到Line2.dll(一般在工程的Debug目錄裡),開啟Line2.dll,在AutoCAD的命令列視窗輸入自訂的命令:
       FirstLine

   效果如下:


圖(6)輸入netload,載入Line2.dll


圖(7)輸入自訂的命令FirstLine,畫一條直線

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.