<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[CSDN_RTKLIB的博客]]></title><description><![CDATA[]]></description><link>https://blog.csdn.net/CSDN_RTKLIB</link><language>zh-cn</language><generator>https://blog.csdn.net/</generator><copyright><![CDATA[Copyright &copy; CSDN_RTKLIB]]></copyright><item><title><![CDATA[子文件夹获取]]></title><link>https://blog.csdn.net/CSDN_RTKLIB/article/details/168663783</link><guid>https://blog.csdn.net/CSDN_RTKLIB/article/details/168663783</guid><author>CSDN_RTKLIB</author><pubDate>Wed, 21 Oct 2026 23:52:53 +0800</pubDate><description><![CDATA[路径这种依赖别的变量、需要实时解析的值，用get{ }属性；不加get写成字段只会计算一次，一旦DllFolder变动，路径就错掉，插件容易出现偶发找不到文件bug。顺带：刚才写的我用方法而不是属性，就是因为里面有磁盘IO，IO操作禁止放在属性get。]]></description><category></category></item><item><title><![CDATA[C# WinForm 交互界面设计]]></title><link>https://blog.csdn.net/CSDN_RTKLIB/article/details/168663753</link><guid>https://blog.csdn.net/CSDN_RTKLIB/article/details/168663753</guid><author>CSDN_RTKLIB</author><pubDate>Wed, 21 Oct 2026 23:49:32 +0800</pubDate><description><![CDATA[new CadKeywordItem("Copy", 'C', "复制"),new CadKeywordItem("Move", 'M', "移动"),new CadKeywordItem("Rotate", 'R', "旋转"),new CadKeywordItem("Mirror", 'I', "镜像")// 替换原 PromptKeyword，同样只需改方法名ed,"请选择编辑操作：",options,ed.WriteMessage($"\n执行：{selected}");]]></description><category></category></item><item><title><![CDATA[空间网格索引动态创建]]></title><link>https://blog.csdn.net/CSDN_RTKLIB/article/details/168663744</link><guid>https://blog.csdn.net/CSDN_RTKLIB/article/details/168663744</guid><author>CSDN_RTKLIB</author><pubDate>Wed, 21 Oct 2026 23:47:44 +0800</pubDate><description><![CDATA[如果你后面想UI同时勾选【排除图层】，再扩展，本次保持和前面R树对齐，UI只控制白名单图层+onlyXData。推荐统一改成 Build(Transaction tr, BlockTableRecord ms)可以作为重载保留，内部获取ms再调用新的ms版本，不用一次性全改旧调用。缓存类写出来，和PipeRTreeIndexCache一模一样模板。如果你需要，我可以顺带把。⚠️ 注意：你原来代码里。]]></description><category></category></item><item><title><![CDATA[树的动态创建]]></title><link>https://blog.csdn.net/CSDN_RTKLIB/article/details/168663735</link><guid>https://blog.csdn.net/CSDN_RTKLIB/article/details/168663735</guid><author>CSDN_RTKLIB</author><pubDate>Wed, 21 Oct 2026 23:46:13 +0800</pubDate><description><![CDATA[✅STRtree（NTS的STR树）。构造参数这个数字是，不是距离，和空间查询距离无关。补充：STRtree的NearestNeighbour方法才支持距离限制；构建树本身和距离无关。]]></description><category></category></item><item><title><![CDATA[二维透视分组统计]]></title><link>https://blog.csdn.net/CSDN_RTKLIB/article/details/168663703</link><guid>https://blog.csdn.net/CSDN_RTKLIB/article/details/168663703</guid><author>CSDN_RTKLIB</author><pubDate>Wed, 21 Oct 2026 23:42:47 +0800</pubDate><description><![CDATA[实体，读取实体XData两个分类字段，累加几何长度，生成【行：分类1(小区/道路)，列：分类2(管线类型)】透视交叉表，NPOI输出Excel。，两个分类维度（小区名称、管线图层类型），指标是管线长度求和，输出交叉表格，完全匹配ZWCAD二次开发管线统计的需求。GroupBy 【地块名称，管线图层】，对管线长度做Sum求和，然后透视成这种二维交叉表。存在管线实体的XData里，遍历的时候取出这两个分类字段，累加长度，最后生成透视表。你只需要替换：XData读取函数、字段名称，即可对接你现有代码。]]></description><category></category></item><item><title><![CDATA[静态类与普通类选择]]></title><link>https://blog.csdn.net/CSDN_RTKLIB/article/details/168561491</link><guid>https://blog.csdn.net/CSDN_RTKLIB/article/details/168561491</guid><author>CSDN_RTKLIB</author><pubDate>Tue, 20 Oct 2026 22:43:16 +0800</pubDate><description><![CDATA[CAD插件（MDI多文档环境）凡是带文档上下文、执行任务类的逻辑，一律优先实例类；纯无状态工具函数才静态。你的R树重建任务，就保留普通实例类写法。如果你想，我顺便把CommandMethod命令入口写好，直接绑定这个ReBuild。类内永远不定义任何static字段/static属性；所有变量全部是方法内局部变量不会做接口抽象、单元测试团队只有你维护，不会其他人往里面加代码优点：调用简单，直接，不用new。缺点：后续扩展受限，容易误增加静态成员引发多文档诡异bug。]]></description><category></category></item><item><title><![CDATA[索引参数获取逻辑修改]]></title><link>https://blog.csdn.net/CSDN_RTKLIB/article/details/168561450</link><guid>https://blog.csdn.net/CSDN_RTKLIB/article/details/168561450</guid><author>CSDN_RTKLIB</author><pubDate>Tue, 20 Oct 2026 22:39:04 +0800</pubDate><description><![CDATA[直接看DWG图层勾选，不用去配置表里手写图层名，减少输错图层名称的bug代码简化：删掉，减少维护成本逻辑单一：只保留图层白名单+onlyXData，黑白两套叠加的歧义消失可复用：这个Build可以作为独立交互式索引构建入口，供TraceStream系列溯源功能共用你看这个方案。先微调逻辑（是否保留高级折叠块过滤，是否加冻结图层自动过滤）或者直接写WPF窗口简易代码（图层列表绑定+全选反选）你倾向哪个？]]></description><category></category></item><item><title><![CDATA[单例刷新与选择集捕获]]></title><link>https://blog.csdn.net/CSDN_RTKLIB/article/details/168552801</link><guid>https://blog.csdn.net/CSDN_RTKLIB/article/details/168552801</guid><author>CSDN_RTKLIB</author><pubDate>Tue, 20 Oct 2026 15:17:38 +0800</pubDate><description><![CDATA[做的很好，现在有两个小问题想问你1，我把Application.ShowModelessDialog(dialog);窗口改为非模态了，现在如果窗口不关闭，我也可以继续执行命令，选择实体，然后会出来第二个窗口，不是这种不好，我只想问问，如果改为那种，这种非模态下，继续选择实体，不是重新打开新窗口，而是创新窗口在更新 新的结果展示，这样改复杂吗，哪种效果比较好，我就问问，先不写代码。]]></description><category></category></item><item><title><![CDATA[属性比对完整代码]]></title><link>https://blog.csdn.net/CSDN_RTKLIB/article/details/168552678</link><guid>https://blog.csdn.net/CSDN_RTKLIB/article/details/168552678</guid><author>CSDN_RTKLIB</author><pubDate>Tue, 20 Oct 2026 15:15:22 +0800</pubDate><description><![CDATA[完全独立文件，，新增命令，使用，窗体支持缩放，全部控件动态构造、无design文件，依赖你已有的。[无此字段]]]></description><category></category></item><item><title><![CDATA[属性比对方案敲定]]></title><link>https://blog.csdn.net/CSDN_RTKLIB/article/details/168552585</link><guid>https://blog.csdn.net/CSDN_RTKLIB/article/details/168552585</guid><author>CSDN_RTKLIB</author><pubDate>Tue, 20 Oct 2026 15:13:46 +0800</pubDate><description><![CDATA[比如：已选中：3个实体｜总检测字段：3个｜完全一致字段：0个｜存在差异字段：3个可以快速给用户总体概览。你看这套思路是否符合预期？有没有想调整的判定规则？比如：]]></description><category></category></item><item><title><![CDATA[实体出库代码]]></title><link>https://blog.csdn.net/CSDN_RTKLIB/article/details/168249144</link><guid>https://blog.csdn.net/CSDN_RTKLIB/article/details/168249144</guid><author>CSDN_RTKLIB</author><pubDate>Sat, 17 Oct 2026 20:58:48 +0800</pubDate><description><![CDATA[TableDefSQLite窗体后端代码 + 导出业务静态类 + 日志工具，三部分分开。]]></description><category></category></item><item><title><![CDATA[实体出库方案协定]]></title><link>https://blog.csdn.net/CSDN_RTKLIB/article/details/168249111</link><guid>https://blog.csdn.net/CSDN_RTKLIB/article/details/168249111</guid><author>CSDN_RTKLIB</author><pubDate>Sat, 17 Oct 2026 20:57:38 +0800</pubDate><description><![CDATA[需要下一步，我们就可以开始写CAD 实体出库 INSERT 入库的代码但是在写代码之前，你先跟我说说，你的导出步骤是什么1是否和上面一样支持 图层 属性 复合三种形式导出2按图层导出你可以根据实体图层，按属性导出，你知道实体属性在哪里存储吗，暗按属性以及按复合导出你怎么导出的。]]></description><category></category></item><item><title><![CDATA[出库代码重构完整代码]]></title><link>https://blog.csdn.net/CSDN_RTKLIB/article/details/168249092</link><guid>https://blog.csdn.net/CSDN_RTKLIB/article/details/168249092</guid><author>CSDN_RTKLIB</author><pubDate>Sat, 17 Oct 2026 20:55:18 +0800</pubDate><description><![CDATA[需要下一步，我们就可以开始写。]]></description><category></category></item><item><title><![CDATA[出库代码重构]]></title><link>https://blog.csdn.net/CSDN_RTKLIB/article/details/168249065</link><guid>https://blog.csdn.net/CSDN_RTKLIB/article/details/168249065</guid><author>CSDN_RTKLIB</author><pubDate>Sat, 17 Oct 2026 20:53:40 +0800</pubDate><description><![CDATA[/对外入口//弹窗选路径...//Step1 收集图层属性配对//Step2 根据模式生成最终表定义（所有模式逻辑在这里）//Step3 写入sqlite，只负责执行建表，无业务判断//Step1：收集原始 (Layer,Attr){...}//Step2：根据导出模式，生成表定义集合（核心业务分支）//按图层分组，合并同图层全部属性表字段，去重//按属性表分组//复合表名，一对一组一张表//Step3：纯粹数据库写入，接收TableDef列表，循环建表。]]></description><category></category></item><item><title><![CDATA[图层多属性表时合并字段]]></title><link>https://blog.csdn.net/CSDN_RTKLIB/article/details/168249051</link><guid>https://blog.csdn.net/CSDN_RTKLIB/article/details/168249051</guid><author>CSDN_RTKLIB</author><pubDate>Sat, 17 Oct 2026 20:52:33 +0800</pubDate><description><![CDATA[我验证了，发现有问题1ByLayer导出，并没有合并一个图层下面所有属性表的字段，你检查代码，看是哪里的代码没有添加2按照属性导出，不要给我添加LayerName列，上面说的两点，你检查下，告诉我是哪几行代码的问题，需要改哪里，把涉及到的代码发我，不要整个发我像个傻子一样。]]></description><category></category></item><item><title><![CDATA[图出库三种模式]]></title><link>https://blog.csdn.net/CSDN_RTKLIB/article/details/168249024</link><guid>https://blog.csdn.net/CSDN_RTKLIB/article/details/168249024</guid><author>CSDN_RTKLIB</author><pubDate>Sat, 17 Oct 2026 20:50:20 +0800</pubDate><description><![CDATA[适合 1图层 ↔ 1属性表；多属性表混在同一图层时，表列膨胀，大量null。适合一个属性表一套固定字段，保证每张表结构干净；代价是跨图层数据混在一张表，需要额外字段记录图层归属。]]></description><category></category></item><item><title><![CDATA[传参 Entity vs ObjectId]]></title><link>https://blog.csdn.net/CSDN_RTKLIB/article/details/168027535</link><guid>https://blog.csdn.net/CSDN_RTKLIB/article/details/168027535</guid><author>CSDN_RTKLIB</author><pubDate>Thu, 15 Oct 2026 17:55:29 +0800</pubDate><description><![CDATA[当前读取逻辑功能没问题，是可行的设计；隐患不在Parser内部，在于调用方违反契约传入已经释放的Entity；写XData那一侧，一定不要照搬Entity入参，优先ObjectId；建议增加ObjectId的重载做对外安全入口，防止外部调用者踩坑。]]></description><category></category></item><item><title><![CDATA[绘制直线和多段线]]></title><link>https://blog.csdn.net/CSDN_RTKLIB/article/details/168027482</link><guid>https://blog.csdn.net/CSDN_RTKLIB/article/details/168027482</guid><author>CSDN_RTKLIB</author><pubDate>Thu, 15 Oct 2026 17:51:52 +0800</pubDate><description><![CDATA[CodeDefine增加属性：
PipeGeomHelper 新增 CreatePipeLine 方法


OnStartDrawElement 中 Line分支完整代码（同时支持Line/Polyline）

关键点说明

实体没有全局线宽属性，线宽要靠CAD图层线宽控制；而Polyline支持每段独立宽度；
两种实体都只做两点版本；后续如果要做多折管线，只能走Polyline；Line本身不支持多个顶点；
全部交互逻辑复用，只在最后创建实体时根据切换调用不同工具；
配置存到你的标准模板库，不同管线要素可]]></description><category></category></item><item><title><![CDATA[两种画线模式]]></title><link>https://blog.csdn.net/CSDN_RTKLIB/article/details/168027454</link><guid>https://blog.csdn.net/CSDN_RTKLIB/article/details/168027454</guid><author>CSDN_RTKLIB</author><pubDate>Thu, 15 Oct 2026 17:50:45 +0800</pubDate><description><![CDATA[新增枚举（放到CommPipe命名空间下）你可以在CodeDefine。]]></description><category></category></item><item><title><![CDATA[写入扩展属性 Entity ObjectId重载版本]]></title><link>https://blog.csdn.net/CSDN_RTKLIB/article/details/168027231</link><guid>https://blog.csdn.net/CSDN_RTKLIB/article/details/168027231</guid><author>CSDN_RTKLIB</author><pubDate>Thu, 15 Oct 2026 17:38:18 +0800</pubDate><description><![CDATA[拿appName，如果你后面要支持多appName，也可以统一对齐）。如果你需要，我可以顺带把读取那边也补一个带。的重载（你现在读取是基类里。]]></description><category></category></item></channel></rss>