当前位置: 首页 > article >正文

c#cad 创建-多线段(三)

运行环境 vs2022 c# cad2016  调试成功

一、程序说明

AutoCAD中创建多段线的。具体解释如下:

  1. 获取当前文档和数据库,并创建一个编辑器(用于与用户交互)。
  2. 使用事务处理的方式,开始对数据库的操作。
  3. 打开模型空间,以便进行绘制。这里使用tr.GetObject(...)方法获取模型空间的块表记录。
  4. 创建起点坐标,这是多段线的起始点。
  5. 创建多段线实体,设置起点坐标、是否闭合以及线型。这里使用Polyline类来创建多段线实体。
  6. 将多段线实体添加到块表记录中。
  7. 将新创建的多段线实体添加到事务中,使其对其他对象可见。
  8. 提交事务,将更改保存到数据库中。

总结来说,这段代码的作用是在AutoCAD中创建一个起点坐标为(0,0,0)、线型为ByBlock的多段线实体,并将其添加到模型空间中。

二、完整代码
 [CommandMethod("CreatePolyline")]
        public void CreatePolyline()
        {
            // 获取当前文档和数据库
            Document doc = Application.DocumentManager.MdiActiveDocument;
            Database db = doc.Database;
            Editor ed = doc.Editor;

            // 开始事务处理
            using (Transaction tr = db.TransactionManager.StartTransaction())
            {
                // 打开模型空间以便进行绘制
                BlockTableRecord btr = (BlockTableRecord)tr.GetObject(SymbolUtilityServices.GetBlockModelSpaceId(db), OpenMode.ForRead);

                // 创建一个起点,这是多线段的起始点
                Point3d startPoint = new Point3d(0, 0, 0);
                Point startPointWithDBE = startPoint; // DBE是数据库实体,此处是为了说明API的用法,实际应用中通常不需要这步转换

                // 创建多线段实体,起始点为0,0,0,闭合为false,线型为ByBlock(从块定义中获取)
                Polyline polyline = new Polyline(startPointWithDBE, false, PolylineType.ByBlock);
                btr.AppendEntity(polyline); // 将实体添加到块表中
                tr.AddNewlyCreatedDBObject(polyline, true); // 将新实体添加到事务中,使其对其他对象可见

                // 结束当前的操作,将更改保存到数据库中
                tr.Commit();
            }


//感谢大家的点赞,收藏,转发,关注   


http://www.kler.cn/a/230214.html

相关文章:

  • python3 自动更新的缓存类
  • 嵌入式系统与OpenCV
  • RSA非对称加密解,支持分段加密解密、(公钥加密,私钥解密)、(私钥加密,公钥解密)
  • Notepad++ 替换所有数字给数字加单引号
  • AI时代的PPT革命:智能生成PPT工具为何备受青睐?
  • 手搓人工智能—聚类分析(下)谱系聚类与K-mean聚类
  • 市场复盘总结 20240206
  • 人工智能:数据分析之数据预处理、分析模型与可视化
  • MIT-Missing Semester_Topic 6:Version Control (Git) 练习题
  • 华为OD机试真题C卷-篇3
  • OS X(MACOS) C/C++ 程序链接静态库限制。
  • 2023-总结
  • LeetCode 丑数
  • 【实验3】统计某电商网站买家收藏商品数量
  • 企业微信会话存档:大文件拉取、加密、上传
  • (十三)springboot实战——springboot前后端分离方式项目集成spring securtity安全框架
  • 23种设计模式之工厂模式
  • 【Java安全】ysoserial-URLDNS链分析
  • 为什么说不可知论有合理的成分
  • 【Java基础常见面试题】- Java SE vs Java EE
  • 如何启动若依框架
  • LeetCodeLCR 114. 火星词典——拓扑排序
  • 【Scala 】3. 类和对象
  • Linux(三)--文件系统
  • linux中的gdb调试
  • 【Spring Boot】第一篇 创建简单的Spring Boot项目