autodesk-forge - 缩放场景 Autodesk Forge
问题描述
我在 Forge 场景中有一个 BIM 建筑设计和一个自定义模型。我使用以下方法在 X 轴上移动了自定义模型 1 单元mesh.matrix.setPosition(new THREE.Vector3(1, 0, 0))
。我希望1个单位的位移等于1米。我的问题 :
- 如何在 Autodesk Forge 上执行此操作?
- 更详细地说,我如何确定 Forge 场景的规模(以米为单位)?
解决方案
尝试加载 Forge 模型并将applyScaling
属性设置为meters
,例如,如下所示:
async function loadModel(viewer, urn) {
return new Promise(function (resolve, reject) {
function onDocumentLoadSuccess(doc) {
const viewable = doc.getRoot().getDefaultGeometry();
const options = {
applyScaling: 'meters'
};
viewer.loadDocumentNode(doc, viewable, options)
.then(resolve)
.catch(reject);
}
function onDocumentLoadFailure(code) {
reject(`Could not load document (${code}).`);
}
Autodesk.Viewing.Document.load('urn:' + urn, onDocumentLoadSuccess, onDocumentLoadFailure);
});
}
这样,如果加载的模型以不同的单位定义,查看器将对其进行缩放,使其几何图形中的 1 个单位代表 1 米。
推荐阅读
- angular - 如何覆盖子类中的变量?(不是方法)
- java - 从数组中获取移动中位数
- typescript - 如何创建在打字稿中返回布尔值的 API?
- javascript - 通过单击特定标记的信息窗口上的按钮,我希望标记根据单击的按钮更改颜色
- chatbot - 如果机器人无法回答会发生什么?
- javascript - 如何从 Vue 商店中的 localStorage 读取和变异状态
- python-2.7 - 导入 pjsua:DLL 加载失败:%1 不是有效的 Win32 应用程序
- botframework - DialogContext.continueDialog() 不起作用
- javascript - 从 HTML div 启动 JavaScript 函数,其中函数名称是动态生成的 ASP.NET
- highcharts - 基于每天值的Highcharts堆积列