The Point3AngularDimension class in AutoCAD .NET API helps to create a 3 point angular dimension. Following Code snippet explains how to create a 3 point angular dimension for an ARC entity.
[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();
}
}
}