<kbd id="9plqc"><label id="9plqc"></label></kbd>

        <th id="9plqc"></th>
        1. <center id="9plqc"><video id="9plqc"></video></center>
          <sub id="9plqc"><form id="9plqc"><pre id="9plqc"></pre></form></sub>
          <nav id="9plqc"><form id="9plqc"><legend id="9plqc"></legend></form></nav>
          C#實戰(zhàn)之CAD二次開發(fā)002:繪制直線和繪制圓 您所在的位置:網(wǎng)站首頁 屬龍的找對象應(yīng)該找屬什么的 C#實戰(zhàn)之CAD二次開發(fā)002:繪制直線和繪制圓

          C#實戰(zhàn)之CAD二次開發(fā)002:繪制直線和繪制圓

          2025-07-17 02:49| 來源: 網(wǎng)絡(luò)整理| 查看: 265

          前言 上期我們介紹了C#和CAD環(huán)境的配置,這次我們介紹一下CAD兩個基本的繪圖功能——直線和圓,這兩個在CAD繪圖中用的還是比較多的。

          1.繪制直線

          首先我們新建一個類庫項目,名字myproject,在添加引用acmgd.dll和acdbmgd.dll,需要注意的一點就是,在添加完引用之后,需要將兩個引用dll的屬性進行一個設(shè)置,將屬性中“復(fù)制本地”的選項改為Fasle。

          using Autodesk.AutoCAD.DatabaseServices; using Autodesk.AutoCAD.Geometry; using Autodesk.AutoCAD.Runtime; public static class Tools { //繪制直線 public static void FirstLine(Point3d startPoint, Point3d endPoint, string layer) { //獲取當前活動圖形數(shù)據(jù)庫 Database db = HostApplicationServices.WorkingDatabase; Line line = new Line(startPoint, endPoint);//新建一條直線對象 //定義一個指向當前數(shù)據(jù)庫的事務(wù)處里,以添加直線 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); line.Layer = layer; btr.AppendEntity(line);//以圖形對象的信息添加到塊表記錄中 trans.AddNewlyCreatedDBObject(line, true);//把對象添加到事務(wù)處理中 trans.Commit();//提交事務(wù)處理 } } }

          在.NET中,Autodesk.AutoCAD.Geometry命名空間的Point3d結(jié)構(gòu)表示點的三維坐標,Point2d結(jié)構(gòu)表示點的二維坐標。 其中mode參數(shù)表示打開對象的方式,它是一個OpenMode類型的枚舉,主要兩個值: (1)ForRead:對象以讀的方式被打開,只要它還沒有以寫的方式被打開; (2)ForWrite:對象以寫的方式被打開,只要它還沒有被打開,否則會打開失敗;

          接著我們在新建一個類,用于建立CAD命令行指令,用于調(diào)用上面繪制直線的函數(shù)。其中三個參數(shù)所代表的意思分別是直線的起點,終點和它所在的圖層。

          public class Command { //名字可以自定義,最好不要和CAD快捷鍵沖突 [CommandMethod("cad")] public static void cad() { Tools.FirstLine(new Point3d(0, 0, 0), new Point3d(100, 100, 0), "0"); } }

          接下來,編譯我們寫好的程序,當顯示生成成功之后,我們就可以去CAD進行測試了。 打開CAD,在命令行中輸入‘cad’命令,CAD就會幫我們畫出一條起點為(0,0,0),終點為(100,100,0)的直線了。效果如下圖所示: 在這里插入圖片描述

          2.繪制圓

          如果學(xué)會繪制直線之后,相信讀者對C#作CAD畫圖會有一個基本的了解了,下面我們在來實現(xiàn)繪制圓。我們采用的是三點畫圓法,通過圓周上任意三點創(chuàng)建圓。

          public static void CreateCircle(Point3d pt1, Point3d pt2, Point3d pt3, string layer) { Database db = HostApplicationServices.WorkingDatabase; Circle circle = new Circle(); //創(chuàng)建一個幾何類的圓弧對象 CircularArc3d geArc = new CircularArc3d(pt1, pt2, pt3); //將圓弧對象的圓心和半徑賦值給圓 circle.Center = geArc.Center; circle.Radius = geArc.Radius; circle.Layer = layer; //定義一個指向當前數(shù)據(jù)庫的事務(wù)處里,以添加 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); btr.AppendEntity(circle);//以圖形對象的信息添加到塊表記錄中 trans.AddNewlyCreatedDBObject(circle, true);//把對象添加到事務(wù)處理中 trans.Commit();//提交事務(wù)處理 } }

          同樣的,我們在之前寫好的Command類中添加一行代碼:

          Tools.CreateCircle(new Point3d(50, 50, 0), new Point3d(0, 50, 0), new Point3d(50, 0, 0), "0");

          再次編譯寫好的程序,打開CAD,輸入‘cad’命令,效果如下圖所示: 在這里插入圖片描述 至此,繪制直線和繪制圓的介紹就到此為止了,是不是感覺很簡單呀,下期我會介紹利用C#在CAD中的插入文字和插入圖塊兩個功能。



          【本文地址】

          公司簡介

          聯(lián)系我們

          今日新聞

          推薦新聞

          專題文章
            CopyRight 2018-2019 實驗室設(shè)備網(wǎng) 版權(quán)所有
            黄色免费网站在线看,韩国精品在线观看,韩国美女一区二区,99国产热 迁安市| 合阳县| 东丽区| 同江市| 万年县| 弥渡县| 鄂尔多斯市| 宁城县| 汤原县| 阜城县| 车险| 伽师县| 柳州市| 中牟县| 微山县| 南投县| 贵溪市| 分宜县| 渭南市| 唐山市| 九龙县| 抚顺县| 泗洪县| 宣威市| 灵丘县| 兴国县| 万宁市| 卓尼县| 灯塔市| 和林格尔县| 连州市| 营山县| 桂阳县| 内乡县| 二连浩特市| 吴江市| 维西| 绥阳县| 都昌县| 呼和浩特市| 白河县| http://444 http://444 http://444 http://444 http://444 http://444