获取多段线的顶点坐标. 欢迎拍砖,新手代码
public void tt()
{
Document doc = Autodesk.AutoCAD.ApplicationServices.Application.DocumentManager.MdiActiveDocument;
Database db = HostApplicationServices.WorkingDatabase;
Editor ed = doc.Editor;
PromptEntityOptions enOpts = new PromptEntityOptions("选择一个多段线");
PromptEntityResult enRes = ed.GetEntity(enOpts);
if (enRes.Status == PromptStatus.OK)
{
//绘图事物
using (Transaction trans = db.TransactionManager.StartTransaction())
{
Entity en = (Entity)trans.GetObject(enRes.ObjectId, OpenMode.ForRead);
if (en is Polyline)
{
Polyline pl = (Polyline)en;
int pts_len = pl.NumberOfVertices;
for (int i = 0; i < pts_len; i++)
{
ed.WriteMessage(pl.GetPoint3dAt(i).ToString() +"\n");
}
ed.WriteMessage("你选择的是PolyLine");
}
else
{
ed.WriteMessage("你选择的是" + en.GetRXClass().Name);
}
trans.Commit();
}
}
}
非常好的代码,谢谢楼主分享 非常好的代码,谢谢楼主分享。 谢谢楼主,学习学习 完全看不懂。这个难学不 434939575 发表于 2015-8-11 10:57 static/image/common/back.gif
完全看不懂。这个难学不
还行 需要 时间~~~~~~~~~ 我买了一本,李冠亿的,net深入浅出。没勇气看。没啥语音基础 434939575 发表于 2015-8-11 11:11 static/image/common/back.gif
我买了一本,李冠亿的,net深入浅出。没勇气看。没啥语音基础
..这本书我也有 获取选择的对象,判断该对象的类型if (en is Polyline) 和 en.GetRXClass().Name 都不喜欢用 GetStretchPoints? ivde 发表于 2015-8-21 01:21 static/image/common/back.gif
都不喜欢用 GetStretchPoints?
孤陋寡闻 多谢提醒 GetStretchPoints也比较好用!
获取多段线顶点坐标
/// <summary>/// 获取多段线的顶点
/// </summary>
/// <param name="pline">多段线对象</param>
public static Point3dCollection GetPolyPoints(this Polyline pline)
{
Point3dCollection pts = new Point3dCollection();
int i;
for (i = 0; i < pline.NumberOfVertices; i++)
{
Point3d pt = pline.GetPoint3dAt(i);
pts.Add(pt);
}
return pts;
}
页:
[1]
2