云题海 - 专业文章范例文档资料分享平台

当前位置:首页 > ZRX开发手册

ZRX开发手册

  • 62 次阅读
  • 3 次下载
  • 2025/5/3 18:25:32

}

// 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数据库的底层是采用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

搜索更多关于: ZRX开发手册 的文档
  • 收藏
  • 违规举报
  • 版权认领
下载文档10.00 元 加入VIP免费下载
推荐下载
本文作者:...

共分享92篇相关文档

文档简介:

} // 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

× 游客快捷下载通道(下载后可以自由复制和排版)
单篇付费下载
限时特价:10 元/份 原价:20元
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信:fanwen365 QQ:370150219
Copyright © 云题海 All Rights Reserved. 苏ICP备16052595号-3 网站地图 客服QQ:370150219 邮箱:370150219@qq.com