net如何取得二维和三维多段线的顶点或顶点集合?
请教:net如何取得二维和三维多段线的顶点或顶点集合?
即COM编程中的Obj.Coordinate(i)或Obj.Coordinates。
谢谢! 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());
} 谢谢版主!! 再请教:
如何取得所选取曲线时拾取点。即实现在ActiveX技术中GetEntity方法能够返回一个AcadEntity类型的对象和一个Variant类型变量(表示拾取点的位置)。
谢谢! 本帖最后由 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++版的你可以参考这个试一下。
如何获取具有凸度(弧段)上的点????或者计算出来?有好的方法吗??? 有疑问:此程序只获得用户选中的实体,并未返回选中点的坐标。
是如此吗?
谢谢! 为什么用polyline画出来的多段线不能适用呢 飞狐的polyline2d不适用于polyline啊
页:
[1]