亚洲区小说区激情区图片区_幸福宝app污版下载_午夜香蕉av_欧美熟女内射观看

首頁 新聞中心 技術(shù)博客

C# | CAD批量導(dǎo)出多段線節(jié)點(diǎn)坐標(biāo)(附源代碼下載)

發(fā)布時(shí)間:2021-10-04 23:54:38   瀏覽量:5818   作者:GIS前沿

在日常工作內(nèi)容中經(jīng)常需要用到提取CAD圖面坐標(biāo)點(diǎn),用于放樣和其他軟件做交換數(shù)據(jù)使用;比如導(dǎo)出測量點(diǎn)坐標(biāo)、多段線節(jié)點(diǎn),圖塊點(diǎn)等。導(dǎo)出點(diǎn)坐標(biāo)可以用CAD的“DATAEXTRACTION”命令創(chuàng)建數(shù)據(jù)提取將數(shù)據(jù)導(dǎo)出(如圖一);對(duì)于單條多段線的坐標(biāo)也可以使用“LIST”命令把多段線的坐標(biāo)打印在命令上(如圖二)、然后將坐標(biāo)復(fù)制出來;如果圖面數(shù)據(jù)比較多的情況下,這種作業(yè)效率顯而太低,下面做一個(gè)將圖面所有多段線節(jié)點(diǎn)坐標(biāo)導(dǎo)出的功能,并在每個(gè)地塊上標(biāo)注一個(gè)地塊名字和標(biāo)注每個(gè)地塊的節(jié)點(diǎn)點(diǎn)號(hào),方便和圖面和數(shù)據(jù)文件對(duì)比。這里用到了CAD文字實(shí)體添加、文件保存等操作。

程序設(shè)計(jì)過程

  1. 創(chuàng)建一個(gè)List數(shù)據(jù)集合,用于存儲(chǔ)地塊名字和每條多段線節(jié)點(diǎn)坐標(biāo)。
  2. 過濾選擇圖上所有多段線,獲取選擇實(shí)體的objectId集合。
  3. 循環(huán)選擇集,根據(jù)objectId獲取多段線實(shí)體和實(shí)體外包矩形的中心點(diǎn)(注記地塊名字的基點(diǎn)位置),并將地塊的名字加到數(shù)據(jù)集合中和注記在圖面上。
  4. 使用Polyline的NumberOfVertices獲取多段線的節(jié)點(diǎn)個(gè)數(shù),使用 GetPoint3dAt()方法循環(huán)獲取每一個(gè)點(diǎn)的坐標(biāo)、同時(shí)把節(jié)點(diǎn)坐標(biāo)添加到數(shù)據(jù)集合和把點(diǎn)號(hào)注記在圖面上,文字注記的基點(diǎn)位置就是每個(gè)點(diǎn)的位置。
  5. 保存數(shù)據(jù)集合;由于數(shù)據(jù)量不大,我們使用File.WriteAllLines()方法將數(shù)據(jù)集合全部導(dǎo)出txt文本文件。

CAD單行文字

使用單行文字時(shí),每一行文字都是一個(gè)單獨(dú)的對(duì)象。創(chuàng)建單行文字的方法是,首先創(chuàng)建DBText對(duì)象的實(shí)例,然后將其添加到代表模型空間或圖紙空間的塊表記錄中。創(chuàng)建DBText對(duì)象的實(shí)例時(shí),不用給構(gòu)造函數(shù)傳遞任何參數(shù)。
DBText text = new DBText();

File類

File 類提供用于創(chuàng)建、復(fù)制、刪除、移動(dòng)和打開文件的靜態(tài)方法,并協(xié)助創(chuàng)建 FileStream 對(duì)象。在使用File之前需要導(dǎo)入IO命名空間using System.IO;
使用WriteAllLines()方法將數(shù)據(jù)集合保存到文本文件中,這里面有是三個(gè)參數(shù):第一、指定保存文件的路徑;第二要保存的數(shù)據(jù)集合;第三、文件的編碼,這里定義了UTF-8編碼、防止出現(xiàn)亂碼情況。

程序代碼

在上面代碼中,將獲取實(shí)體外包矩形的中心點(diǎn)和向圖面添加文字分別做成了自定義函數(shù),同時(shí)也方便我們以后程序的使用、不需要重復(fù)寫代碼同時(shí)也減少代碼的冗余。

向圖面添加單行文字函數(shù)

獲取實(shí)體外包矩形的中心點(diǎn)函數(shù)

程序執(zhí)行

加載編寫的應(yīng)用程序,執(zhí)行“ExPoints”命令。

  1. 選擇多段線

  1. 指定保存文件的位置

  1. 查看保存的結(jié)果


來源:https://blog.csdn.net/qq_43173805/article/details/112021290
绥江县| 江达县| 娄底市| 和静县| 思茅市| 桐庐县| 天峨县| 理塘县| 濮阳县| 明星| 修武县| 澄迈县| 博湖县| 花莲县| 襄垣县| 屏东县| 安多县| 宝鸡市| 凭祥市| 静安区| 井冈山市| 如东县| 中西区| 连平县| 怀仁县| 册亨县| 张家川| 胶南市| 中西区| 永平县| 阳新县| 军事| 新宁县| 太白县| 榆林市| 伽师县| 宣武区| 玉田县| 高阳县| 乳源| 朝阳市|