庞琛虹 发表于 2009-1-31 22:57:00

急急急。。。大家帮帮忙图层问题的

我想用迭代器历遍整个图层。。。然后想用名字判断自己想要的那个图层。。。把它提出来。。。
我不懂怎么判断。。。源码附上
大家帮帮
AcDbLayerTable *pLayerTbl;
    acdbHostApplicationServices()->workingDatabase()
      ->getSymbolTable(pLayerTbl, AcDb::kForWrite);
    AcDbLayerTableIterator *iter;
pLayerTbl->newIterator(iter);
AcDbLayerTableRecord *ltr;

char *ltrname;
// char *ltrnam;

char *a="ASDK_TESTLAYER";
for(iter->start();!iter->done();iter->step())
{
         iter->getRecord(ltr,AcDb::kForRead);
   ltr->getName(ltrname);
//ltrnam=ltrname;
   if(a =ltrname)
   {
      acutPrintf("\n我成功了%s ",ltrname);
   a=ltrname;
    acutPrintf("图层不存在 ");   
    ltr->close();
    free(ltrname);
   
   }
   else
   {
    acutPrintf("图层不存在 ");
   }
   
   
}
delete iter;
pLayerTbl->close();

hfww111222 发表于 2009-2-2 16:10:00

程序没错,就是这样判断的

rongyifei 发表于 2009-2-2 23:51:00

AcDbLayerTable *pLayerTbl;
acdbHostApplicationServices()->workingDatabase()
   ->getSymbolTable(pLayerTbl, AcDb::kForWrite);
AcDbLayerTableRecord *ltr;
Acad::ErrorStatus es;
ACHAR *ltrname;
if ((es=pLayerTbl->getAt(_T("ASDK_TESTLAYER"),ltr,AcDb::kForRead))==Acad::eOk)
{
   ltr->getName(ltrname);
   acutPrintf(_T("\n我成功了%s "),ltrname);
   ltr->close();
}
else
   acutPrintf(_T("图层不存在 "));
pLayerTbl->close();

庞琛虹 发表于 2009-2-5 19:41:00

谢谢楼上大朋友
页: [1]
查看完整版本: 急急急。。。大家帮帮忙图层问题的