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

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

ZRX开发手册

  • 62 次阅读
  • 3 次下载
  • 2025/5/4 8:17:40

?? ZcDbArc ?? ZcDbArcDim ?? ZcDbCircle ?? ZcDbEllipse ?? ZcDbLeader ?? ZcDbLine ?? ZcDbRay ?? ZcDbSpline ?? ZcDbXline ?? ZcDbPolyFaceMesh ?? ZcDbPolygonMesh ?? ZcDb2LineAngularDim ?? ZcDb3PointAngularDim ?? ZcDbAlignedDim ?? ZcDbDiametricDim ?? ZcDbOrdinateDim ?? ZcDbRadialDim ?? ZcDbRadialDimLarge ?? ZcDbRotatedDim ?? ZcDbBlockReference ?? ZcDbMInsertBlock ?? ZcDbHatch ?? ZcDbFace ?? ZcDbFcf ?? ZcDbMline ?? ZcDbPoint ?? ZcDbSolid ?? ZcDbTrace ?? ZcDb3dSolid ?? ZcDbRegion ?? ZcDbText ?? ZcDbMText

?? ZcDbAttributeDefinition ?? ZcDbBody ?? ZcDbWipeout ?? ZcDbViewport ?? ZcDbShape

自定义类

ZRX提供了一套自定义接口,供用户从ZcRxObject 类中派生出自己特定的新类,新的类可以是一个标准的 C++派生类,也可以是一个具有ZRX运行时类型识别机制的 ZcRxObject 扩展类。最常见的运行时自定义扩展类有:自定义对象和自定义实体。自定义对象通常是从ZcDbObject派生,自定义实体则从ZcDbEntity、ZcDbCurve等实体类中进行派生。两种方式构建出来的自定义类对象,如同其他的数据库常驻对象一样,具有同等的特性,能够存储在数据库里,被数据库统一管理。 为了便于理解,下面将举例讲述如何一步一步定制一个带运行时类型识别机制的自定义实体: 1) 定义新的自定义实体类

class SignEntity : public ZcDbEntity { public:

ZCRX_DECLARE_MEMBERS(SignEntity) ;

protected:

static Zdesk::UInt32 kCurrentVersionNumber ;

public: }

Zdesk::UInt32 SignEntity::kCurrentVersionNumber =1 ; ZCRX_DXF_DEFINE_MEMBERS ( )

SignEntity::SignEntity () : ZcDbEntity () {

m_pntCenter.set(0,0,0); m_dblRadius = 10.00; m_strTextFirst = \m_strTextSecnd = \SignEntity, ZcDbEntity,

ZcDb::kDHL_CURRENT, ZcDb::kMReleaseCurrent, ZcDbProxyEntity::kNoOperation, SIGNENTITY, \

\\

\SignEntity () ;

virtual ~SignEntity () ;

}

SignEntity::~SignEntity () { }

2) 声明和定义需要的虚重载函数

//- Dwg Filing protocol

virtual Zcad::ErrorStatus dwgOutFields (ZcDbDwgFiler *pFiler) const ; virtual Zcad::ErrorStatus dwgInFields (ZcDbDwgFiler *pFiler) ;

//- Graphics protocol

virtual Zdesk::Boolean worldDraw (ZcGiWorldDraw *mode) ; //----- ZcDbObject protocols //- Dwg Filing protocol

Zcad::ErrorStatus SignEntity::dwgOutFields (ZcDbDwgFiler *pFiler) const { }

Zcad::ErrorStatus SignEntity::dwgInFields (ZcDbDwgFiler *pFiler) {

assertWriteEnabled () ;

//----- Read parent class information first.

Zcad::ErrorStatus es =ZcDbEntity::dwgInFields (pFiler) ; if ( es != Zcad::eOk )

return (es) ;

return (pFiler->filerStatus ()) ; assertReadEnabled () ;

//----- Save parent class information first.

Zcad::ErrorStatus es =ZcDbEntity::dwgOutFields (pFiler) ; if ( es != Zcad::eOk )

return (es) ;

//----- Object version number needs to be saved first

if ( (es =pFiler->writeUInt32 (SignEntity::kCurrentVersionNumber)) != Zcad::eOk )

return (es) ;

//----- Output params //.....

//----- Object version number needs to be read first Zdesk::UInt32 version =0 ;

}

if ( (es =pFiler->readUInt32 (&version)) != Zcad::eOk )

return (es) ;

if ( version > SignEntity::kCurrentVersionNumber )

return (Zcad::eMakeMeProxy) ;

//- Uncomment the 2 following lines if your current object implementation cannot //- support previous version of that object. //if ( version < SignEntity::kCurrentVersionNumber ) // return (Zcad::eMakeMeProxy) ; //----- Read params //.....

return (pFiler->filerStatus ()) ;

Zdesk::Boolean SignEntity::worldDraw (ZcGiWorldDraw *mode) { }

assertReadEnabled () ; //…

return Zdesk::kTrue;

3) 注册和注销自定义类,用户可以采用以下任一方法进行自定义实体的注册和注销 a . 使用自动注册宏,在自定义自定类的.h文件的末尾处添加宏声明如下:

#ifdef SIGNENTITY_MODULE

ZCDB_REGISTER_OBJECT_ENTRY_AUTO(SignEntity) #endif

b . 在程序加载或卸载时注册

// 程序加载时 SignEntity::rxInit(); zcrxBuildClassHierarchy // 程序卸载时

deleteZcRxClass(SignEntity::desc()); 注意:

1) ZRX目前不支持自定义类的虚重载函数list()、saveAs()、getSubentPathsAtGsMarker()、

highlight()、unhighlight()、applyPartialUndo()。

2) 更多详细可以参考ZRXSDK\\Sample\\目录下的示例程序ZRX_Misc——SignEntityDb

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

共分享92篇相关文档

文档简介:

?? ZcDbArc ?? ZcDbArcDim ?? ZcDbCircle ?? ZcDbEllipse ?? ZcDbLeader ?? ZcDbLine ?? ZcDbRay ?? ZcDbSpline ?? ZcDbXline ?? ZcDbPolyFaceMesh ?? ZcDbPolygonMesh ?? ZcDb2LineAngularDim ?? ZcDb3PointAngularDim ?? ZcDbAlignedDim ?? ZcDbDiametricDim ?? ZcDbOrdinateDim ?? ZcDbRadialDim ?? ZcDbRadialDimLarge ?? ZcDbRotatedDim ?? ZcDbBlockReference ?? ZcDbMInsertBlock ?? ZcDbHatch ?? ZcDbFace ?? ZcDbFcf ?

× 游客快捷下载通道(下载后可以自由复制和排版)
单篇付费下载
限时特价: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