c# cad二次开发 通过选择txt文件将自动转换成多段线

news2024/10/6 10:28:02

c# cad二次开发 通过选择txt文件将自动转换成多段线,txt样式如下
在这里插入图片描述

using System;
using System.Collections.Generic;
using System.Text;
using Autodesk.AutoCAD.ApplicationServices;
using Autodesk.AutoCAD.EditorInput;
using Autodesk.AutoCAD.Runtime;
using Autodesk.AutoCAD.DatabaseServices;
using Autodesk.AutoCAD.Geometry;
using System.IO;
using win = System.Windows.Forms;

namespace _5_通过外部文件进行画图
{
public class Initiallization : Autodesk.AutoCAD.Runtime.IExtensionApplication //当调用类库时,自动加载执行
{
public void Initialize()
{
Editor ed = Application.DocumentManager.MdiActiveDocument.Editor;
ed.WriteMessage(“\n加载成功!\n插件功能如下:”);
ed.WriteMessage(“\ntxt文件转成多段线(PLTXT)”);
}
public void Terminate()
{
Console.WriteLine(“清理!”);
}
}
public class Class1
{
///
/// 获取多段线坐标
///
[CommandMethod(“PLTXT”)]
public void PLine_txt()
{
Editor ed = Autodesk.AutoCAD.ApplicationServices.Application.DocumentManager.MdiActiveDocument.Editor;
//定义路径文件名
win.OpenFileDialog dialog = new win.OpenFileDialog();
dialog.Multiselect = false;//是否可以选择多个文件
dialog.Title = “请选择文件”;
dialog.Filter = “所有文件(.)|.”;
if (dialog.ShowDialog() == win.DialogResult.OK)
{
string filename = dialog.FileName;

            //string filename = @"D:\6-C#\0、程序开发\5、通过外部文件进行画图\新增017-1.txt";
            //读取txt文件内容
            string[] contents = File.ReadAllLines(dialog.FileName);
            //声明List对象,将数据进行整理
            List<List<string>> List = new List<List<string>>();
            for (int i = 0; i < contents.Length; i++)
            {
                //将数据按照","进行分列
                string[] cont = contents[i].Split(new char[] { ',' });
                List<string> subList = new List<string>();
                //判断是不是开头是“J”
                if (contents[i] == "")
                {
                    
                }
                else if (contents[i].Substring(0, 1) != "J")
                {
                }
                else
                {
                    for (int j = 0; j < cont.Length; j++)
                    {
                        subList.Add(cont[j]);
                    }
                    List.Add(subList);
                }
            }
            //声明一个多段线对象
            Polyline pline = new Polyline();
            for (int i = 0; i < List.Count; i++)
            {

                //数据转换
                if (List[i][0].Substring(0, 1) != "J")
                {
                    ed.WriteMessage("有问题\n");
                }
                else
                {
                    double X, Y;
                    bool bx = double.TryParse(List[i][2], out X);
                    bool by = double.TryParse(List[i][3], out Y);
                    //判断外部文件是否有问题


                    ed.WriteMessage(List[i][2], List[i][3]);
                    //将xy坐标添加到对象中
                    pline.AddVertexAt(i, new Point2d(X, Y), 0, 0, 0);
                }
            }
            Database db = HostApplicationServices.WorkingDatabase;
            db.AddEnityToModelSpace(pline);
        }
    }
}

}

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

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

相关文章

chatgpt赋能python:Python改变图片大小对SEO的影响

Python改变图片大小对SEO的影响 简介 Python作为一门高效的编程语言&#xff0c;广泛应用于各个行业&#xff0c;并在图像处理领域中也有很多应用。其中一个常见的应用就是改变图片的大小。在SEO&#xff08;搜索引擎优化&#xff09;中&#xff0c;图片大小的优化对网站的排…

chatgpt赋能python:Python批量输出:提高工作效率的必备技能

Python批量输出&#xff1a;提高工作效率的必备技能 在日常工作中&#xff0c;我们往往需要批量处理某些数据。Python作为一种流行的编程语言&#xff0c;可以帮助我们快速地完成这项任务。本文将介绍Python批量输出的基本知识和实用技巧&#xff0c;帮助读者提高工作效率。 …

chatgpt赋能python:Python改变当前目录的SEO指南

Python改变当前目录的SEO指南 介绍 对于SEO来说&#xff0c;网站的目录结构和文件命名是非常重要的。良好的目录结构可以帮助搜索引擎更好地理解您的网站内容&#xff0c;而有意义的文件命名可以提高页面的可读性并有助于排名。 但在开发过程中&#xff0c;我们经常需要在不…

铁粉数量上一百了

铁粉数量上一百了 常写博客&#xff0c;常进步。

【Python】类与对象

知识目录 一、写在前面✨二、类与对象简介三、Car类的实现四、Date类的实现五、总结撒花&#x1f60a; 一、写在前面✨ 大家好&#xff01;我是初心&#xff0c;希望我们一路走来能坚守初心&#xff01; 今天跟大家分享的文章是 Python中面向对象编程的类与对象。 &#xff0…

一道北大强基题背后的故事(一)——从走弯路到看答案

早点关注我&#xff0c;精彩不错过&#xff01; 在前面的系列文章《我的数学学习回忆录——一个数学爱好者的反思&#xff08;二&#xff09;》中&#xff0c;我从宏观层面回忆了我的数学学习历程和反思。其实&#xff0c;我和数学之间还有很多很多意识流一样的交流和故事&…

训练DeeplabV3+来分割车道线

本例我们训练DeepLabV3语义分割模型来分割车道线。 DeepLabV3模型的原理有以下一些要点&#xff1a; 1&#xff0c;采用Encoder-Decoder架构。 2&#xff0c;Encoder使用类似Xception的结构作为backbone。 3&#xff0c;Encoder还使用ASPP(Atrous Spatial Pyramid Pooling)&…

听听飞桨框架硬核贡献者如何玩转开源!

当仰望星空时&#xff0c;你在想什么&#xff1f;我在想象&#xff0c;未来可能是什么样子。从应用广泛的人工神经网络&#xff0c;到火遍全网的AIGC&#xff0c;创造新宇宙的人&#xff0c;相信永远看不到天花板。 在这些神奇的AI产品背后&#xff0c;有一个了不起的开源项目—…

滴滴时空供需系统的设计和演进

本篇文章分为&#xff1a; 1.背景介绍 2.系统框架的演进 2.1 旧系统框架的不足 2.2 新系统框架的优势 3.系统建设思考 3.1 存储治理 3.2 性能优化 3.3 研发提效&#xff1a;配置化能力升级 3.总结 1. 背景介绍 时空供需系统(SDS, supply and demand system)是为了满足滴滴网约车…

开箱即用的工具函数库xijs更新指南(v1.2.6)

xijs 是一款开箱即用的 js 业务工具库, 聚集于解决业务中遇到的常用函数逻辑问题, 帮助开发者更高效的开展业务开发. 接下来就和大家一起分享一下 v1.2.6 版本的更新内容以及后续的更新方向. 贡献者列表: 1. 计算变量内存calculateMemory 该模块主要由 zhengsixsix 贡献, 我们可…

leetcode练习(汇总插入区间)

文章目录 题目一&#xff1a;汇总区间题目二&#xff1a;插入区间 语言&#xff1a;python 工具&#xff1a;jupyuter 题目一&#xff1a;汇总区间 给定一个 无重复元素 的 有序 整数数组 nums 。 返回 恰好覆盖数组中所有数字 的 最小有序 区间范围列表 。也就是说&#xff0c…

“程序员,致敬!”

手机震动&#xff0c;提醒着我3年前参加研发的应用迎来了一次重大升级。我按下开源社区提供的合并请求按钮&#xff0c;与开源社区的朋友分享我对这个项目的改进。不久&#xff0c;一条消息提醒我合并请求已被其它社区成员审核通过。 这种远程协作、开源分享的方式是如今广泛存…

chatgpt赋能python:Python数值计算指南:为什么它是一种强大的工具

Python数值计算指南&#xff1a;为什么它是一种强大的工具 当谈到数值计算时&#xff0c;许多人所想到的编程语言都是MATLAB和R。然而&#xff0c;Python也在数值计算领域有着强大的地位。Python是一种令人难以置信的通用编程语言&#xff0c;它不仅为数据科学和机器学习提供了…

行人检测重识别yolov5+reid(跑通+界面设计)

行人检测重识别yolov5reid&#xff08;跑通界面设计&#xff09; 参考源代码: github 权重文件&#xff1a; 根据github上面的网盘进行权重下载&#xff1a; 检测&#xff1a;将 ReID_resnet50_ibn_a.pth放在person_search/weights文件下&#xff0c;yolov5s.pt放person_sear…

如何用海外代理辅助对接 ChatGPT

许多朋友问我有没有好用的海外代理。说实话&#xff0c;真的好用的并不多。 最近我了解到了一家还不错的海外代理&#xff0c;叫做 IPIDEA&#xff0c;我已经使用了一段时间了&#xff0c;觉得质量挺不错。 你可能知道&#xff0c;我最近在进行一些 ChatGPT 相关的研究&#xf…

DTW 2023:戴尔发力多云战略与边缘运营

近日&#xff0c;2023戴尔科技全球科技大会&#xff08;Dell Technologies World&#xff0c;简称DTW&#xff09;在美国拉斯维加斯如期而至。 作为戴尔科技集团一年一度的科技盛宴&#xff0c;本届DTW吸引了众多业界人士的关注。而作为本届大会的重头戏&#xff0c;戴尔科技集…

Spark学习笔记

1 spark简介 (1) spark是基于内存计算的分布式并行计算框架&#xff0c;如今已成为apache软件基金会最重要的三大分布式计算系统开源项目之一(Hadoop、Spark、Storm)。 (2) spark组件 (3) spark组件应用场景 Spark Streaming&#xff1a;提供流计算功能 Sparl SQL&#xff1…

Python实现循环的最快方式(for、while等速度对比)

众所周知&#xff0c;Python 不是一种执行效率较高的语言。此外在任何语言中&#xff0c;循环都是一种非常消耗时间的操作。假如任意一种简单的单步操作耗费的时间为 1 个单位&#xff0c;将此操作重复执行上万次&#xff0c;最终耗费的时间也将增长上万倍。 while 和 for 是 …

JavaCV - 图像暗通道去雾

一、效果图 二、实现原理 暗通道先验:首先说在绝大多数非天空的局部区域里,某一些像素总会有至少一个颜色通道具有很低的值,也就是说该区域光强是一个很小的值。所以给暗通道下了个数学定义,对于任何输入的图像J,其暗通道可以用下面的公式来表示:其中JC表示彩色图像每个…

SOFA Weekly|SOFAChannel#33 直播预告、Layotto 社区会议回顾与预告、社区本周贡献

SOFA WEEKLY | 每周精选 筛选每周精华问答&#xff0c;同步开源进展 欢迎留言互动&#xff5e; SOFAStack&#xff08;Scalable Open Financial Architecture Stack&#xff09;是蚂蚁集团自主研发的金融级云原生架构&#xff0c;包含了构建金融级云原生架构所需的各个组件&am…