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

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);
  } 
});

关键说明:

  1. Forge的TransformControl通过control属性暴露了内部的Three.js原生TransformControls实例,这才是拥有showX/showY/showZ属性的对象。
  2. 修改属性后,调用nativeTransformControl.update()确保控件自身状态同步,再调用viewer.impl.invalidate(true)触发Forge视图的重绘,这样轴的显示状态才会立即更新。

这样修改后,按下X/Y/Z键就能正常切换对应轴的显示与隐藏了。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.29 11:37:47