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

Forge Viewer中applyScaling对DWG模型不生效问题咨询

Forge Viewer 跨单位模型(RVM+DWG)缩放正确配置方案

核心问题原因

DWG模型的单位缩放逻辑和RVM不同:RVM支持通过applyScaling直接指定目标单位,但DWG模型的缩放依赖模型转换阶段的单位设定+加载时的全局缩放/偏移配置,单纯传applyScaling: 'mm'不会生效。

正确配置步骤

1. 确保DWG模型转换时的单位设置

调用Model Derivative API转换DWG文件时,需明确指定输出单位(比如匹配原始DWG的毫米单位),转换请求的Payload示例:

{
  "input": {
    "urn": "your-dwg-urn"
  },
  "output": {
    "formats": [
      {
        "type": "svf",
        "views": ["2d", "3d"],
        "advanced": {
          "unit": "mm"
        }
      }
    ]
  }
}

2. 加载模型时的差异化配置

  • RVM模型加载:直接在loadDocumentNode的配置项中指定applyScaling为目标单位(米):
// 加载原始单位为米的RVM模型,对齐Viewer内部单位
viewer.loadDocumentNode(doc, viewable, {
  applyScaling: 'm',
  globalOffset: { x: 0, y: 0, z: 0 }
});
  • DWG模型加载:无需传applyScaling,通过modelSpaceScale计算缩放比例,同时保持全局偏移和RVM一致:
// 假设DWG转换时已设为毫米单位,计算转米的缩放比例
const dwgUnit = 'mm';
const scaleFactor = Autodesk.Viewing.Private.getModelUnitFromString(dwgUnit) / Autodesk.Viewing.Private.getModelUnitFromString('m');

// 加载DWG并对齐RVM的单位和位置
viewer.loadDocumentNode(doc, dwgViewable, {
  globalOffset: { x: 0, y: 0, z: 0 }, // 和RVM的全局偏移保持一致
  modelSpaceScale: scaleFactor
});

3. 额外验证要点

  • 通过viewer.modelUnits()查看Viewer当前使用的单位,确保两个模型对齐到同一基准(比如米)
  • 若DWG转换时未指定单位,可通过doc.getRoot().getDefaultGeometry().units获取原始单位后再计算缩放比例
  • 若模型出现位置偏移,调整globalOffset参数确保两个模型原点对齐

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.16 04:55:08