- MxDraw 云图
- 快速入门
- 前端 mxdraw 和 mxcad 库预览编辑图纸
- 后台使用 Node.js 调用梦想 API
- CAD 与 GIS 集成说明
- 梦想云图 Node.JS 服务
- iOS 开发
- 安卓开发
- 网页 CAD 开发
- 网页快速入门 aspaps.netphpjava
- 图形数据库
- 参数化绘图
- 交互绘图
- 选择集
- 扩展数据
- 自定义实体
- 自定义命令
- 光栅图处理
- 图面搜索
- 控件事件
- 打印控制
- 界面控制
- COM 开发
- 视频教程
- VB 快速入门
- Delphi 快速入门
- CSharp 快速入门
- java 快速入门
- QT 快速入门
- 易语言快速入门
- Powerbuilder 快速入门
- wpf 控件入门
- 图形数据库
- 参数化绘图
- 交互绘图
- 选择集
- 扩展数据
- 自定义命令
- 自定义实体
- 打印控制
- 控件事件
- 图面搜索
- 光栅图处理
- 界面控制
- C++ 开发
- C++ bulider 快速入门
- C++ 快速入门(VS2010)
- C++ 快速入门(com 接口)
- 图纸数据库
- 参数化绘图
- 交互绘图
- 选择集
- 扩展程序
- 扩展数据
- 自定义函数
- 自定义实体
- 光栅图处理
- 图面搜索
- 控件事件
- 界面控制
- 常见问题
- 试用技术服务申请
- 会员下载最新程序
- 备用下载
- 控件安装运行说明
- 控件最新更新
- 控件功能简介
- 控件图形数据库
- 控件界面控制
- 控件命令执行原理
- 控件系统变量说明
- 控件常见问题说明
- 修改对象属性
- 网页加载 CAD 图纸的两个方案
- MxDraw3D 控件
- 前端基础工程化知识
补充说明
1. 在自定义实体类函数中添加了读函数 (assertReadEnabled)和写函数 (assertWriteEnabled),函数说明:
断言对象当前状态一定被读方式打开,该函数多用于自定义实体的属性操作函数中。
void assertReadEnabled() const;
断言对象当前状态一定被写方式打开,该函数多用于自定义实体的属性操作函数中。
void assertWriteEnabled(Mdesk::Boolean autoUndo = true, Mdesk::Boolean recordModified = true, Mdesk::Boolean setSaveModifyed = true );
上述的函数主要为“退回”操作及“保存”的操作;如不加则会在上述操作中出现异常。
2. 在打碎虚函数(explode)中,我们进行了具体的添加实体的操作,在此处我们可以根据需要设置一些属性。
3. 在绘制函数中,我们调用打碎虚函数(explode),并对 绘图时使用的环境参数AcGiWorldDraw进行了如下设置: wd- >subEntityTraits().setLineWeight(pEnt->lineWeight())... 即为我们在explode中对实体设置的属性,在CAD控件中显示出来。
4. 在自定义实体类的头文件中,我们在类名下定义了如下声明:
//使用MCRX_DECLARE_MEMBERS宏定义类的类型信息函数,宏的第一个参数是类的类名 ACRX_DECLARE_MEMBERS(MyCustomEntity); 在源文件中进一步说明: ACRX_DXF_DEFINE_MEMBERS( MyCustomEntity, //自定义实体的类名 McDbEntity,//自定义实体的基类 AcDb::kDHL_CURRENT,//当前文件版本 AcDb::kMReleaseCurrent,//当前控件版本 AcDbProxyEntity::kAllAllowedBits,//代理实体处理标志 MyCustomEntity,//Dfx0组码对应值 MxDrawObj Test Custom Entity//类说明 );
此信息在实体信息中能够看到。
5. 在dwgInFields和dwgOutFields,我们进行了写档与归档的操作,使用了我们定义的宏:
#define MYCUSTOMENTITY_VERSION 1 //版本号
在自定义实体增加新的内容,如:新增一条线,我们则需要判断版本,根据获取到的版本号对是否使用线进行判断。
在读与写的操作中,我们使用了参数AcDbDwgFiler 进行具体的读写,此类可读写绝大多数用到的数据,但是读写必须保持同步,及此实例中在dwgOutFields先pFiler->writeInt(MYCUSTOMENTITY_VERSION),dwgOutFields需要先pFiler->readInt(&lVar),才能获取正确的数据。
6. 使用控件的移动函数move,或者点击自定义实体的夹点进行拖动,需要实现dwgInFields、dwgOutFields和moveGripPointsAt。
控件其他例程说明:
在控件安装目录下的samples\CustomEntity\ CustomEntity.sln
例程,演示了自定义实体现。在例程实现连接块CLinkBlock自定义实体,CLinkLine自定义实体。
CLinkBlock类显示通过块引用显示,绘图捕捉点通过块记录中的块属性定义文本来确定,当该实体被编辑后,会自动移动与该实体连接的连接线,实现连动效果。
CLinkLine 类实现一个线段实体功能,并带有长度标注功能。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论