1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69
|
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks;
using Autodesk.AutoCAD.DatabaseServices; using Autodesk.AutoCAD.Runtime; using Autodesk.AutoCAD.EditorInput; using Autodesk.AutoCAD.ApplicationServices; using Autodesk.AutoCAD.Windows; using Autodesk.AutoCAD.Geometry; namespace AcadDemo { public class DimensionDemo { [CommandMethod("netDimAngular")] public void netDimAngular() { Document doc = Application.DocumentManager.MdiActiveDocument; Database db = doc.Database; Editor ed = doc.Editor;
PromptEntityOptions peo = new PromptEntityOptions("\nSelect an Arc: ");
peo.SetRejectMessage("\nMust be an Arc...");
peo.AddAllowedClass(typeof(Arc), true);
PromptEntityResult per = ed.GetEntity(peo);
if (per.Status != PromptStatus.OK) return;
using (Transaction Tx =db.TransactionManager.StartTransaction()) { Arc arc = Tx.GetObject(per.ObjectId, OpenMode.ForRead) as Arc;
BlockTable bt = Tx.GetObject(db.BlockTableId,OpenMode.ForRead) as BlockTable;
BlockTableRecord btr = Tx.GetObject(bt[BlockTableRecord.ModelSpace],OpenMode.ForWrite) as BlockTableRecord;
string dimStyle = "Standard";
DimStyleTable dimStyleTable = Tx.GetObject(db.DimStyleTableId,OpenMode.ForRead) as DimStyleTable;
if (dimStyleTable.Has(dimStyle)) { Point3d point3 =arc.StartPoint.Add(arc.EndPoint.GetAsVector()).MultiplyBy(0.5);
ObjectId dimStyleId = dimStyleTable[dimStyle];
Point3AngularDimension dim = new Point3AngularDimension(arc.Center,arc.StartPoint,arc.EndPoint,point3, "",dimStyleId);
btr.AppendEntity(dim);
Tx.AddNewlyCreatedDBObject(dim, true); Tx.Commit();
} } } } }
|