- UID
- 37996
- 积分
- 0
- 精华
- 贡献
-
- 威望
-
- 活跃度
-
- D豆
-
- 在线时间
- 小时
- 注册时间
- 2003-3-24
- 最后登录
- 1970-1-1
|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?立即注册
×
查看以下代码,看是哪里有问题(可能是层表浏览器),先谢谢各位了。
该程序的功能是:关闭除选择实体所在层之外的所有层。顺便问一句,怎样才能使我贴的程序具有层次关系,这样看起来很乱。
void v()
{
AcDbDatabase *pCurDb;
AcDbLayerTable *pLayerTable;
ads_name ent;
char layStr[256];
AcDbEntity *pEnt;
AcDbObjectId entId,layerId;
ads_point pick;
AcDbLayerTableIterator *pLyTblIterator;
int rc;
pCurDb=acdbHostApplicationServices()->workingDatabase();
rc=acedEntSel("\nSelect entity",ent,pick);
if(rc!=RTNORM)
{
acutPrintf("\nNo entity has been selected");
return;
}
acdbGetObjectId(entId,ent);
acdbOpenAcDbEntity(pEnt,entId,AcDb::kForRead);
strcpy(layStr,pEnt->layer());
pEnt->close();
pCurDb->getLayerTable(pLayerTable,AcDb::kForWrite);
pLayerTable->newIterator(pLyTblIterator);
char *layerName;
for(;!pLyTblIterator->done();pLyTblIterator->step())
{
AcDbLayerTableRecord *pLayerTableRecord;
pLyTblIterator->getRecord(pLayerTableRecord,AcDb::kForWrite);
pLayerTableRecord->getName(layerName);
if(!strcmp(layerName,layStr))
{
pLayerTableRecord->setIsOff(Adesk::kTrue);
}
pLayerTableRecord->close();
free(layerName);
}
pLayerTable->close();
delete pLyTblIterator;
} |
|