c#cad 创建-多线段(三)
运行环境 vs2022 c# cad2016 调试成功
一、程序说明
AutoCAD中创建多段线的。具体解释如下:
- 获取当前文档和数据库,并创建一个编辑器(用于与用户交互)。
- 使用事务处理的方式,开始对数据库的操作。
- 打开模型空间,以便进行绘制。这里使用
tr.GetObject(...)
方法获取模型空间的块表记录。 - 创建起点坐标,这是多段线的起始点。
- 创建多段线实体,设置起点坐标、是否闭合以及线型。这里使用
Polyline
类来创建多段线实体。 - 将多段线实体添加到块表记录中。
- 将新创建的多段线实体添加到事务中,使其对其他对象可见。
- 提交事务,将更改保存到数据库中。
总结来说,这段代码的作用是在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();
}
//感谢大家的点赞,收藏,转发,关注