CAD插件实现:所有文字显示到列表、缩放、编辑——CAD-c#二次开发

当图中有大量文字,需要全部显示到一个列表时并缩放到需要的文字时,可采用插件实现,效果如下:

附部分代码如下:

 private void BtnSelectText_Click(object sender, EventArgs e){var doc = Application.DocumentManager.MdiActiveDocument;var db = doc.Database;var ed = doc.Editor;// 激活CAD窗口(修复问题1)Autodesk.AutoCAD.ApplicationServices.Application.MainWindow.Focus();// 创建选择过滤器(新增批量选择功能)var filter = new SelectionFilter(new[]{new TypedValue((int)DxfCode.Operator, "<or"), // 开始逻辑或new TypedValue((int)DxfCode.Start, "TEXT"),new TypedValue((int)DxfCode.Start, "MTEXT"),new TypedValue((int)DxfCode.Operator, "or>") // 结束逻辑或});var options = new PromptSelectionOptions{MessageForAdding = "\n选择要添加的文字: ",AllowDuplicates = false};try{// 执行批量选择(替换原来的GetEntity)var result = ed.GetSelection(options, filter);if (result.Status != PromptStatus.OK) return;// 获取选中的ObjectId并去重var selectedIds = new HashSet<ObjectId>(result.Value.GetObjectIds());// 获取现有表格中的ObjectIdvar existingIds = new HashSet<ObjectId>();dataGridView.Invoke((MethodInvoker)delegate{foreach (DataGridViewRow row in dataGridView.Rows){if (row.Tag is ObjectId id){existingIds.Add(id);}}});// 计算需要添加的新IDvar newIds = selectedIds.Except(existingIds).ToList();if (newIds.Count == 0){ed.WriteMessage("\n没有新文字需要添加!\n");return;}using (Transaction tr = db.TransactionManager.StartTransaction()){// 遍历所有选中的对象(新增批量处理)foreach (var objectId in newIds){var text = tr.GetObject(objectId, OpenMode.ForRead) as Entity;string content = "";string color = "";if (text is DBText dbText){content = dbText.TextString;color = dbText.Color.ToString();}else if (text is MText mText){content = mText.Contents; // 修正MText内容获取方式color = mText.Color.ToString();}// 跨线程更新UI(重要!)dataGridView.Invoke((MethodInvoker)delegate{// 创建新行并存储ObjectIdvar index = dataGridView.Rows.Add(content, color);dataGridView.Rows[index].Tag = objectId; // 关键修改:存储对象ID});}tr.Commit();}}catch (System.Exception ex){ed.WriteMessage($"\n选择错误: {ex.Message}");}}

插件联系(可另行定制功能)↓ ↓ ↓ 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/76881.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Systemd构建自动化备份服务与外部存储管理

实训背景 你是一家数据公司的系统管理员&#xff0c;需设计一套自动化备份系统&#xff0c;满足以下需求&#xff1a; 定期备份&#xff1a;每周日凌晨1点将 /data 目录压缩备份到 /backups。外部存储挂载&#xff1a;插入USB设备时自动挂载到 /mnt/usb&#xff0c;并触发增量…

PostgreSQL中根据另一表的值来更新一个字段

UPDATE table1 SET value t2.new_value FROM table2 t2 WHERE table1.id t2.reference_id; 解释 UPDATE table1&#xff1a;指定要更新的表&#xff0c;不要用别名。 SET value t2.new_value&#xff1a;设置要更新的字段及其新值&#xff0c;这里新值来自 table2。也可更…

#SVA语法滴水穿石# (000)断言基本概念和背景

一、前言 随着数字电路规模越来越大、设计越来越复杂,使得对设计的功能验证越来越重要。首先,我们要明白为什么要对设计进行验证?验证有什么作用?例如,在用FPGA进行设计时,我们并不能确保设计出来的东西没有功能上的漏洞,因此在设计后我们都会对其进行验证仿真。换句话说…

Git 从入门到精通(开源协作特别版)

&#x1f9e0; Git 从入门到精通&#xff08;开源协作特别版&#xff09; ✅ 基础命令 &#x1f9f0; 高级用法 &#x1f6e0;️ 开源实战技巧 &#x1f30d; GitHub 社区协作 适合&#xff1a;从0开始 → 熟练开发者 → 参与/维护开源项目 &#x1f530; 第1章&#xff1a;…

【SQL】取消sql某一列的唯一值key值的方法

在插入数据到sql时&#xff0c;遇到了这个问题&#xff1a; Duplicate entry ‘XXX’ for key 起因是&#xff1a; 我之前设计表的时候&#xff0c;手动给product_title 这个列加了一个key&#xff0c; key 是这个字段的唯一键约束&#xff0c;就不能重复在这一列存入重复的数…

【小沐学Web3D】three.js 加载三维模型(React Three Fiber)

文章目录 1、简介1.1 Three.js1.2 React Three Fiber 2、测试2.1 初始化环境2.2 app.js修改&#xff08;显示内置立方体&#xff09;2.3 app.js修改&#xff08;显示内置球体&#xff09;2.4 app.js修改&#xff08;显示自定义立方体&#xff09;2.5 app.js修改&#xff08;显示…

本地部署 Firecrawl 爬虫让 AI 知识库更丰满

https://www.firecrawl.dev/ firecrawl-logo-with-fire.png 什么是Firecrawl Firecrawl 是一款 可以将网站转换为 便于AI处理的Markdown 格式的爬虫工具 &#xff0c;主要 提供 API 服务 &#xff0c;无需站点地图&#xff0c;只需要接收一个 URL 地址就可以爬取网站及网站下可…

纯个人整理,蓝桥杯使用的算法模板day2(0-1背包问题),手打个人理解注释,超全面,且均已验证成功(附带详细手写“模拟流程图”,全网首个

算法索引 01背包优化前空间优化版&#xff08;使用一维数组&#xff09;优化后的模拟流程图为何优化后&#xff0c;j不能使用正序遍历模拟流程图 代码对应实现案例 01背包 优化前 /*** 0-1背包问题解法&#xff08;与下方代码表格示例对应&#xff0c;已模拟验证&#xff09;*…

APang网联科技项目报告【服务器篇】

APang网联科技&#xff1a;连接未来&#xff0c;智能领航 公司简介 APang网联科技成立于 [2005年]&#xff0c;总部位于 [广东深圳]&#xff0c;是一家集网络技术研发、系统集成、项目实施与运维服务为一体的高新技术企业。我们致力于为客户提供全方位、定制化的网络部署解决…

Scade One - 将MBD技术从少数高安全领域向更广泛的安全嵌入式软件普及

Scade One是继Scade Suite version 6自2008年起发展近20年后的首次主要改进版本。在Scade One发布的同时&#xff0c;Scade团队发布了一系列介绍Scade One的博客。本篇Scade One - Democratizing model-based development是其中的一部分。在后面的内容中&#xff0c;将复述博客…

Word在生成PDF后,PDF左侧导航书签目录错误显示的解决方法

1、打开要转换的word文件&#xff0c;点击“开始”&#xff0c;“另存为” 2、保存在本地时&#xff0c;在“保存类型”的下拉列表中选择“PDF&#xff08;*.pdf&#xff09;” 3、选择完保存类型后&#xff0c;点击“选项”按钮 4、在弹出的“选项”框中&#xff0c;选择“创建…

Windows系统服务器安装Office Online Server

服务器配置 配置参数OSThe 64-bit edition of Windows Server 2016CPU4RAM8GNetwork开启Hard disk80GPort80, 443, 809 执行命令 PowerShell中添加Windows服务&#xff1a; Add-WindowsFeature Web-Server,Web-Mgmt-Tools,Web-Mgmt-Console,Web-WebServer,Web-Common-Http,…

【小沐学Web3D】three.js 加载三维模型(Angular)

文章目录 1、简介1.1 three.js1.2 angular.js 2、three.js Angular.js结语 1、简介 1.1 three.js Three.js 是一款 webGL&#xff08;3D绘图标准&#xff09;引擎&#xff0c;可以运行于所有支持 webGL 的浏览器。Three.js 封装了 webGL 底层的 API &#xff0c;为我们提供了…

简单程序语言理论与编译技术·22 实现一个从AST到RISCV的编译器

本文是记录专业课“程序语言理论与编译技术”的部分笔记。 LECTURE 22&#xff08;实现一个从AST到RISCV的编译器&#xff09; 一、问题分析 1、完整的编译器&#xff08;如LLVM&#xff09;需先完成AST到IR的转换&#xff0c;并进行代码优化&#xff0c;再到汇编&#xff0…

JavaWeb 课堂笔记 —— 02 JavaScript

本系列为笔者学习JavaWeb的课堂笔记&#xff0c;视频资源为B站黑马程序员出品的《黑马程序员JavaWeb开发教程&#xff0c;实现javaweb企业开发全流程&#xff08;涵盖SpringMyBatisSpringMVCSpringBoot等&#xff09;》&#xff0c;章节分布参考视频教程&#xff0c;为同样学习…

Python 如何高效实现 PDF 内容差异对比

Python 如何高效实现 PDF 内容差异对比 1. 安装 PyMuPDF 库2. 获取 PDF 内容通过文件路径获取通过 URL 获取 3. 提取 PDF 每页信息4. 内容对比metadata 差异文本对比可视化对比 5. 提升对比效率通过哈希值快速判断页面是否相同早停机制多进程机制 6. 其他 最近有接触到 PDF 内容…

OpenGL学习笔记(简介、三角形、着色器、纹理、坐标系统、摄像机)

目录 简介核心模式与立即渲染模式状态机对象GLFW和GLAD Hello OpenGLTriangle 三角形顶点缓冲对象 VBO顶点数组对象 VAO元素缓冲对象 EBO/ 索引缓冲对象 IEO 着色器GLSL数据类型输入输出Uniform 纹理纹理过滤Mipmap 多级渐远纹理实际使用方式纹理单元 坐标系统裁剪空间 摄像机自…

MIPI与DVP接口摄像头:深度解析与应用指南

1、MIPI 1.1 MIPI简介 MIPI是什么&#xff1f;MIPI&#xff1a;mobile industry processor interface移动行业处理器接口。它是一个由Intel、Motorola、Nokia、NXP、Samsung、ST&#xff08;意法半导体&#xff09;和TI&#xff08;德州仪器&#xff09;等公司发起的开放标准…

35信号和槽_信号槽小结

Qt 信号槽 1.信号槽是啥~~ 尤其是和 Linux 中的信号进行了对比&#xff08;三要素&#xff09; 1) 信号源 2) 信号的类型 3)信号的处理方式 2.信号槽 使用 connect 3.如何查阅文档. 一个控件&#xff0c;内置了哪些信号&#xff0c;信号都是何时触发 一…

6547网:蓝桥STEMA考试 Scratch 试卷(2025年3月)

『STEMA考试是蓝桥青少教育理念的一部分&#xff0c;旨在培养学生的知识广度和独立思考能力。考试内容主要考察学生的未来STEM素养、计算思维能力和创意编程实践能力。』 一、选择题 第一题 运行下列哪个程序后&#xff0c;飞机会向左移动&#xff1f; ( ) A. …