我想用一直线选择在直线上的实体,怎么实现?
public static PromptSelectionResult SelectOnLine(this Editor ed, Line3d line){
Point3d p1 = line.StartPoint;
Point3d p2 = line.EndPoint;
Point3d[] ps = { p1, p1, p2, p2 };
Point3dCollection pts = new Point3dCollection(ps);
return ed.SelectCrossingPolygon(pts);
}
在选择的时候,选择了直线,不知道怎样把Entity类型变成Line3d ,请教 用函数重载 参数换成Line sxpd 发表于 2014-7-2 09:53 static/image/common/back.gif
用函数重载 参数换成Line
你好,我也是刚开始学习C#,对一些东西还不能灵活运用,能具体针对此问题教教我不,谢谢 在类中加个同名函数,改变参数类型或个数 这个叫重载函数 每本C#书都有讲的,,,
public static PromptSelectionResult SelectOnLine(this Editor ed, Line line)
{
Point3d p1 = line.StartPoint;
Point3d p2 = line.EndPoint;
Point3d[] ps = { p1, p1, p2, p2 };
Point3dCollection pts = new Point3dCollection(ps);
return ed.SelectCrossingPolygon(pts);
} 雪山飞狐_lzh 发表于 2014-7-2 23:50 static/image/common/back.gif
在类中加个同名函数,改变参数类型或个数 这个叫重载函数 每本C#书都有讲的,,,
public static PromptSe ...
版主好, SelectOnLine这个函数式我写的,我用别的函数调用此函数时,提示选择直线,最终得到的是Entity对象,不知道怎样变成Line3d对象,不能正确调用此函数。 Line3d ln = new Line3d((Line)ent.StartPoint, (Line)ent.EndPoint); SelectOnLine(ed,(Line)ent);
函数重载调用时会自动判断参数类型 雪山飞狐_lzh 发表于 2014-7-2 23:50 static/image/common/back.gif
在类中加个同名函数,改变参数类型或个数 这个叫重载函数 每本C#书都有讲的,,,
public static PromptSe ...
public static void 选择1()
{
Editor ed = Application.DocumentManager.MdiActiveDocument.Editor;
PromptEntityResult ent = ed.GetEntity("\n 请选择直线");
ObjectId id = ent.ObjectId;
//Line3d line = (Line3d)id.GetObject(OpenMode.ForRead);
//上一行是我想要的效果,不知道怎么实现?如果能实现,我就可以调用SelectOnLine(line)函数了。
}
雪山飞狐_lzh 发表于 2014-7-3 10:17 static/image/common/back.gif
SelectOnLine(ed,(Line)ent);
函数重载调用时会自动判断参数类型
我试试,谢谢飞狐版主。刚开始学习,以后还请版主多多赐教。 雪山飞狐_lzh 发表于 2014-7-3 10:17 static/image/common/back.gif
SelectOnLine(ed,(Line)ent);
函数重载调用时会自动判断参数类型
谢谢飞狐版主,我把Autodesk.AutoCAD.DatabaseServices和 Autodesk.AutoCAD.Geometry命名空间没搞清楚,我以为LINE和LINE3D都是在Autodesk.AutoCAD.Geometry空间,没想到LINE是在Autodesk.AutoCAD.DatabaseServices空间,而LINE3D在Autodesk.AutoCAD.Geometry空间。我的功能实现了,再次感谢版主。
搞定一个难题(我自己的)有点窃喜。
页:
[1]
2