Autodesk Forge Transform Extension X/Y/Z轴显示开关功能实现咨询
解决方法
问题出在你直接操作的_transformControlTx是Forge封装后的TransformControl实例,它并没有直接暴露showX/showY/showZ这些Three.js原生TransformControls的属性。你需要访问封装内部的原生Three.js控件实例,才能正确切换轴的显示状态。
修改后的代码如下:
document.addEventListener('keydown', function (event) { // 先获取内部的Three.js TransformControls实例 const nativeTransformControl = _transformControlTx.control; if (event.key === "x") { console.log("X press"); nativeTransformControl.showX = !nativeTransformControl.showX; // 强制更新控件状态并触发视图重绘 nativeTransformControl.update(); viewer.impl.invalidate(true); } if (event.key === "y") { console.log("Y press"); nativeTransformControl.showY = !nativeTransformControl.showY; nativeTransformControl.update(); viewer.impl.invalidate(true); } if (event.key === "z") { console.log("Z press"); nativeTransformControl.showZ = !nativeTransformControl.showZ; nativeTransformControl.update(); viewer.impl.invalidate(true); } });
关键说明:
- Forge的
TransformControl通过control属性暴露了内部的Three.js原生TransformControls实例,这才是拥有showX/showY/showZ属性的对象。 - 修改属性后,调用
nativeTransformControl.update()确保控件自身状态同步,再调用viewer.impl.invalidate(true)触发Forge视图的重绘,这样轴的显示状态才会立即更新。
这样修改后,按下X/Y/Z键就能正常切换对应轴的显示与隐藏了。
内容的提问来源于stack exchange,提问作者hamdi
相关产品推荐
相关产品推荐

