ZRX开发手册 联系客服

发布时间 : 星期六 文章ZRX开发手册更新完毕开始阅读48462729915f804d2b16c183

ZcDbDatabaseReactor::objectOpenedForModify d 对象反应器

ZcDbObjectReactor::erased ZcDbObjectReactor::modified ZcDbObjectReactor::openedForModify 2. 增加事务管理功能接口 a 长事务管理类

ZcApLongTransactionManager::checkIn ZcApLongTransactionManager::checkOut ZcDbLongTransaction::addToWorkSet ZcDbLongTransaction::newWorkSetIterator ZcDbLongTransaction::removeFromWorkSet ZcDbLongTransaction::originBlock ZcDbLongTransaction::originObject ZcDbLongTransaction::workSetHas b长事务工作集遍历器

ZcDbLongTransWorkSetIterator::start ZcDbLongTransWorkSetIterator::step

ZcDbLongTransWorkSetIterator::curObjectIsErased ZcDbLongTransWorkSetIterator::curObjectIsPrimary ZcDbLongTransWorkSetIterator::curObjectIsRemoved ZcDbLongTransWorkSetIterator::done ZcDbLongTransWorkSetIterator::objected c 事务管理类

ZcDbTransactionManager::getAllObjects ZcDbTransactionManager::getObject ZcDbTransactionManager::abortTransaction

ZcDbTransactionManager::addNewlyCreatedDBRObject ZcDbTransactionManager:: startTransaction d 事务类

ZcTransaction::getAllObjects ZcTransaction::getObject

3. 增加基本UI界面类 CZdUiBaseDialog CZdUiDialog CZcUiDialog

上面的UI类接口,作为ZRX的几个很基本的 UI对话框类, 实现了BeginEditorComand、CancelEditorCommand、 CompleteEditorCommand等功能函数。 在用户与CAD交互过程中,

将操作焦点从对话框切换到命令行,提供了功能机制。

4. 增加全局函数 zcedSetCurrentVport zcedGetCurViewportObjectId modelToPixel pixelToModel ucsNormalVector ucsXDir ucsYDir

zdsw_executeUICommand

5. 部分接口类的完善

a 针对ZcDbDababase类部分成员函数功能进行加强和完善 b 增加对ZcDbBody、ZcDbShape图形实体类的支持

c 增加对ZcApDocManager::sendStringToExecuted 接口功能的基本支持,(注意:该接口函

数目前只对第二参数const char* pszExecute有效) d 增强及完善ZcDb2dPolyline图形实体类 e 完善ZcDbObject对象基类

6. 兼容处理acrxGetApiVersion函数导出

在先前的版本里,将ARX程序移植到ZRX的工程中,需要手动将工程里 .def 文件里的acrxGetApiVersion导出函数进行注释或者删除掉,否则VC编译系统会提示“error LNK2001: unresolved external symbol acrxGetApiVersion…”链接错误。该版本针对这个问题做了容错处理,用户在移植的工程中不需要再去修改.def文件了。

>>>更多详细说明请参考《ZRX开发指南》。

ZZR概 述述 RXX 概ZRX简 介

ZRX——ZWCAD Runtime eXtension, 是ZWCAD提供一套面向对象的C++应用程序接口。用户使用这套接口可以开发各种ZWCAD功能应用的程序,包括几何图形的创建、创建自定义类、多文档应用、事件反应通告、对DWG数据库进行操作等。 其次, ZRX在ZWCAD的公开的接口上实现了ARX对应的类和函数,在代码风格和结构上,ZRX完全兼容ARX代码,原ARX程序在几乎不改任何代码的前提下,通过重新编译便可直接移到在ZWCAD平台上进行运行。这样大大提高开发用户的从ARX程序向ZRX程序的移植效率,整个代码移植成本几乎为“0”。 原ARX源代码在ZRX上编译出来的DLL加载到ZWCAD, 运行时会把ARX的接口调用转接到ZRX.dll动态连接库, 然后ZRX.dll动态库把接口调用转接到ZWCAD。 最终,ZWCAD就可以把接口调用转接到用户的ARX代码中,以达到执行相关的功能命令。

开发环境要求

ZRXSDK for ZWCAD 2010 (以下简称ZRX),强烈建议用户采用Microsoft Visual C++ 2008 开发平台 和 ZWCAD 2010 平台。

功能特性列举

1.常用基本功能,如DWG数据库读写访问,注册命令,获取用户输入点或者字符串等; 2.数据库图形实体, 如ZcDbLine、ZcDbCircle、ZcDbArc等; 3.扩展数据和扩展字典, XData & XDictionary;

4.自定义实体和对象,从ZcDbObject、ZcDbEntity或其它类派生;

5.文档管理功能,提供文档管理器ZcApDocManager ,文档类ZcApDocument等接口; 6.反应器功能,提供数据库反应器,文档反应器,编辑器反应器(包括 命令反应器,鼠标

右键消息等),对象反应器,永久反应器; 7.拖动Jigs,ZcEdJig;

8.协议扩展(Protocol Extensions);

9.几个基本UI界面类的支持,CZcUiDialog、CZdUiDailog、CZdUiBaseDialog。

ZRX编码特征

ZRX API 主要的特征就是可以同时兼容两套形式的程序编码,既可以兼容自己本身的ZRX程序编码又可以兼容ARX程序编码。例如有下面的两种形式编码,在ZWCAD平台上都是可以正常运行的:

ZRX 程序编码:

void drawSimpleLine() { }

ZcGePoint3d pntStart; ZcGePoint3d pntEnd;

if (RTNORM != zcedGetPoint( NULL, \

return;

if (RTNORM != zcedGetPoint( NULL, \

return;

ZcDbLine* pLine = new ZcDbLine(pntStart, pntEnd); ZcDbObjectId eId;

addEntityToDb(eId, pLine); pLine->close();

ARX 程序编码: void drawSimpleLine() { }

AcGePoint3d pntStart; AcGePoint3d pntEnd;

if (RTNORM != acedGetPoint( NULL, \

return;

if (RTNORM != acedGetPoint( NULL, \

return;

AcDbLine* pLine = new AcDbLine(pntStart, pntEnd); AcDbObjectId eId;

addEntityToDb(eId, pLine); pLine->close();