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


    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 = new List>();
                for (int i = 0; i < contents.Length; i++)
                {
                    //将数据按照","进行分列
                    string[] cont = contents[i].Split(new char[] { ',' });
                    List subList = new List();
                    //判断是不是开头是“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);
            }
        }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47
    • 48
    • 49
    • 50
    • 51
    • 52
    • 53
    • 54
    • 55

    }

  • 相关阅读:
    基于51单片机信号发生器仿真设计
    centos7安装mysql8.0
    echarts入门图表可视化(基本介绍+示例代码)
    【Qt6.3基础教程01】 Qt简介与环境搭建
    k8s基于kubectl命令管理资源并分配
    谷粒商城 高级篇 (十) --------- 分布式锁
    小白福利!教你用低代码实现一个简单的页面跳转功能
    7 航空公司客户价值分析
    22. 【Linux教程】Linux 结束进程
    Opencv-图像插值与LUT查找表
  • 原文地址:https://blog.csdn.net/weixin_43931979/article/details/130898157