You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何动态修改SceneBuilder添加形状的宽高比及检测其包围构件?

问题解答

1. 动态修改SceneBuilder添加形状的宽高比

SceneBuilder默认添加的形状(如矩形、多边形等)不自带拖拽四角调整宽高比的交互,但可以通过以下方式实现:

  • 监听Viewer的鼠标事件(mousedown、mousemove、mouseup),跟踪形状顶点的拖拽操作
  • 通过sceneBuilder.getAddedShapes()获取目标形状实例,在拖拽过程中实时更新其顶点坐标或尺寸参数
  • 调用sceneBuilder.updateShape()方法刷新形状的渲染效果

2. 检测形状包围的构件

要识别被SceneBuilder形状包围的构件,可按以下步骤操作:

  • 获取目标形状的边界盒数据,转换为Viewer的3D空间坐标
  • 使用Viewer的viewer.utilities.intersectBoxWithModel()方法,筛选出与形状边界盒相交的构件
  • 若需要更精确的区域检测,可通过viewer.impl.modelQueue().getModel(modelId).getData().instanceTree遍历所有构件,逐个判断构件边界盒是否处于目标形状的区域内

关于Edit2d扩展:
Edit2d扩展主要服务于2D图纸的标注与编辑,其创建的形状与3D模型的SceneBuilder形状分属不同管理体系,无法直接将Edit2d的拖拽逻辑复用在SceneBuilder的3D形状上。如果你的场景基于3D模型,建议优先结合SceneBuilder API与Viewer交互能力实现需求。

内容的提问来源于stack exchange,提问作者Takahiro Matsumoto

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.05 14:34:59