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

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

C#批量將CAD圖幅網(wǎng)格外擴生成新圖框

發(fā)布時間:2021-10-03 22:11:31   瀏覽量:3529   作者:GIS前沿

之前遇見一個客戶問題,要將每一個圖幅網(wǎng)格進行向外偏移一定距離,保證每張圖幅都有一部分重疊度。

認真思考了一下就是向圖面添加由多段線構(gòu)成的正四邊形、我的設(shè)計思路是這樣的:
首先進行選擇集過濾,因為在圖形中不只有圖框線,還有注記等其他實體,將其他實體過濾掉、只選擇圖框線;
第二、對選擇的圖形進行循環(huán),獲取每個圖框的ObjectId,根據(jù)ObjectId獲取實體的外包矩形,得到左下角點和右上角點,因為是正四邊形,外包矩形和圖幅網(wǎng)格圖形一致,這樣就拿到了圖框的左下角點和右上角點的坐標;
第三、根據(jù)偏移的距離構(gòu)造出新圖框的左下角點和右上角點,并交會出新圖框的另外兩個角點的坐標;
第四、在內(nèi)存中新建Polyline對象,將點按順序依次連接并閉合;最后、向圖面添加實體,提交數(shù)據(jù)。

程序編寫流程

下圖是目前原始圖框各點和外擴后圖框各點之間的對應(yīng)關(guān)系圖,黑色邊框是目前原始圖框邊線,minPoint和maxPoint分別為圖框的左下角點和右上角點。根據(jù)偏移距離構(gòu)造出新的圖框(紅色框線)。

構(gòu)建新圖框示意圖

代碼如下:

在上面代碼中ed.GetSelection()是提示用戶從屏幕拾取對象,選擇的結(jié)果保存在PromptSelectionResult中;

如果用戶成功選擇,則從PromptSelectionResul能獲取被選中的實體集合,得到ObjectId數(shù)組,之后循環(huán)數(shù)組中每一個ObjectId,按照我們的設(shè)計流程進行逐個生成新圖框。

Polyline是CAD中多段線,我們在內(nèi)存中創(chuàng)建一個Polyline對象并調(diào)用它的AddVertexAt()方法向多段線中增加頂點;

AddVertexAt()方法有五個參數(shù)其中第一個為點的序號,第二個為點的坐標,第三個為凸度,第四個和第五個分別為起始寬度和結(jié)束寬度;

最后將Polyline的Closed屬性設(shè)為true,將新圖框閉合。

代碼執(zhí)行效果如下:

程序執(zhí)行結(jié)果


來源:https://blog.csdn.net/qq_43173805/article/details/112244593
波密县| 仙游县| 聂拉木县| 镇坪县| 吴旗县| 元阳县| 巫溪县| 安阳市| 额敏县| 耒阳市| 乐至县| 吉木萨尔县| 米脂县| 平凉市| 镇赉县| 宁城县| 宜阳县| 渑池县| 台前县| 鹤山市| 宿州市| 呼玛县| 进贤县| 自贡市| 长垣县| 乳山市| 苍南县| 纳雍县| 东源县| 崇礼县| 呼图壁县| 兴业县| 蚌埠市| 土默特右旗| 略阳县| 阿拉善右旗| 黄平县| 三都| 蚌埠市| 临桂县| 临夏市|