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

将DWG模型坐标转换至Autodesk Forge Viewer坐标报错求助

解决Autodesk Forge Viewer v7中DWG坐标转Viewer坐标的问题

问题出在你使用的是旧版本Viewer的API,v7及以后的版本已经移除了WGS.LmvMatrix4这个类,直接使用Three.js原生的THREE.Matrix4即可。

正确的坐标转换代码如下:

// 获取视口到模型的变换矩阵(单视口模型可直接用getActiveViewportId)
const viewportId = viewer.model.getActiveViewportId();
const vpXform = viewer.model.getPageToModelTransform(viewportId).clone();
// 创建逆矩阵(直接使用Three.js的Matrix4类)
const invVpXform = new THREE.Matrix4().getInverse(vpXform, true);

// DWG模型中的原始坐标
const ptInCadX = ...;
const ptInCadY = ...;
// 转换为Viewer世界坐标系的点
const verticesInViewer = new THREE.Vector3(ptInCadX, ptInCadY, 0).applyMatrix4(invVpXform);

补充说明:

  • Forge Viewer v7及后续版本深度整合了Three.js,所有矩阵、向量操作均直接使用Three.js原生类,不再保留LmvMatrix4这类旧封装。
  • 若DWG模型包含多视口,可通过viewer.model.getViewports()获取所有视口信息,再选择目标视口的ID。
  • 转换后的点为Viewer世界坐标系坐标,若需转为屏幕坐标,可额外调用viewer.worldToClient(verticesInViewer)。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.15 08:10:31