zcmfk 发表于 2011-2-22 15:53:13

net如何取得二维和三维多段线的顶点或顶点集合?

请教:
  net如何取得二维和三维多段线的顶点或顶点集合?
  即COM编程中的Obj.Coordinate(i)或Obj.Coordinates。
  谢谢!

雪山飞狐_lzh 发表于 2011-2-22 21:06:26

                Polyline2d pl2d = tr.GetObject(resEnt.ObjectId, OpenMode.ForRead) as Polyline2d;
                foreach (ObjectId id in pl2d)
                {
                  Vertex2d ver = tr.GetObject(id, OpenMode.ForRead) as Vertex2d;
                  ed.WriteMessage(ver.Position.ToString());
                }
                Polyline3d pl3d = tr.GetObject(resEnt.ObjectId, OpenMode.ForRead) as Polyline3d;
                foreach (ObjectId id in pl3d)
                {
                  PolylineVertex3d ver = tr.GetObject(id, OpenMode.ForRead) as PolylineVertex3d;
                  ed.WriteMessage(ver.Position.ToString());
                }

zcmfk 发表于 2011-2-25 13:29:21

谢谢版主!!

zcmfk 发表于 2011-3-14 16:22:21

再请教:
  如何取得所选取曲线时拾取点。即实现在ActiveX技术中GetEntity方法能够返回一个AcadEntity类型的对象和一个Variant类型变量(表示拾取点的位置)。
  谢谢!

epwt 发表于 2011-3-14 20:37:03

本帖最后由 epwt 于 2011-3-14 20:38 编辑

/// <summary>
/// 获得用户选中的实体及选中点的坐标
/// </summary>
const int RTNORM = 5100;


private static extern int acedEntSel(string prompt, long[] name, double[] pt);
acdb17.dll", CallingConvention = CallingConvention.Cdecl, CharSet = CharSet.Auto)]
private static extern int acdbGetObjectId(ref ObjectId objId, long[] name);
/// <summary>
/// 获得用户选中的实体及选中点的坐标
/// </summary>
/// <param name="prompMessage">提示信息</param>
/// <param name="pickPoint"></param>
/// <returns>返回选中实体的Id</returns>
private static ObjectId getObjectFromPoint(string prompMessage, out Point3d pickPoint)
{
   ObjectId id = ObjectId.Null;
   long[] ent ={ 0, 0 };
   double[] pt ={ 0, 0, 0 };
   if (acedEntSel(prompMessage, ent, pt) == RTNORM) {
    if (acdbGetObjectId(ref id, ent) == 0) {
   pickPoint = new Point3d(pt, pt, pt);
    }
   }
   return id;
}

这是C#版的,具体C++版的你可以参考这个试一下。

sbydo 发表于 2011-3-15 10:45:42

如何获取具有凸度(弧段)上的点????或者计算出来?有好的方法吗???

zcmfk 发表于 2011-3-15 15:48:01

有疑问:此程序只获得用户选中的实体,并未返回选中点的坐标。
是如此吗?
 谢谢!

2011polo 发表于 2011-9-13 22:40:16

为什么用polyline画出来的多段线不能适用呢

2011polo 发表于 2011-9-14 00:13:10

飞狐的polyline2d不适用于polyline啊
页: [1]
查看完整版本: net如何取得二维和三维多段线的顶点或顶点集合?