acDocManager->appContextOpenDocument(fname);
#endif
}下面的方法则打开指定位置的DWG文件。
void OpenDoc( void *pData)
{
AcApDocument* pDoc = acDocManager->curDocument();
if (acDocManager->isApplicationContext())
{
acDocManager->appContextOpenDocument((const char *)pData);
}
else
{
acutPrintf(“\nERROR To Open Doc!\n”);
}
}
// This is command ‘OPEN1’
void ZffOPENopen1()
{
// 直接打开系统中存在的某个图形文件G:\AutoCAD图形\wen2.dwg
static char pData[] = “G:\\AutoCAD图形\\wen2.dwg”;
acDocManager->executeInApplicationContext(OpenDoc, (void *)pData);
}
// Function name : SetCurLayer
// Description : 设置当前层
// Return type : Acad::ErrorStatus
// Argument : const char* lpLayerName
// Argument : AcDbDatabase* pDb
Acad::ErrorStatus SetCurLayer( const char * lpLayerName, AcDbDatabase * pDb )
{
AcDbDatabase * pCurDb = pDb;
if (pCurDb == NULL)
pCurDb = acdbHostApplicationServices() -> workingDatabase();
AcDbLayerTableRecordPointer spRecord(lpLayerName, pCurDb, AcDb::kForRead);
Acad::ErrorStatus es = spRecord.openStatus();
if (es == Acad::eOk)
{
es = pCurDb -> setClayer(spRecord -> objectId());
}
return es;
}
//功能描述:选择指定图层上的所有实体!
// 函数名称:selectEntityInLayer
// 函数类型:Acad::ErrorStatus
// 返回值: 正常:Acad::eOk
// 功能描述:选择指定图层上的所有实体!
// 函数作者:Darcy
// 创建日期:200X-XX-XX
// 参数列表:
// 变量名:nLayerName 变量类型:const char* 变量说明:(输入)图层名
// 变量名:nIDs 变量类型:AcDbObjectIdArray& 变量说明:(输出)图层中实体的对象标识符集合
Acad::ErrorStatus selectEntityInLayer( const char * nLayerName,AcDbObjectIdArray & nIDs)
{
Acad::ErrorStatus es = Acad::eOk;
ads_name ents;
struct resbuf * rb;
rb = acutNewRb(AcDb::kDxfLayerName);
rb -> restype = 8 ;
rb -> resval.rstring = ( char * )nLayerName;
rb -> rbnext = NULL;
acedSSGet( ” X ” ,NULL,NULL,rb,ents);
long entNums = 0 ;
acedSSLength(ents, & entNums);
if (entNums == 0 )
es = Acad::eInvalidInput;
else
{
for ( long a = 0 ; a < entNums ; a ++ )
{
AcDbObjectId objId;
ads_name ent;
acedSSName(ents,a,ent);