xskfq 发表于 2014-2-9 21:25:06

请教ARX里的图层问题


void CCmd::cmdDrawInterect()
{
      CString strEntity=AcDbLine::desc()/*->isA()*/->name()+CString(_T(","))+AcDbCircle::desc()/*->isA()*/->name();
      // 取得线
      CArxSelect sel;
      AcDbObjectIdArray arr;
      if ( !sel.SelectEntity(arr,_T("LINE,CIRCLE"), true) || arr.isEmpty() )
      {
                acutPrintf(_T("没有选择到合适的线!\n"));
                return;
      }

      // 过滤
      CQueryAcDb qu;
      CEfLayer ly(getLayers());
      AcDbObjectIdArray arrLines;
      qu.GetEntity(arr, arrLines, &ly);
      CEfName nm(AcDbCircle::desc()->name());
      qu.GetEntity(arr, arrLines, &nm);
      if ( arr.isEmpty() )
      {
                acutPrintf(_T("没有选择到合适的线!\n"));
                return;
      }

---------------------------------------------------------------------------------------------

只选择指定几个图层的直线和圆 怎么改一下?类似LISP中的(ssget '((0 . "line")(8 . "0,1")))

请高手指点 谢谢!!

luowy 发表于 2014-2-14 11:54:25

既然用了arx,为什么不直接用ssget????
ssget有个过滤选择的功能

xgready 发表于 2014-2-25 09:37:14

用acedSSGet很方便的。
页: [1]
查看完整版本: 请教ARX里的图层问题