成人教育AV_色窝窝51精品国产人妻消防_蜜桃av国产在线15p_欧美sexhd_向日葵视频污官方网站APP下载_女人无遮挡裸交性做爰_久久国产视精品_亚洲99精品A片久久久久久

首頁 新聞中心 技術(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
麻栗坡县| 宁夏| 四子王旗| 阿城市| 吐鲁番市| 新巴尔虎右旗| 界首市| 西华县| 龙海市| 阳原县| 鹤峰县| 北安市| 荣昌县| 克拉玛依市| 新竹县| 金寨县| 南岸区| 平南县| 蕉岭县| 南乐县| 平原县| 宁陵县| 辽阳市| 密山市| 孟连| 广元市| 香港 | 烟台市| 焉耆| 邓州市| 安平县| 奎屯市| 乌什县| 公主岭市| 香河县| 永寿县| 黎城县| 永和县| 加查县| 长治县| 宜黄县|