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.mzph.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;但是由…