反应器系统
大约 1 分钟
反应器系统
实体反应器用于建立实体之间的关联关系,当源实体变化时自动更新关联实体。
在线示例
| 示例 | 描述 | 链接 |
|---|---|---|
| 基础反应器 | 使用事件监听实现实体响应 | 在线演示{target="_blank"} |
| 关联标注反应器 | 标注自动跟随源实体更新 | 在线演示{target="_blank"} |
| 多类型监控反应器 | 同时监控多种实体类型的变化 | 在线演示{target="_blank"} |
| 约束反应器 | 实现几何约束关系 | 在线演示{target="_blank"} |
| 生命周期反应器 | 监控实体的完整生命周期 | 在线演示{target="_blank"} |
概述
反应器系统是 WebCAD 的高级功能,用于:
- 关联标注:标注自动跟随被测量实体更新
- 几何约束:保持实体之间的几何关系
- 参数化设计:一个实体变化触发相关实体联动
核心 API
基础反应器
const { EntityReactorManager } = vjcad;
// 注册反应器
EntityReactorManager.register({
sourceEntityId: sourceEntity.id,
targetEntityId: targetEntity.id,
onSourceModified: (source, target) => {
// 源实体修改时,更新目标实体
target.move(source.center.x - target.center.x,
source.center.y - target.center.y);
Engine.regen();
}
});关联标注
// 创建关联标注
const dimension = new LinearDimensionEnt(/* ... */);
dimension.associateWith(lineEntity); // 关联到直线实体
// 当直线移动时,标注自动更新使用场景
- 关联标注:测量标注随被测量对象移动
- 等距约束:保持多个实体之间的固定距离
- 平行约束:保持直线之间的平行关系
- 同心约束:保持圆/圆弧的同心关系