ARX中DXF组码在选择集中的应用
本帖最后由 chpmould 于 2011-12-7 19:49 编辑请各位高手在百忙中抽出一点时间帮写个如下LISP用法的例子
(setq ss1(ssget (list(assoc 0 ss_dat1)(assoc 6 ss_dat1)(assoc 8 ss_dat1)(assoc 62 ss_dat1))))
本帖最后由 highflybird 于 2011-12-13 10:40 编辑
ads_name ename;
ads_point ept;
int ret = acedEntSel(_T("\n请选择一个实体:"),ename,ept);
if (ret != RTNORM)
{
return;
}
//获取图元信息
struct resbuf* pRb_ent = acdbEntGet(ename);
while( pRb_ent->restype != 0)
pRb_ent = pRb_ent->rbnext;
CString TypeName;
TypeName.Format(pRb_ent->resval.rstring);
ret = acutRelRb(pRb_ent);
struct resbuf *filter;
filter = acutBuildList(RTDXF0, TypeName.GetBuffer(),RTNONE);
ads_name ss;
ret = acedSSGet(NULL,NULL,NULL,filter,ss);
if (ret != RTNORM)
return;
ret = acutRelRb(filter);
ret = acedSSSetFirst(ss, ss);
ret = acedSSFree(ss);
非常感谢,这个我现在知道有两种方法:
第一种是利用acedEntGet来得到链表,在从链表中取得响应的值;
第二种是通过对象访问的方法dxfName(),来获取对象的各种属性 支持下2楼 好东西,必须顶一个,又学习了 ssget的过滤表,是个什么“表”结构。
我想通过获取 现有变量,来组合成过滤表,因为过滤表中使用了逻辑运算,list为表时出现错误。 学到了,谢谢大神~~~
页:
[1]