ObjectARX中反应器的使用

2023-07-24 18:12:15 浏览数 (1)

ObjectARX中反应器的使用 反应器机制是观察者模式(设计模式)的一种实现,在该机制下,有事件通知者和事件接收者,负责接收事件的称为反应器 反应器列表:在反应器可以从通知者处接收消息之前,必须显式地将反应器添加到通知者的反应器列表中。 反应器部分类继承关系 种类:

编辑反应器:AcEditorReactor

实体反应器:AcDbEntityReactor

对象反应器:AcDbObjectReactor

图形数据库反应器:AcDbDatabaseReactor

文档管理反应器:AcApDocManagerReactor

根据反应器的基本性质,反应器被分为临时反应器和永久反应器。

临时反应器本身不是数据库对象,由开发者负责临时反应器的注册和卸载,用来监控数据库事件、用户操作以及其他的程序运行时的系统事件。

永久反应器是一个数据库的对象,由开发者创建并由AutoCAD负责删除,永久反应器可以接收及发送消息,可以被保存到DWG和DXF文件中,当图纸被加载的时候会重建永久反应器。用来实现对象之间的关联反应。

下面是一个永久反应器的例子:联动删除

自定义实体基类CthEntity继承ObjectArx里底层基类AcDbEntity。

重写自定义基类CthEntity的subErase()函数。

在subErase()函数里添加要联动删除的实体,一般以持久反应器实现联动。

删除实体触发Erase命令的subErase()函数

代码语言:javascript复制
//zhaoanan subErase命令

0 人点赞