using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using Autodesk.AutoCAD.ApplicationServices; using Autodesk.AutoCAD.DatabaseServices; using Autodesk.AutoCAD.EditorInput; using Autodesk.AutoCAD.Geometry; using Autodesk.AutoCAD.Runtime; namespace _01_LineD { public class Class1 { [CommandMethod("LineDemo")] public void LineDemo() { Line line1 = new Line();//声明一个直线对象 Point3d startPoint3D = new Point3d(100, 100, 0);//创建两个点 Point3d endPoint3D = new Point3d(100, 200, 0); line1.StartPoint = startPoint3D;//设置属性 line1.EndPoint = endPoint3D; //声明图形数据库对象 Document doc = Application.DocumentManager.MdiActiveDocument; Database db = doc.Database; Line line2 = new Line(new Point3d(100, 200, 0), new Point3d(200, 200, 0)); Line line3 = new Line(new Point3d(200, 200, 0), new Point3d(200, 100, 0)); Line line4 = new Line(new Point3d(200, 100, 0), new Point3d(100, 100, 0)); //开启事务处理 using (Transaction trans = db.TransactionManager.StartTransaction()) { BlockTable bt = (BlockTable)trans.GetObject(db.BlockTableId, OpenMode.ForRead);//打开块表 BlockTableRecord btr = (BlockTableRecord)trans.GetObject(bt[BlockTableRecord.ModelSpace], OpenMode.ForWrite);//打开块表记录 btr.AppendEntity(line1);//加直线到块表记录 btr.AppendEntity(line2);//加直线到块表记录 btr.AppendEntity(line3);//加直线到块表记录 btr.AppendEntity(line4);//加直线到块表记录 trans.AddNewlyCreatedDBObject(line1, true);//更新数据 trans.AddNewlyCreatedDBObject(line2, true);//更新数据 trans.AddNewlyCreatedDBObject(line3, true);//更新数据 trans.AddNewlyCreatedDBObject(line4, true);//更新数据 trans.Commit();//提交事务 } } } }