在Forge Viewer中显示之前,如何加载模型并更改材料



我希望能够在forge查看器中显示模型,但在模型显示之前,我需要更改默认材质。目前我注册了Autodesk。查看。GEOMETRY_LOADED_EVENT,当我收到事件时,我会隐藏模型,更改材质,然后显示模型。除了默认模型在我可以隐藏它之前在查看器中显示一两秒钟之外,这是有效的。我如何防止这种情况发生?

初始化查看器之后,这里是加载文档的代码。如果我试图隐藏模型,如下面注释的代码所示,查看器将返回此错误。我必须等待几何加载事件,然后才能隐藏它。

wgs.js?v=v3.3:17876未捕获类型错误:无法读取未定义的属性"getGeometryList"位于RenderScene.getGeometryList(wgs.js?v=v3.3:17876(在Viewer3DImpl.OnRadComplete(viewer3D.js?v=3.3:32002(

这是我正在运行的代码:

Autodesk.Viewing.Document.load(
documentId, (doc) => { 
var geometryItems = Autodesk.Viewing.Document.getSubItemsWithProperties(doc.getRootItem(), { 'type': 'geometry' }, true);
if (geometryItems.length > 0) {
viewer.load(doc.getViewablePath(geometryItems[0]), null, (model) => {
// Document loaded
// Can't hide model here, viewer returns an error because geometry
// is not loaded
//viewer.hideModel(model.id);
resolve(model.id);
}); // show 1st view on this document...
}
},
function (errorMsg) { // onErrorCallback
console.log('Load Document returned error message: ' + errorMsg);
}
)

我会简单地显示一个预先录制的jpg图像预览来代替伪造画布。

即。1.隐藏样式为"display:none"的锻造画布2.显示预览jpg代替锻造画布3.等待TEXTURES_LOADED_EVENT事件,如下所示。。。

https://github.com/wallabyway/forge-pdf-report/blob/6babb6d7332b6cdb983f57e7d140ff59a5136705/docs/index.html#L44

  1. 使用样式"display:block"隐藏锻造画布
  2. 隐藏预览jpg

最新更新