-
[C#/AutoCAD] Entity 추가C#/AutoCAD API 2023. 7. 15. 07:44
1. 현재 활성화 되어있는 문서를 가져와 Transaction을 시작하고 Entity를 생성한 후 Commit을 한다. (Winform으로 생성시에는 DocumentLock 필요)
2. 아래의 기본 코드에 'Write code here'에 Entity를 생성하는 코드를 작성하면 된다.
Document doc = Application.DocumentManager.MdiActiveDocument; using (DocumentLock docLock = doc.LockDocument()) { Database db = doc.Database; using (Transaction tr = db.TransactionManager.StartTransaction()) { BlockTable bt = tr.GetObject(db.BlockTableId, OpenMode.ForRead) as BlockTable; BlockTableRecord btr = tr.GetObject(bt[BlockTableRecord.ModelSpace], OpenMode.ForWrite) as BlockTableRecord; // Write code here. tr.Commit() } }
- Line 생성
Line line = new Line(new Point3d(0,0,0), new Point3d(100,0,0)); btr.AppendEntity(line); tr.AddNewlyCreatedDBObject(line, true);
- Polyline 생성
using (Polyline poly = new Polyline()) { poly.AddVertexAt(0, new Point2d(2, 4), 0, 0, 0); poly.AddVertexAt(1, new Point2d(4, 2), 0, 0, 0); poly.AddVertexAt(2, new Point2d(6, 4), 0, 0, 0); // Add the new object to the block table record and the transaction btr.AppendEntity(poly); tr.AddNewlyCreatedDBObject(poly, true); }
- Arc 생성
// (center pos, radius, start radian, end radian) Arc arc = new Arc(new Point3d(0,0,0), 1000, Math.PI / 180 * 180, Math.PI / 180 * 270); btr.AppendEntity(arc); tr.AddNewlyCreatedDBObject(arc, true);
- MText 생성
using (MText mText = new MText()) { mText.Location = new Point3d(0,0,0); mText.TextHeight = 500; mText.Color = Color.FromColorIndex(ColorMethod.ByAci, 2); mText.Attachment = AttachmentPoint.TopRight; mText.Contents = "Hello World"; btr.AppendEntity(mText); tr.AddNewlyCreatedDBObject(mText, true); }
- Hatch 생성
ObjectIdCollection lines = new ObjectIdCollection(); lines.Add(lineObjId1); lines.Add(lineObjId2); lines.Add(lineObjId3); lines.Add(lineObjId4); using (Hatch hatch = new Hatch()) { hatch.SetDatabaseDefaults(); hatch.SetHatchPattern(HatchPatternType.PreDefined, "SOLID"); hatch.AppendLoop(HatchLoopTypes.Outermost, lines); hatch.Layer = "0"; hatch.Color = Color.FromColorIndex(ColorMethod.ByAci, 7); // Transparency(127) => 50% hatch.Transparency = new Transparency(127); hatch.EvaluateHatch(true); btr.AppendEntity(hatch); tr.AddNewlyCreatedDBObject(hatch, true); }
'C# > AutoCAD API' 카테고리의 다른 글
[C#/AutoCAD] Color 입력 방법 (0) 2023.09.08 [C#/AutoCAD] LineType 불러오기 (0) 2023.09.08 [C#/AutoCAD] AutoCAD 구동시 Ribbon Menu 생성하는 방법 (1) 2023.08.24 [C#/AutoCAD] NetRelaoder (dll load/unload) (0) 2023.07.15 [C#/AutoCAD] 신규 Layer, Block 정의 (0) 2023.07.15