运行环境 vs2022 c# cad2016 调试成功
一、程序说明
创建一个正方形,并将其添加到当前活动文档的模型空间中。
程序首先获取当前活动文档和数据库,并创建一个编辑器对象。
然后,使用事务开始创建正方形的操作。获取模型空间的块表记录,并将其转换为可写模式。
接下来,定义正方形的边长为5,并定义左下角点为坐标原点。
然后,创建一个空的Polyline实体,用于存储正方形的边界点。
通过循环添加四个顶点,并连接它们以形成正方形。每次循环都会计算下一个顶点的坐标,并将新的顶点添加到Polyline实体中。
完成循环之后,将Polyline实体添加到块表记录中,并使用AddNewlyCreatedDBObject方法将其标记为新创建的对象。
最后,提交事务以保存正方形的更改。
二、完整代码
[CommandMethod("CreateSquare")]
public void CreateSquare()
{
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.ForWrite);
// 定义正方形的边长为5
double sideLength = 5;
Point3d cornerPoint = new Point3d(0, 0, 0); // 正方形的左下角点
Polyline square = new Polyline(); // 创建空的Polyline实体
// 添加四个顶点并连接成正方形
for (int i = 0; i < 4; i++)
{
Point3d nextCornerPoint = new Point3d(cornerPoint.X + sideLength, cornerPoint.Y, cornerPoint.Z);
square.AddVertexAt(i, new Vertex3d(cornerPoint), true); // 添加顶点并连接到前一个顶点
cornerPoint = nextCornerPoint; // 更新下一个顶点的位置
}
// 将正方形添加到块表中并提交事务
btr.AppendEntity(square);
tr.AddNewlyCreatedDBObject(square, true);
tr.Commit();
}
}
//感谢大家的点赞,收藏,转发,关注