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.hqwc.cn/news/456492.html

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

相关文章

mysql事务锁

Lock - 事务锁 与 latch 的区别 lock对象是事务,用来锁定的是数据库中的对象,如表、行、页。并且一般lock的对象仅在事务commit或rollback后进行释放(不同事务隔离级别释放的时间可能不同)。此外,lock,正…

Damn Small Linux 停更16年后,2024 回归更新

Damn Small Linux(DSL) 发行版释出了最新的 2024 版本,并重新定义了什么叫“Damn Small”。 DSL 诞生于 2005 年,原本是尝试提供一个 50MB 大小的 LiveCD,2008 年开发停滞。 2024 年原作者 John Andrews 宣布 DSL 复活,在几乎所…

信号系统之线性系统详解

1 线性系统 信号描述了一个参数如何随另一个参数变化。例如,电子电路中的电压随时间变化,或图像中随距离变化的亮度。系统是响应输入信号而产生输出信号的任何过程。如图中的框图所示。 有几个规则用于命名信号: 连续信号使用圆括号&#x…

Android:Android Studio安装及环境配置

1开发环境搭建 Android开发需要使用java的jdk环境,所以需要下载JAVA JDK。 1.1安装配置JAVA JDK Java的JDK下载: https://www.oracle.com/technetwork/java/javase/downloads/index.html 配置java的环境变量: JAVA_HOME:java安装路径。 新增环境变量CLASSPATH 在Path环境…

执行时长 - 华为OD统一考试

OD统一考试(C卷) 分值: 100分 题解: Java / Python / C 题目描述 为了充分发挥GPU算力,需要尽可能多的将任务交给GPU执行,现在有一个任务数组,数组元素表示在这1秒内新增的任务个数且每秒都有新…

浅谈交换原理(3)——交换网络

一、基本概念 交换网络是由若干个交换单元按照一定的拓扑结构和控制方式构成的网络。交换网络的三个基本要素是:交换单元、不同交换单元间的拓扑连接和控制方式。 1.1 单机交换网络与多级交换网络 交换网络按拓扑连接方式可分为:单级交换网络和多级交换网…

2024年对于Windows电脑,有类似的清理软件推荐吗?

对于Windows电脑,有很多类似的清理软件可以选择。以下是一些推荐的清理软件: CCleaner:这是一款非常受欢迎的Windows清理软件,它可以清理系统垃圾文件、浏览器缓存、无效注册表项等,还可以优化系统性能。CCleaner具有简…

【Qt学习笔记】(三)常用控件(持续更新)

Qt 常用控件 1 控件概述2 QWidget 控件核心属性2.1 enabled2.2 geometry2.3 window frame 的影响2.4 windowTitle2.5 window Icon2.6 windowOpacity2.7 cursor2.8 font2.9 toolTip2.10 focusPolicy2.11 stylesheet 1 控件概述 Widget是Qt中的核心概念英文原义是"小部件&q…

并发容器【ConcurentHashMap、CopyOnWriteArrayList、阻塞队列、ArrayBlockingQueue】

并发容器 什么是并发容器?同步容器:并发容器: ConcurrentHashMap结构图JDK1.7结构图JDK1.8结构图 CopyOnWriteArrayList实现原理 并发队列阻塞队列ArrayBlockingQueue 转自极客时间 什么是并发容器? 在JUC包中,有一大部分是关于并发容器的,如Concurr…

go语言每日一练——链表篇(六)

传送门 牛客面试必刷101题—— 判断链表中是否有环 牛客面试必刷101题—— 链表中环的入口结点 题目及解析 题目一 代码 package mainimport . "nc_tools"/** type ListNode struct{* Val int* Next *ListNode* }*//**** param head ListNode类* return bool…

亚信安慧AntDB构建繁荣生态的数据库管理系统

亚信安慧AntDB是一款数据库管理系统,它采用全球影响力大、社区繁荣、开放度高、生态增长迅速的PG内核。这款系统具有卓越的性能和稳定性,在全球范围内备受用户青睐。与此同时,AntDB的社区也是充满活力的,用户可以在社区中交流经验…

浅析一款非驱动考试网关程序(一)

前言 监考程序需要对网络流量进行过滤,不允许除了考试网站以外的其他网站的访问。其实就是实现了一个小型的网关程序,一般地有驱动实现和非驱动实现两种方式。本文只针对一款简易的非驱动实现的监考程序进行分析。 注意:本文通过对某考试监…