C# CAD2016 cass10宗地Xdata數據寫入

一、 查看cass10寫入信息

C# Cad2016二次開發獲取XData信息(二)

一共有81條數據
XData value: QHDM
XData value: 121321
XData value: SOUTH
XData value: 300000
XData value: 141121JC10720
XData value: 權利人
XData value: 0702
XData value: YBDJH
XData value: 預編號
XData value: TUFU
XData value: 3035.25-410.00
XData value: SJZGBM
XData value:
XData value: PZTDYT
XData value: 0101 水田
XData value: QLRZJLX
XData value: 1 身份證
XData value: QLRZJBH
XData value: 權利人身份證號碼
XData value: FRDBXM
XData value: 法人代表名字
XData value: FRDBZJLX
XData value: 1 身份證
XData value: FRDBZMS
XData value: 法人身份證
XData value: FRDBDH
XData value: 法人電話
XData value: DLRXM
XData value: 代理人姓名
XData value: DLRZJLX
XData value: 1 身份證
XData value: DLRSFZ
XData value: 代理人身份證
XData value: DLRDH
XData value: 代理人電話
XData value: QSLYZM
XData value: 權屬來源
XData value: TXDZ
XData value: 通信地址
XData value: BDDJ
XData value: 0
XData value: TDZL
XData value: 土地坐落
XData value: SBDJ
XData value: 0
XData value: DONGZHI
XData value: 東至
XData value: NANZHI
XData value: 南至
XData value: XIZHI
XData value: 西至
XData value: BEIZHI
XData value: 北至
XData value: SBJZWQS
XData value: 申報建筑物權屬
XData value: TDZH
XData value: 土地證號
XData value: AREA
XData value: 579.5341
XData value: BLAREA
XData value: 80.9471
XData value: JZMD
XData value: 0.1397
XData value: JZMJ
XData value: 80.9471
XData value: RJL
XData value: 0.1397
XData value: DWXZ
XData value: 01 國有
XData value: QSXZ
XData value: 10 國有土地所有權
XData value: SYQLX
XData value: 11 劃撥
XData value: GMJJHYFLDM
XData value: 01 農業
XData value: TDDJ
XData value: 101 綜合一級
XData value: QSRQ
XData value: 20240214
XData value: ZZRQ
XData value: 20240214

二、準備電子表格數據對應81條數據進行填充(我采用csv)不需要考慮office版本問題

三、基礎代碼走起選擇方式(批量導入)

這段C#代碼定義了一個AutoCAD自定義命令(函數)zdimport,該命令屬于名為“cad自定義面板集.jzd”的命名空間下的內部類zd導出。這個命令的主要功能是讓用戶從"宗地"圖層中選擇LWPOLYLINE對象,并可能對所選實體進行某種處理。

具體步驟如下:

  1. 獲取當前AutoCAD應用的活動文檔、數據庫和編輯器對象,以便后續進行數據操作和用戶交互。
  2. 創建一個選擇過濾器,限制用戶只能在"宗地"圖層上選擇LWPOLYLINE類型的對象。
  3. 使用編輯器提示用戶按照設定的過濾規則進行實體選擇,并獲取用戶選擇的結果。
  4. 檢查用戶是否成功選擇了至少一個實體。如果選擇狀態為PromptStatus.OK,則表示用戶已成功選擇實體。
  5. 開始一個新的事務以確保對AutoCAD數據庫的操作具有原子性和一致性。
  6. 遍歷用戶所選的所有LWPOLYLINE對象的ID,但在給出的代碼片段中,具體的處理邏輯被省略了(用注釋符//...代替)。開發者可能需要在此處填充處理這些選定多段線的實際代碼,例如讀取其屬性、修改它們或執行其他與業務需求相關的操作。

若要實現特定功能,可以在foreach (ObjectId outerId in outerSelRes.Value.GetObjectIds())循環內添加代碼,例如讀取并導出多段線的數據信息等。

    internal class zd導入{public static void zdimport(){// 獲取當前AutoCAD應用中的活動文檔、數據庫和編輯器對象Document doc = Application.DocumentManager.MdiActiveDocument;Database db = doc.Database;Editor ed = doc.Editor;// 創建一個選擇過濾器,限制用戶只能選擇"宗地"圖層上的LWPOLYLINE對象作為外部邊界SelectionFilter outerFilter = new SelectionFilter(new TypedValue[] {new TypedValue((int)DxfCode.Start, "LWPOLYLINE"),new TypedValue((int)DxfCode.LayerName, "宗地")});// 提示用戶根據上述規則進行實體選擇,并獲取選擇結果PromptSelectionResult outerSelRes = ed.GetSelection(outerFilter);// 檢查用戶是否成功選擇了實體if (outerSelRes.Status == PromptStatus.OK){}}}
}

四、 需要從cad上 獲取對應信息,宗地預編號,權利人名字這兩個基礎信息(?宗地線范圍內包含信息)

?通過SelectWindowPolygon獲取到權利人圖層和預編號圖層的文本信息并把信息寫入到宗地xdata對應信息

using (Transaction tr = db.TransactionManager.StartTransaction())// 開始事務處理以確保數據一致性
{foreach (ObjectId outerId in outerSelRes.Value.GetObjectIds())// 遍歷所有被選中的外部多段線{Polyline outerPolyline = (Polyline)tr.GetObject(outerId, OpenMode.ForRead);// 確保所選多段線是閉合的且至少有一個頂點if (outerPolyline.Closed && outerPolyline.NumberOfVertices > 0){// 創建并填充一個表示外部多段線邊界坐標的點集合Point3dCollection outerPoints = new Point3dCollection();for (int i = 0; i < outerPolyline.NumberOfVertices; i++){Point3d point = outerPolyline.GetPoint3dAt(i);              outerPoints.Add(point);}// 創建一個窗口選擇過濾器,用于選擇位于外部多段線內的所有實體SelectionFilter innerFilter = new SelectionFilter(new TypedValue[] {new TypedValue((int)DxfCode.Start, "TEXT"),new TypedValue((int)DxfCode.LayerName, "權利人"),new TypedValue((int)DxfCode.LayerName, "預編號")});// 使用多邊形窗口選擇方式讓用戶選擇位于外部多段線內的實體PromptSelectionResult innerSelRes = ed.SelectWindowPolygon(outerPoints, innerFilter);// 檢查用戶是否成功在內部區域進行了實體選擇if (innerSelRes.Status == PromptStatus.OK){SelectionSet innerSelectionSet = innerSelRes.Value;foreach (ObjectId id2 in innerSelectionSet.GetObjectIds()){DBText text = tr.GetObject(id2, OpenMode.ForRead) as DBText;if (text != null){// 獲取圖層名稱string layerName = text.Layer;//文本信息string textContent = text.TextString;// 獲取文本坐標double xPos = text.Position.X;double yPos = text.Position.Y;}}}}}
}

?//有需要cad二次開發可以私信進行聯系
//感謝大家的點贊,收藏,轉發,關注???

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/697496.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/697496.shtml
英文地址,請注明出處:http://en.pswp.cn/news/697496.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

2.居中方式總結

居中方式總結 經典真題 怎么讓一個 div 水平垂直居中 盒子居中 首先題目問到了如何進行居中&#xff0c;那么居中肯定分 2 個方向&#xff0c;一個是水平方向&#xff0c;一個是垂直方向。 水平方向居中 水平方向居中很簡單&#xff0c;有 2 種常見的方式&#xff1a; 設…

java面試題之mybatis篇

什么是ORM&#xff1f; ORM&#xff08;Object/Relational Mapping&#xff09;即對象關系映射&#xff0c;是一種數據持久化技術。它在對象模型和關系型數據庫直接建立起對應關系&#xff0c;并且提供一種機制&#xff0c;通過JavaBean對象去操作數據庫表的數據。 MyBatis通過…

MATLAB練習題:randperm函數的練習題

?講解視頻&#xff1a;可以在bilibili搜索《MATLAB教程新手入門篇——數學建模清風主講》。? MATLAB教程新手入門篇&#xff08;數學建模清風主講&#xff0c;適合零基礎同學觀看&#xff09;_嗶哩嗶哩_bilibili MATLAB中有一個非常有用的函數&#xff1a;randperm函數&…

華為算法題 go語言或者ptython

1 給定一個整數數組 nums 和一個整數目標值 target&#xff0c;請你在該數組中找出 和為目標值 target 的那 兩個 整數&#xff0c;并返回它們的數組下標。 你可以假設每種輸入只會對應一個答案。但是&#xff0c;數組中同一個元素在答案里不能重復出現。 你可以按任意順序返…

如何進行高性能架構的設計

一、前端優化 減少請求次數頁面靜態化邊緣計算 增加緩存控制&#xff1a;請求頭 減少圖像請求次數&#xff1a;多張圖片變成 一張。 減少腳本的請求次數&#xff1a;css和js壓縮&#xff0c;將多個文件壓縮成一個文件。 二、頁面靜態化 三、邊緣計算 后端優化 從三個方面進…

adb-monkey命令

目錄 adb shell monkey -p/-v 包名 次數 1、指定一個包 2、指定多個包 3、不指定包 Event percentages&#xff08;事件百分比&#xff09; 常見參數 --throttle 延遲時間 單位毫秒 --pct-touch 設定觸屏事件生成的百分比 --pct-motion 設定滑動事件生成…

面試前端性能優化八股文十問十答第二期

面試前端性能優化八股文十問十答第二期 作者&#xff1a;程序員小白條&#xff0c;個人博客 相信看了本文后&#xff0c;對你的面試是有一定幫助的&#xff01;關注專欄后就能收到持續更新&#xff01; ?點贊?收藏?不迷路&#xff01;? 1&#xff09;如何優化動畫&#x…

c語言中的大小寫字母轉換怎么轉?

在C語言中&#xff0c;大小寫字母轉換是基于ASCII碼表的特性實現的。ASCII碼中&#xff0c;小寫字母從’a’到’z’的ASCII碼值是連續的&#xff08;97到122&#xff09;&#xff0c;而大寫字母從’A’到’Z’的ASCII碼值也是連續的&#xff08;65到90&#xff09;。它們之間有…

Redis高性能原理

redis大家都知道擁有很高的性能&#xff0c;每秒可以支持上萬個請求&#xff0c;這里探討下它高性能的原理。單線程架構和io多路復用技術。 一&#xff0c;單線程架構 單線程架構指的是命令執行核心線程是單線程的&#xff0c;數據持久化、同步、異步刪除是其他線程在跑的。re…

獲取視頻第一幀,以及后續上傳

// 獲取視頻基本信息 const getVideoBasicInfo (videoSrc) > {return new Promise((resolve, reject) > {const video document.createElement("video");video.src videoSrc;// 視頻一定要添加預加載video.preload "auto";// 視頻一定要同源或者…

什么是系統工程(字幕)35

0 00:00:01,190 --> 00:00:02,840 下面的內容 1 00:00:04,850 --> 00:00:06,520 接下來呢就是 2 00:00:08,180 --> 00:00:09,830 16.6.1 3 00:00:11,070 --> 00:00:13,440 項流熱平衡分析 4 00:00:15,350 --> 00:00:16,730 這一節 5 00:00:18,860 --> 0…

億道丨三防平板丨加固平板丨三防加固平板丨改善資產管理

庫存資產管理中最重要的部分之一是準確性&#xff1b;過時的庫存管理技術會增加運輸過程中人為錯誤、物品丟失或紙張損壞的風險。如今隨著三防平板電腦的廣泛使用&#xff0c;庫存管理也迎來了好幫手&#xff0c;通過使用三防平板電腦能夠確保庫存管理、數據存儲和記錄保存的準…

React18源碼: React調度中的3種優先級類型和Lane的位運算

優先級類型 React內部對于優先級的管理&#xff0c;貫穿運作流程的4個階段&#xff08;從輸入到輸出&#xff09;&#xff0c;根據其功能的不同&#xff0c;可以分為3種類型&#xff1a; 1 &#xff09;fiber優先級(LanePriority) 位于 react-reconciler包&#xff0c;也就是L…

掌握 Android 中的 RecyclerView 優化

掌握 Android 中的 RecyclerView 優化 一、RecyclerView Pool以及何時使用它二、onCreateViewHolder 和 onBindViewHolder三、優化 RecyclerView 的不同方法四、視圖無效與請求布局五、ViewHolder模式六、默認的廢料和臟視圖類型七、結論 RecyclerView 是 Android 中一個功能強…

【操作系統】磁盤存儲空間的管理

實驗5 磁盤存儲空間的管理 一、實驗目的 磁盤是用戶存放程序和數據的存儲設備&#xff0c;磁盤管理的主要目的是充分有效地利用磁盤空間。本實驗模擬實現磁盤空間的分配與回收&#xff0c;使學生對磁盤空間的管理有一個較深入的理解。 二、實驗內容 實驗任務&#xff1a;用位…

FreeSWITCH debian11/12 apt安裝

官方給的easy way安裝方式如下&#xff1a; # 換成自己的token TOKENpat_ZrPXJQ8JNWsVQW2ubhnUwi7gapt-get update && apt-get install -y gnupg2 wget lsb-releasewget --http-usersignalwire --http-password$TOKEN -O /usr/share/keyrings/signalwire-freeswitch-…

#LLM入門|Prompt#1.2_提示原則_Guidelines

提示原則 一、編寫清晰、具體的指令 使用分隔符清晰地表示輸入的不同部分&#xff1a; 在Prompt中使用分隔符&#xff0c;如、“”"、< >、 、:等&#xff0c;將不同的文本部分區分開來&#xff0c;避免混淆和意外的結果。分隔符能夠防止提示詞注入&#xff0c;提…

petalinux_zynq7 驅動DAC以及ADC模塊之四:python實現http_api

前文&#xff1a; petalinux_zynq7 C語言驅動DAC以及ADC模塊之一&#xff1a;建立IPhttps://blog.csdn.net/qq_27158179/article/details/136234296petalinux_zynq7 C語言驅動DAC以及ADC模塊之二&#xff1a;petalinuxhttps://blog.csdn.net/qq_27158179/article/details/1362…

Java觀察者模式:實現高效的事件驅動編程

Java中的裝飾者模式&#xff1a;靈活地為對象添加功能 一、引言 在軟件設計中&#xff0c;我們經常需要為對象動態地添加功能或行為。裝飾者模式&#xff08;Decorator Pattern&#xff09;是一種結構型設計模式&#xff0c;它允許我們在運行時將功能動態地添加到對象上&…

串的相關題目

于是他錯誤的點名開始了 我發現有關hash得題目有些是可以通過map數組來完成的&#xff1a;何為map數組&#xff0c;我們先思考一下最簡單的桶的排序&#xff0c;桶排序是將我們需要數字最為下標輸進數組中&#xff0c;而數組是存放的數字是這個數字出現的次數&#xff0c;但是由…