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

关于APS Forge Viewer中2D图纸与3D模型坐标转换的技术咨询

Forge Viewer 2D与3D坐标转换问题解答

问题1:坐标转换的原点基准

Autodesk.AEC.AecModelData.get2DTo3DMatrix和get3DTo2DMatrix的坐标基准是Revit的Internal Origin(内部原点),不管是主模型还是配置了共享坐标的链接模型,转换矩阵均基于各自模型的内部原点计算。

问题2:获取Survey Point与基准原点的偏移量

可以通过两种方式获取偏移值:

  • 解析模型的AECModelData.json:其中origin字段对应Internal Origin坐标,surveyPoint字段对应Survey Point坐标,两者的差值即为所需偏移量。
  • 通过Viewer API获取:模型加载完成后,调用model.getAecModelData()获取AEC数据对象,直接访问aecModelData.surveyPoint和aecModelData.origin计算偏移。

得到偏移量后,只需将转换后的坐标加上该偏移,即可将基准从Internal Origin切换到Survey Point。

问题3:减去globalOffset后的坐标基准

当3D模型加载到GuiViewer3D并减去globalOffset后,坐标基准为:

  • 若模型配置了Shared Coordinates(共享坐标),则基准是共享坐标的原点;
  • 若未配置共享坐标,则基准仍为模型的Internal Origin。

globalOffset是Viewer为解决大坐标精度问题自动计算的偏移值,其计算基于模型的Internal Origin或共享坐标原点,减去该值后,模型坐标会对齐到共享坐标系统(若存在)或回到Internal Origin的相对坐标体系。

替代转换函数

除了Autodesk.AEC.AecModelData.get2DTo3DMatrix,还可以使用以下方法实现2D与3D坐标转换:

  • 手动构建转换矩阵:利用Autodesk.Viewing.Matrix类,结合2D图纸的视图参数(如旋转、缩放、原点偏移)和3D模型的坐标信息,手动创建自定义转换矩阵,适合需要精细控制转换逻辑的场景。
  • 屏幕与世界坐标转换API:使用model.getScreenToWorldMatrix()和model.getWorldToScreenMatrix(),结合2D图纸的视口信息,间接实现2D到3D的坐标映射,不过需要额外处理图纸的视图配置参数。

内容的提问来源于stack exchange,提问作者y.sayama

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.13 22:46:03