几何尺寸与公差论坛------致力于产品几何量公差标准GD&T (GDT:ASME)|New GPS(ISO)研究/CAD设计/CAM加工/CMM测量

几何尺寸与公差论坛------致力于产品几何量公差标准GD&T (GDT:ASME)|New GPS(ISO)研究/CAD设计/CAM加工/CMM测量 (http://www.dimcax.com/hust/index.php)
-   ObjectARX(VB.NET/C#) (http://www.dimcax.com/hust/forumdisplay.php?f=176)
-   -   【转帖】 (http://www.dimcax.com/hust/showthread.php?t=10002)

yang686526 2009-04-22 12:27 PM

【转帖】
 
请教一下扩展数据过滤实体的问题
www.dimcax.com
请教一下扩展数据过滤实体的问题
我在做刻度盘,先画个圆弧,然后画了50个line做刻度,为了和圆弧关联,我把圆弧的id作为参数,保存到line的扩展数据中,现在我选中弧,想通过弧的id过滤选择line。
画line时,写扩展数据的代码:
private void addlinedbrecord(string appname,objectid lineid,objectid arcid,point3d centerpoint,point3d referpoint,double angle)//typeid=1
{
resultbuffer xdatain = new resultbuffer(
new typedvalue((int)dxfcode.extendeddataregappname, appname),
new typedvalue((int)dxfcode.extendeddatainteger32,1),//type=1
new typedvalue((int)dxfcode.extendeddataasciistring, arcid.tostring()),
new typedvalue((int)dxfcode.extendeddataxcoordinate, centerpoint),
new typedvalue((int)dxfcode.extendeddataxcoordinate, referpoint),
new typedvalue((int)dxfcode.extendeddatareal, angle));
lineid.setxdata(appname, xdatain);
}
过滤时代码:
typedvalue[] ftv = new typedvalue[]
{
new typedvalue((int)dxfcode.operator , "<and"),
new typedvalue((int)dxfcode.start, "line") ,
new typedvalue(1000,arcid.tostring()),//没有用,查出结果总是空
new typedvalue((int)dxfcode.operator , "and>")
};
selectionfilter sf = new selectionfilter(ftv);
promptselectionresult sp = ed.selectall(sf);
if (sp.status != promptstatus.ok)
{
return new objectid[0] ;
}
else
{
return sp.value.getobjectids();
}
请问错在哪里?
晕,怎么没人回答呀?


所有的时间均为北京时间。 现在的时间是 06:05 PM.