请求调整Viewer中Section Box/Plane Gizmo的渲染尺寸适配策略
控制Viewer中Section Box/Plane Gizmo渲染尺寸的方法
临时解决办法
目前官方Viewer没有内置的简便设置直接调整Gizmo尺寸,但可以通过自定义代码实现动态适配:
- 监听相机变化事件,根据相机与模型中心的距离动态调整Gizmo缩放比例:
viewer.addEventListener(Autodesk.Viewing.CAMERA_CHANGE_EVENT, () => { const sectionTool = viewer.toolController.getTool('section'); if (sectionTool?.active) { const camPos = viewer.navigation.getCamera().position; const modelCenter = viewer.model.getBoundingBox().center(); const distance = camPos.distanceTo(modelCenter); // 可根据模型狭长程度调整缩放系数 sectionTool.setGizmoScale(distance / 80); } }); - 该方案需要根据不同场景调整系数,属于临时适配手段。
优化方案建议
你提出的两个优化方向精准命中了狭长模型场景的痛点:
- 新增尺寸逻辑切换设置:允许用户选择Gizmo尺寸基于全局模型范围还是屏幕/Viewer视口,能直接解决局部操作时Gizmo不可见的问题,建议通过Autodesk Forge官方反馈渠道提交该功能需求。
- 智能尺寸计算算法:针对道路、管线这类狭长模型,改用当前视图的局部Bounding Box而非全局范围计算Gizmo尺寸,或者结合相机视口动态调整,这会大幅提升这类场景下的截面操作体验。
(示意图说明:在狭长模型的局部放大视图中,Section Gizmo因适配全局模型范围而完全不可见,导致无法在当前缩放级别调整截面)
内容的提问来源于stack exchange,提问作者torjuss
相关产品推荐
相关产品推荐

