//by 鸟哥 qq1833183060
//qq群 720924083
//2020-11-09
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
{
//https://adndevblog.typepad.com/autocad/2012/04/creating-a-3-point-angular-dimension-using-point3angulardimension-in-net.html
[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();
}
}
}
}
}
在autocad.NET中使用Point3AngularDimension创建3点角度标注
最新推荐文章于 2023-05-30 14:52:57 发布