ZRX¿ª·¢ÊÖ²á

}

// Add your code for register server components

public: } ;

// -Your command function entry static void MyCmdGroupMyCmd(void) { }

// Add your code for command implement here //¡­¡­

2£©ÉùÃ÷Ó¦ÓóÌÐòÈë¿Úµãºê

IMPLEMENT_ZRX_ENTRYPOINT(CmdEntryApp)

3£©¶¨ÖÆÃüÁî

// The macro for customize your command

ZCED_ZRXCOMMAND_ENTRY_AUTO(CmdEntryApp, MyCmdGroup, MyCmd, MyCmd, ZCRX_CMD_TRANSPARENT, NULL)

¼ÓÔØ¼°ÔËÐÐ

±àÒë³É¹¦µÄZRX Ó¦ÓóÌÐò£¬¿ÉÒÔÔÚZWCADƽ̨ÉϽøÐмÓÔØ²¢Ö´ÐУº 1. ÔÚÃüÁîÐÐÉÏÊäÈë¡°AP¡± »ò¡°APPLOAD¡±ÃüÁ½«±àÒëºÃµÄdll¼ÓÔØ½øÀ´£» 2. ÔÚÃüÁîÐÐÊäÈëÔ¤Ïȶ¨ÒåµÄ¹¦ÄÜÃüÁî½øÐÐÖ´ÐС£

¼ÓÔØ·½Ê½¿É·ÖΪÊÖ¶¯¼ÓÔØºÍ×Ô¶¯¼ÓÔØ£º

1¡¢ÊÖ¹¤¼ÓÔØ£¬Æô¶¯ZWCAD£¨ÔÚÆô¶¯Ç°£¬È·±£ZRX.DLLÒѷŽøZWCAD°²×°Ä¿Â¼,¼´ZRX.DLLÓëZWCAD.EXEÔÚͬһĿ¼Ï£©,ÔÚZWCADÃüÁîÐÐÊäÈëapploadÃüÁî,Ñ¡ÔñÒªÖ´ÐеÄZRXÉú³ÉµÄ.dllÎļþ, ²¢Ö´ÐмÓÔØ¡£

2¡¢×Ô¶¯¼ÓÔØ¡£Ê¹ÓÃdrxautoload.cfgÎļþ¡£ÔÚÆäÖÐÌí¼ÓZRXÉú³ÉµÄ.dllÎļþµÄÃû³Æ¡£ZWCADÆô¶¯Ê±×Ô¶¯¼ÓÔØ¡£

×¢ÒâÊÂÏî

1. ZRXµÄ½Ó¿Ú°æ±¾ÓëObjectARX Version 2008¼°ÒÔÉϼæÈÝ¡£ÓÐÇø±ðµÄÊÇʹÓõÄÊǶà×Ö½Ú

MBCS¶ø²»ÊÇUNICODE¡£

2. ¹¤³ÌÅäÖÃ->C/C++->ÓïÑÔ->½«wchar_tÊÓΪÄÚÖÃÀàÐ͸ÄΪ¡°·ñ¡±¡£

3. ÔÚ¼ÓÔØ×Ô¼º±àÒëºÃµÄdllǰ£¬ È·±£ZRX.DLLÒѷŽøZWCAD°²×°Ä¿Â¼£¬¼´ZRX.DLLÓë

ZWCAD.EXEÔÚͬһĿ¼Ï£¬·ñÔò³ÌÐò¼ÓÔØÊ§°Ü¡£

Êý¾Ý¿â¸ÅÊö¼°²Ù×÷

1) Êý¾Ý¿â¸ÅÊö£º

ZRXÊý¾Ý¿âµÄµ×²ãÊDzÉÓÃOpenDWGµÄDWGdirectÄ£¿é£¬ÔÚÊý¾Ý¿âÄ£ÐÍÉÏÄܹ»ºÜºÃµÄ¼æÈÝDWG¸ñʽ£¬Êý¾Ý¿âÓÉÒÔÏ»ù±¾½á¹¹×é³É£º ?? 9¸ö·ûºÅ±í (Symbol Table)

¿é±í (ZcDbBlockTable)

³ß´çÑùʽ±í(ZcDbDimStyleTable) ²ã±í(ZcDbLayerTable) ÏßÐͱí(ZcDbLinetypeTable) ×¢²áÓ¦Óñí(ZcDbRegAppTable) Îı¾Ñùʽ±í (ZcDbTextStyleTable) Óû§×ø±êϵͳ±í(ZcDbUCSTable) ÊÓ¿Ú±í(ZcDbViewportTable) ÊÓ±í((ZcDbViewTable)

?? 1¸öÃüÃû¶ÔÏó×Öµä( Named Object Dictionary£©

2) Êý¾Ý¿â¶ÔÏó£º

ÈκÎÒ»¸öÊý¾Ý¿â¶ÔÏóZcDbObjectÓÐÏÂÃæÈýÖÖ±íÏÖÐÎʽ£º ¾ä±ú (ZcDbHandle)

¶ÔÏóID (ZcDbObjectId & zds_name) ¶ÔÏóÖ¸Õë(ZcDbObject *¡¢ZcDbEntity* ¡­)

ÈýÕßÖ®¼ä¿ÉÒÔ¸ù¾ÝʵʱÐèÒª½øÐÐת»»µÃµ½£¬ÀýÈ磺 ZcDbObjectId objId; zds_name objName; ZcDbObject* pObj = NULL; ZcDbHandle objHand;

a. ´Ózds_nameת»»µÃµ½ZcDbObjectId £º zcdbGetObjectId(objId, objName);

b. ´ÓZcDbObjectIdת»»µÃµ½zds_name£º zcdbGetZdsName(objName , objId);

c. ´Ó ZcDbObjectIdÒÔ¶ÁµÄ·½Ê½´ò¿ªµÃµ½ZcDbObject*£º zcdbOpenObject(pObj , objId, ZcDb::kForRead);

d. ´Ó ZcDbObjectÖеõ½ZcDbObjectId £º objId = pObj->objectId();

e. ´ÓZcDbObjectIdת»»µÄµ½ZcDbHandle: objHand = objId->Handle();

f. ´ÓZcDbHandleת»»µÃµ½ZcDbObjectId:

ZcDbDatabase * pDb = zcdbHostApplicationServices()->workingDatabase(); bool bCreateFlag = true;

pDb->getZcDbObjectId(objId, bCreateFlag, objHand);

3£©·ÃÎÊÊý¾Ý¿â£º

¿ª·¢Óû§¸ù¾Ýʵ¼ÊÓ¦ÓÃÐèÒª´´½¨¡¢±à¼­¡¢±£´æ¡¢É¾³ýÒ»¸öÊý¾Ý¿â£¬Ò²¿ÉÒÔ±éÀúÕû¸öÊý¾ÝÀïµÄ¶ÔÏó£¬ÏÂÃæ¾ÍÈçºÎÌí¼ÓÒ»¸öʵÌåµ½Êý¾Ý¿â¼°ÈçºÎ±éÀúÒ»¸öÊý¾Ý¿â½øÐеĴúÂë½øÐÐʾÀý£º

// Ìí¼ÓÒ»¸öʵÌåµ½µ±Ç°Êý¾Ý¿âµÄÄ£ÐͿռä

bool addEntityToDb(ZcDbObjectId& entId, ZcDbEntity * pEnt) { }

// ±éÀúÒ»¸öÊý¾Ý¿âÄ£ÐͿռäÀïËùÓеÄʵÌå void iterateThroughDatabase()

ZcDbDatabase * pDb = zcdbHostApplicationServices()->workingDatabase(); if (!pDb) return false; ZcDbBlockTable* pTbl = NULL;

if (Zcad::eOk != pDb->getBlockTable(pTbl, ZcDb::kForRead) )

return false;

ZcDbBlockTableRecord* pTblRec = NULL;

if (Zcad::eOk != pTbl->getAt(ZCDB_MODEL_SPACE, pTblRec, ZcDb::kForWrite)) { }

pTbl->close();

if (Zcad::eOk != pTblRec->appendZcDbEntity(entId, pEnt)) { }

pTblRec->close(); return true;

pTblRec->close(); return false; pTbl->close(); return false;

{

ZcDbDatabase *pDb = new ZcDbDatabase(Zdesk::kFalse); if(Zcad::eOk != pDb->readDwgFile(_T(\

return;

ZcDbBlockTable *pBlkTbl;

pDb->getSymbolTable(pBlkTbl, ZcDb::kForRead); if (!pBlkTbl) return;

ZcDbBlockTableRecord *pBlkTblRcd;

pBlkTbl->getAt(ZCDB_MODEL_SPACE, pBlkTblRcd, ZcDb::kForRead); if (!pBlkTblRcd) { }

pBlkTbl->close();

ZcDbBlockTableRecordIterator *pIterator; pBlkTblRcd->newIterator(pIterator); if (!pIterator) { }

pBlkTblRcd->close(); ZcDbEntity *pEnt;

for (pIterator->start(); !pIterator->done();pIterator->step()) {

pIterator->getEntity(pEnt, ZcDb::kForRead); if (!pEnt) continue; pBlkTblRcd->close(); return;

pBlkTbl->close(); return;

zcutPrintf(\ }

}

pEnt->close();

delete pIterator; delete pDb;

4) ¿â´æÊµÌå¶ÔÏóÀàÁо٣º

ZRXÌṩÁËÒÔÏÂÊý¾Ý¿â³£¹æÊµÌåÀࣺ ?? ZcDbPolyline ?? ZcDb2dPolyline ?? ZcDb3dPolyline

ÁªÏµ¿Í·þ£º779662525#qq.com(#Ìæ»»Îª@)