|
下面的实例实现内容:提示用户选择一个多线段实体,然后读取该多线段实体的属性、获取多线段顶点坐标
//需要访问Database的操作 需首先将该文档进行锁定,操作完成后,在最后进行释放
DocumentLock dlock = Application.DocumentManager.MdiActiveDocument.LockDocument();
Editor ed = Application.DocumentManager.MdiActiveDocument.Editor;
Database db=HostApplicationServices.WorkingDatabase;
try
{
using (Transaction tran = db.TransactionManager.StartTransaction())
{
//选择多线段实体
PromptEntityOptions EntityOpts = new PromptEntityOptions("请选择一个多线段实体:");
PromptEntityResult EntityResult = ed.GetEntity(EntityOpts);
//判断是否选择成功
if (EntityResult.Status == PromptStatus.OK)
{
//实体类型,可以进行判断是不是Polyline //Entity ent =(Entity)tran.GetObject(EntityResult.ObjectId, OpenMode.ForRead);
//Application.ShowAlertDialog(ent.GetType().ToString());
//得到该实体
Polyline pline = (Polyline)tran.GetObject(EntityResult.ObjectId, OpenMode.ForRead);
//多线段是否闭合 pline.Closed
//多线段起始点 pline.StartPoint
//多线段结束点 pline.EndPoint
//多线段的顶点数
int VNumber=pline.NumberOfVertices;
Point2d pnt;
//多线段各顶点坐标
for(int i=0;i<VNumber;i++)
{
pnt=pline.GetPoint2dAt(i);
ed.WriteMessage("\n"+pnt.ToString());
}
}
tran.Commit();
}
}
catch(Autodesk..Runtime.Exception e)
{
Application.ShowAlertDialog(e.Message);
}
dlock.Dispose();
分享了...希望对后来者有用处!
|
|