首页 > 解决方案 > Forge Viewer - 无法正确查看多个不同的模型

问题描述

我无法在查看器中加载不同的模型。我怀疑问题出在模型中混合了不同的单位(米和毫米)。

所以我有3个模型:

为了加载具有正确坐标的模型,我使用以下选项:

国际金融公司 1 和 2:

{
    globalOffset: {x: 1000000, y: 100000, z: 7000},
    sharedPropertyDbPath: doc.getPropertyDbPath(),
}

对象:

let mat = new THREE.Matrix4();
mat.makeTranslation(1000000, 100000,7000);

{
    placementTransform: mat,
    sharedPropertyDbPath: doc.getPropertyDbPath(),
}

这里的基本原理是 IFC 模型远离原点,而 Obj 模型位于原点。似乎有必要使用globalOffsetIFC 以使它们在查看器中对齐,使用placementTransform将 Obj 靠近 IFC 模型是必要的。

我在这里遇到以下问题:

编辑 1

看起来像让 Obj 立方体与其他模型一样大小可以解决缩放问题。此外,如果先加载 IFC 文件,则方向导航是正确的。只有在首先加载 OBJ 文件时,我们才会遇到“y-up 方向”问题

编辑 2

方向导航问题可以用viewer.navigation.setWorldUpVector(new THREE.Vector3(0,0,1), false);. 是否也可以全局控制这样的行为,而不是总是让不同的模型设置行为?

标签: autodesk-forge

解决方案


我认为最后加载的模型将始终优先于任何先前设置的世界向上向量。因此,如果您想全局控制世界,则需要viewer.navigation.setWorldUpVector在加载所有模型后手动使用该方法。


推荐阅读