C# Cad2016二次开发选择文本信息导出(六)

news2024/9/26 3:28:23
//选文本信息导出
[CommandMethod("getdata")]
public void getdata()
{
    // 获取当前文档和数据库
    Document doc = Autodesk.AutoCAD.ApplicationServices.Application.DocumentManager.MdiActiveDocument;
    Database db = doc.Database;
    Editor ed = doc.Editor;
    // 获取当前图形数据库的路径
    string path = db.Filename;

    // 提示用户选择文本
    PromptSelectionResult selectionResult = doc.Editor.GetSelection(new SelectionFilter(new TypedValue[] { new TypedValue((int)DxfCode.Start, "TEXT") }));
    if (selectionResult.Status == PromptStatus.OK)
    {
        using (Transaction trans = db.TransactionManager.StartTransaction())
        {
            SelectionSet selection = selectionResult.Value;
            StreamWriter mydata = new StreamWriter(path + "文字信息.csv", append: true, Encoding.Default);
            string value = "图层,名称,X,Y,字高,颜色\t,";
            mydata.WriteLine(value);

            // 遍历选择集中的文本对象
            foreach (ObjectId id in selection.GetObjectIds())
            {
                DBText text = trans.GetObject(id, 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;
                    // 获取文本颜色
                    int colorIndex = text.Color.ColorIndex;
                    // 获取文本字高
                    double textHeight = text.Height;
                    //拼接CSV字符串
                        value = layerName + "," + textContent + "," + xPos + "," + yPos + "," + textHeight + "," + colorIndex + "\t,";
                    // 打印输入输出
                    ed.WriteMessage("\n" + value);

                    mydata.WriteLine(value);
                }
            }
            mydata.Close();
            // 打印输入输出
            ed.WriteMessage("\n导出完成");
            trans.Commit();
        }
    }
}

 

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

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

相关文章

腾讯云主机价格表和优惠活动汇总(2024年更新)

腾讯云服务器租用价格表:轻量应用服务器2核2G3M价格62元一年、2核2G4M价格118元一年,540元三年、2核4G5M带宽218元一年,2核4G5M带宽756元三年、轻量4核8G12M服务器446元一年、646元15个月,云服务器CVM S5实例2核2G配置280.8元一年…

【Python】使用tkinter设计开发Windows桌面程序记事本(3)

上一篇:【Python】使用tkinter设计开发Windows桌面程序记事本(2)-CSDN博客 下一篇:【Python】使用tkinter设计开发Windows桌面程序记事本(4)-CSDN博客 作者发炎 本文章与"记事本项目"的第一篇文…

STM32串口485通信如何控制收发管脚

要有效的控制485的收发管脚,首先要知道485通信发送命令完成的时间,我们执行发送命令结束并不代表硬件已经把数据发出去了,可能1ms以后才真正完成,如果我们控制管脚不当,可能导致数据不能完全发出去。导致串口通信异常。…

日志采集传输框架之 Flume,将监听端口数据发送至Kafka

1、简介 Flume 是 Cloudera 提供的一个高可用的,高可靠的,分布式的海量日志采集、聚合和传 输的系统。Flume 基于流式架构,主要有以下几个部分组成。 主要组件介绍: 1)、Flume Agent 是一个 JVM 进程&#xf…

数据结构队列实现(赋完整代码)

文章目录 1、定义及结构2、队列实现完整代码 1、定义及结构 1.一种特殊的线性表,只允许在一段进行插入,另一段进行删除; 2.进行插入操作的一端称为队尾,进行删除操作的一端称为队头; 3.队列具有先进先出的特性 FIFO…

Linux操作系统——重定向与缓冲区

1.理解一下struct file内核对象 上一篇文章(文件详解)我们一直在谈,一个文件要被访问就必须要先被打开,打开之前就必须要先把文件加载到内存,同时呢我们的操作系统为了管理文件也会为我们的文件创建相对应的struct fi…

C语言从入门到实战——结构体与位段

结构体与位段 前言一、结构体类型的声明1.1 结构体1.1.1 结构的声明1.1.2 结构体变量的创建和初始化 1.2 结构的特殊声明1.3 结构的自引用 二、 结构体内存对齐2.1 对齐规则2.2 为什么存在内存对齐2.3 修改默认对齐数 三、结构体传参四、 结构体实现位段4.1 什么是位段4.2 位段…

视频剪辑实例:探索画中画视频剪辑,创意无限可能,批量制作视频

随着社交媒体和视频平台的迅速发展,视频剪辑,作为视频创作的核心环节,对于呈现内容、传达情感和提升体验具有至关重要的作用。现在来看云炫AI智剪的视频剪辑实例,如何批量制作视频,提升工作效率。 画中画视频合并成功…

国产麒麟系统开机没有网络需要点一下这个设置

问题描述: 一台国产电脑网线连接正常,打开网页后显示无法访问,那么是什么原因无法上网呢?下面就告诉你一个小方法去解决一下这个问题; 检查故障: 检测交换机、网线、水晶头全都正常,同房间摆放的…

荣耀开发者大会 2023·一张图读懂服务分发分论坛

荣耀智慧服务,高效连接开发者与用户,构建主动服务全新体验! 2023年荣耀智慧服务总数已突破25000,帮助众多开发者提升业务增长~ 今年将会开放更多生态场景,配合多元服务分发,从应用到场景,从用…

闪存的基础知识1-Vt的定义

系列文章目录 本次系列文章主要分享与存储相关的知识 文章目录 目录 系列文章目录 前言 一、mos管 阈值电压是什么? 二、详细分析 1.通俗理解 2.读入数据 总结 前言 阈值电压(Vt) 阈值电压(Vt或Vth)的概念是从MOS管来的。 一、mos管 阈值电压是什么? …

element+vue 之图片放大器

1.安装插件 npm install vue-photo-zoom-pro2.main.js导入 // 放大镜 import VuePhotoZoomPro from vue-photo-zoom-pro Vue.use(VuePhotoZoomPro)3.页面使用 <vue-photo-zoom-pro:url"imgUrl":out-zoomer"true":scale"2"style"width:…

AI模型理解误区:微调垂直行业-VS-企业专属知识库或AI助理

概述 企业定制私有化大模型的区别&#xff0c;分为训练大模型和调用大模型两种方向&#xff0c;以及企业自己的智能客服的实现方法。 - 企业定制的私有化大模型与一般的大模型不同&#xff0c;需要高成本训练。- 企业可以选择调用已经训练好的大模型来应用。- 企业可以使用向量…

为什么建筑工程行业要十分重视主数据管理?

业务背景 主数据管理是数字化技术不可或缺的一部分。 建筑行业数字化转型中&#xff0c;跨部门协作是非常重要的。主数据管理能够提供一个统一的数据平台&#xff0c;方便各个部门数据共享和交流&#xff0c;也可以实现人力、物资、设备等各种资源的集中管理和优化配置。 此外…

[element-ui] 级联选择器el-cascader不触发change事件

el-cascader 使用官网的数据是可以的 官网数据中最后一级没有children // 删除最后一级的children changeKey(arr) {for (var i0; i<arr.length; i) {if (arr[i].children.length) {this.changeKey(arr[i].children)} else {delete arr[i].children}} ]就可以了 参考&…

浅谈专项测试之弱网络测试

一&#xff0e;弱网络测试背景 移动端产品的使用并非完全都是在流畅的wifi环境&#xff0c;大部分用户主要使用4G,3G,2G等网络&#xff0c;另外因为移动端产品使用的场景多变&#xff0c;如进公交&#xff0c;上地铁&#xff0c;坐电梯&#xff0c;使得弱网测试显得尤为重要。考…

基于springboot数码论坛系统源码和论文

网络的广泛应用给生活带来了十分的便利。所以把数码论坛与现在网络相结合&#xff0c;利用java技术建设数码论坛系统&#xff0c;实现数码论坛的信息化。则对于进一步提高数码论坛发展&#xff0c;丰富数码论坛经验能起到不少的促进作用。 数码论坛系统能够通过互联网得到广泛…

大语言模型系列-总述

大语言模型发展史 研究人员发现&#xff0c;扩展预训练模型&#xff08;Pre-training Language Model&#xff0c;PLM&#xff09;&#xff0c;例如扩展模型大小或数据大小&#xff0c;通常会提高下游任务的模型性能&#xff0c;模型大小从几十亿&#xff08;1 B 10亿&#x…

细说JavaScript对象(JavaScript对象详解)

在JavaScript中对象作为数据类型之一&#xff0c;它的数据结构区别于其余5中数据类型&#xff0c;从数据结构角度看对象就是数据值的几个&#xff0c;其书就结构就是若干组名值对&#xff0c;类似于其他语言中的哈希、散列 关联数组等&#xff0c;但对象在JavaScript中不仅仅扮…

【MySQL高级】——InnoDB数据存储结构

1. 数据库的存储结构&#xff1a;页 <1> 磁盘与内存交互的基本单位&#xff1a;页 <2> 页结构概述 <3> 页的大小 <4> 页的上层结构 2. 页的内部结构 <1> 页的分类 <2> 页的结构 <3> File Header&#xff08;文件头&#xff09; 1.…