- UID
- 35678
- 积分
- 0
- 精华
- 贡献
-
- 威望
-
- 活跃度
-
- D豆
-
- 在线时间
- 小时
- 注册时间
- 2003-3-14
- 最后登录
- 1970-1-1
|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?立即注册
×
大家用惯了AutoCAD14中附带的Express工具,在CAD2002中没有提供该工具,以下为我编写的几个模块使现其部分功能
void slSLSETCUR()
{
#ifdef OARXWIZDEBUG
acutPrintf ("\nOARXWIZDEBUG - slSLSETCUR() called.");
#endif // OARXWIZDEBUG
AcDbDatabase *pDb=acdbHostApplicationServices()->workingDatabase();
ads_name name;
ads_point pt;
if(acedEntSel("ent:",name,pt)!=RTNORM)return;
AcDbObjectId EntId;
acdbGetObjectId(EntId,name);
AcDbEntity *pEnt=NULL;
if(acdbOpenObject(pEnt,EntId,AcDb::kForRead)!=Acad::eOk)return;
CString LayerName;
LayerName.Format("%s",pEnt->layer());
pEnt->close();
struct resbuf Rb;
Rb.restype=RTSTR;
Rb.resval.rstring=new char[255];
strcpy(Rb.resval.rstring,LPCTSTR(LayerName));
acedSetVar("CLAYER",&Rb);
}
//-----------------------------------------------------------------------------
// This is command 'SETON, by [六月/29/2003], ,
void slSLSETON()
{
#ifdef OARXWIZDEBUG
acutPrintf ("\nOARXWIZDEBUG - slSLSETON() called.");
#endif // OARXWIZDEBUG
AcDbDatabase *pDb=acdbHostApplicationServices()->workingDatabase();
CStringArray LayerArray;
getAllLayerName(LayerArray);
for(int i=0;i<LayerArray.GetSize();i++)
{
AcDbObjectId Id;
AcDbSymbolUtilities::getLayerId(Id,LayerArray.GetAt(i),pDb);
AcDbLayerTableRecord *pRecord=NULL;
acdbOpenObject(pRecord,Id,AcDb::kForWrite);
pRecord->setIsOff(FALSE);
pRecord->close();
}
}
//-----------------------------------------------------------------------------
// This is command 'SETOFF, by [七月/01/2003], ,
void slSLSETOFF()
{
#ifdef OARXWIZDEBUG
acutPrintf ("\nOARXWIZDEBUG - slSLSETOFF() called.");
#endif // OARXWIZDEBUG
AcDbDatabase *pDb=acdbHostApplicationServices()->workingDatabase();
ads_name name;
ads_point pt;
if(acedEntSel("ent:",name,pt)!=RTNORM)return;
AcDbObjectId EntId;
acdbGetObjectId(EntId,name);
AcDbEntity *pEnt=NULL;
if(acdbOpenObject(pEnt,EntId,AcDb::kForRead)!=Acad::eOk)return;
CString LayerName;
LayerName.Format("%s",pEnt->layer());
pEnt->close();
CStringArray LayerArray;
getAllLayerName(LayerArray);
for(int i=0;i<LayerArray.GetSize();i++)
{
if(LayerName==LayerArray.GetAt(i))continue;
AcDbObjectId Id;
AcDbSymbolUtilities::getLayerId(Id,LayerArray.GetAt(i),pDb);
AcDbLayerTableRecord *pRecord=NULL;
acdbOpenObject(pRecord,Id,AcDb::kForWrite);
pRecord->setIsOff(TRUE);
pRecord->close();
}
} |
|