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.mfbz.cn/a/404681.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

卫星地面站监测系统仿真

当今世界&#xff0c;大国竞争日趋激烈&#xff0c;国际关系愈发紧张&#xff0c;信息与通信已经是当下高度信息化社会的“命脉”&#xff0c;信息只有经过有效且广泛地传播&#xff0c;才能成为一种有利用价值的资源&#xff0c;产生经济效益、推动社会发展。通信技术在发展的…

【必备清单】开学运动好物清单,迎接新学期,打造健康体魄!

随着新学期的开始&#xff0c;校园里的氛围渐渐热络起来。作为一名学生&#xff0c;除了学习之外&#xff0c;参与体育运动也是非常重要的。不仅可以锻炼身体&#xff0c;提高身体素质&#xff0c;还能增加社交机会&#xff0c;丰富学校生活。然而&#xff0c;想要成为一名校园…

software framwork

software framwork软件架构 软件架构&#xff0c;之前图没找到&#xff0c;随手画了一个啦&#xff0c;了解架构细分职能和工作任务&#xff1a; 下图&#xff0c;第一是客户端架构包项目&#xff0c;第二是服务端架构包项目 -----------------------------------------------…

数字化转型解锁企业高效协作与管理优化的新篇章!

一、客户介绍 某服饰股份有限公司是一家集服装设计、生产、销售及品牌建设于一体的企业。该公司的产品线涵盖男装、女装、童装等多个领域&#xff0c;设计风格时尚、简约、大方&#xff0c;深受消费者喜爱。公司注重产品研发&#xff0c;不断推陈出新&#xff0c;紧跟时尚潮流…

洗选中心智能化运维工是做什么的?智能化运维工程师是干什么的

洗选中心智能化运维工程师的职责和工作内容&#xff1f;同时&#xff0c;描述智能化运维工程师在信息技术行业中的具体角色和他们的主要任务。  洗选中心智能运维工程师的职责和工作内容主要包括&#xff1a;  设备监控管理&#xff1a;重点对洗涤中心机器进行实时监控管理…

C#与VisionPro联合开发——INI存储和CSV存储

1、INI存储 INI 文件是一种简单的文本文件格式&#xff0c;通常用于在 Windows 环境中存储配置数据。INI 文件格式由一系列节&#xff08;section&#xff09;和键值对&#xff08;key-value pairs&#xff09;组成&#xff0c;用于表示应用程序的配置信息。一个典型的 INI 文…

面试官:你知道Comparable 和 Comparator 的区别吗?我:巴拉巴拉

写在开头 面试官&#xff1a;“我们在Java的集合和数据结构中都离不开比较器&#xff0c;请你聊一聊Comparable 和 Comparator 这两种的区别吧” 内心活动&#xff1a;“上来就这么直接吗&#xff0c;那些ArrayList&#xff0c;HashMap都不问呀&#xff0c;好&#xff0c;既然…

船舶制造5G智能工厂数字孪生可视化平台,推进船舶行业数字化转型

船舶制造5G智能工厂数字孪生可视化平台&#xff0c;推进船舶行业数字化转型。随着数字化时代的到来&#xff0c;船舶行业正面临着前所未有的机遇与挑战。为了适应这一变革&#xff0c;船舶制造企业需要加快数字化转型的步伐&#xff0c;提高生产效率、降低成本并增强市场竞争力…

“职”想有你!庭田科技2024招聘开始啦!

关于|庭田科技 庭田科技有限公司&#xff08;简称&#xff1a;庭田科技&#xff09;是一家专注于计算机辅助工程(CAE)软件和高科技仪器设备的系统集成商和方案咨询服务供应商&#xff08;下设“上海庭田信息科技有限公司”与“西安庭田信息科技有限公司”&#xff09;。致力于…

Linux调试器——gdb的基础使用

目录 1.背景 2.指令的使用 2.1gdb的使用和退出 2.2显示源代码 2.3运行程序 2.4调试 1.打断点 2.查断点 3.去断点 4.运行 5.关闭断点 6.启用断点 7.逐过程 8.进入函数 9.显示变量的值 1.背景 众所周知&#xff0c;我们的程序发布有两种&#xff0c;分别是debug模式和release模式…

cocos creator3.x项目打包成aar 加入到已有的Android工程

Cocos crearor版本&#xff1a; 3.4.2 Android Studio Flamingo | 2022.2.1 Patch 2 1、配置构建安卓项目 2、 运行编译无报错 出现问题可尝试修改Gradle版本 修改jdk版本 3、对libservice打包成aar 打包完后 再build/outputs找到aar 如果看不到Tasks模块&#xff0c;在Fil…

uniapp_微信小程序自定义顶部导航栏和右侧胶囊对齐(不对齐来打我)

一、想要的效果 思路首先开启自定义导航栏&#xff0c;取消自带的导航栏&#xff0c;然后计算胶囊的高度和标题对齐 二、成品代码 1、首先再你需要居中的代码添加以下style <view class"header":style"{paddingTop:navBarTop px,height:navBarHeight px,…

Node.js安装及环境配置

1. 前言 Node.js简介 Node.js 是一个开源的、跨平台的 JavaScript 运行环境&#xff0c;它允许开发者使用 JavaScript 编写服务器端代码。Node.js 基于 Google 的 V8 JavaScript 引擎构建&#xff0c;该引擎是 Chrome 浏览器中用于解析和执行 JavaScript 的核心组件。因此&am…

Ubuntu20.04 查看系统版本号

目录 uname -auname -vlsb_release -acat /etc/issuecat /proc/version uname -a 查看系统发行版本号和操作系统版本 uname -v 查看版本号 lsb_release -a 查看发行版本信息 cat /etc/issue 查看系统版本 cat /proc/version 查看内核的版本号

Graphpad Prism10.2.0(329) 安装教程 (含Win/Mac版)

GraphPad Prism GraphPad Prism是一款非常专业强大的科研医学生物数据处理绘图软件&#xff0c;它可以将科学图形、综合曲线拟合&#xff08;非线性回归&#xff09;、可理解的统计数据、数据组织结合在一起&#xff0c;除了最基本的数据统计分析外&#xff0c;还能自动生成统…

来分析两道小题

一、源码 二、分析 首先它会接两个参数一个是id一个是ps&#xff0c;传递的话会包含一个flag.php&#xff0c;然后数据库连接&#xff0c;之后传递过滤&#xff0c;然后查询&#xff0c;如果查到了就会取id&#xff0c;取出来看是不是跟adog一样&#xff0c;如果是它告诉你账号…

在springboot中调用openai Api并实现流式响应

之前在《在springboot项目中调用openai API及我遇到的问题》这篇博客中&#xff0c;我实现了在springboot中调用openai接口&#xff0c;但是在这里的返回的信息是一次性全部返回的&#xff0c;如果返回的文字比较多&#xff0c;我们可能需要等很久。 所以需要考虑将请求接口响应…

c++服务器开源项目Tinywebserver运行

c服务器开源项目Tinywebserver运行 一、Tinywebserver介绍二、环境搭建三、构建数据库四、编译Tinywebserver五、查看效果 Tinywebserver是github上一个十分优秀的开源项目&#xff0c;帮助初学者学习如何搭建一个服务器。 本文讲述如何在使用mysql跟该项目进行连接并将项目运行…

集合、List、Set、Map、Collections、queue、deque

概述 相同类型的数据进行统一管理操作&#xff0c;使用数据结构、链表结构&#xff0c;二叉树 分类&#xff1a;Collection、Map、Iterator 集合框架 List接口 有序的Collection接口&#xff0c;可以对列表中的每一个元u尿素的插入位置进行精确的控制&#xff0c;用户可以根…

Vue2 基础面试题

v-show 和 v-if 区别 v-show 通过 CSS display 控制显示和隐藏v-if 通过判断组件真实渲染和销毁&#xff0c;而不是显示和隐藏频繁切换显示状态用 v-show&#xff0c;否则用 v-if v-if 当 v-if 与 v-for 一起使用时&#xff0c;v-for 具有比 v-if 更高的优先级&#xff0c;意…