几何尺寸与公差论坛------致力于产品几何量公差标准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(C++) (http://www.dimcax.com/hust/forumdisplay.php?f=34)
-   -   【转帖】请教如何 根据层名获得层的id (http://www.dimcax.com/hust/showthread.php?t=8131)

yang686526 2009-04-18 08:29 PM

【转帖】请教如何 根据层名获得层的id
 
请教如何 根据层名获得层的id
请教如何 根据层名获得层的id
是用acdbgetobjectid(acdbobjectid& objid,const ads_name objname);这个函数吗?要使的话cstring和ads_name类型要怎么转换,如何给这个函数传值?
我走的很慢,可我从不后退!
嘿嘿,如果vlisp我倒是会,arx我可不会
获取图层的控制需要得到layer table,遍历里面的layer需要iterator
acdblayertable *lt;
acdblayertableiterator *it;
acdbhostapplicationservices()->workingdatabase()->getlayertable(lt,acdb::kforread);//取得layer table
lt->newiterator(it);//建立一个iterator
for(;!it->done();it->step())//it->done()是结束判断,it->step()是遍历下一个,类似于链表或线形表
{
acdblayertablerecord *ltr;
it->getrecord(ltr,acdb::kforread);//通过it可以得到record
char* text;
ltr->getname(text);得到名字,注意这段内存是不可以动的,这个东西就赤裸的指向系统内部的那个存储图层名的地方
ltr->close();//record必须关闭!
acutprintf("%s",text);
}
delete it;//it必须用这个方式删除
lt->close();//lt必须关闭
注意iterator的用法,就如同stl的iterator的用法,记得用完删除!
我的qq 172522850
错了,呵呵,你问的是这个阿:
acdblayertable *lt;
acdbhostapplicationservices()->workingdatabase()->getlayertable(lt,acdb::kforread);
lt->getat(图层名,id)
lt->close();
使用getat函数,直接得到
我的qq 172522850


所有的时间均为北京时间。 现在的时间是 04:33 AM.