加载第二个模型时,第一个模型的属性会被删除

Posted

技术标签:

【中文标题】加载第二个模型时,第一个模型的属性会被删除【英文标题】:Properties of first model get erased when loading a secod model 【发布时间】:2021-12-18 17:07:20 【问题描述】:

我们在伪造查看器中有一个自定义操作,可将附加项加载到查看器中。我们在开始时加载一个工作正常的初始模式。我们正确显示的模型的属性。然后我们在后面加载带有 viewer.loadModel(...) 的第二个模态。我们设置了以下选项。 返回 放置变换:垫子, 全局偏移:全局偏移, sharedPropertyDbPath:bubbleNode.getViewableRootPath(), 应用缩放:显示单元, ; 第二个模型与查看器中的第一个模型一起正确显示。单击第二个模型中的零件时,将显示其属性。单击第一个模型中的零件时。属性为空。

没有关于 forge 的 api 指南关于设置某些属性的信息。这是完全可行还是目前这种情况是不可能的?

我已经尝试将 forge-viewer 从 7.53.0 更新到 7.55.0,没有进一步的进展。

【问题讨论】:

【参考方案1】:

在场景中聚合多个模型时,它们的属性仍然可以照常访问。我刚刚尝试在这个blog post 之后在一个简单的 Forge 应用程序(使用 Forge Viewer 版本 7.55)中加载两个模型,并且所有元素的属性都会显示:

这就是我加载模型的方式:

function loadModel(viewer, urn, xform, offset) 
    return new Promise(function (resolve, reject) 
        function onDocumentLoadSuccess(doc) 
            const viewable = doc.getRoot().getDefaultGeometry();
            const options = 
                preserveView: true,
                keepCurrentModels: true
            ;
            if (xform) 
                options.placementTransform = xform;
            
            if (offset) 
                options.globalOffset = offset;
            
            viewer.loadDocumentNode(doc, viewable, options)
                .then(resolve)
                .catch(reject);
        
        function onDocumentLoadFailure(code, message) 
            reject(message);
        
        Autodesk.Viewing.Document.load('urn:' + urn, onDocumentLoadSuccess, onDocumentLoadFailure);
    );

【讨论】:

所以这可能是特定于您的应用程序的东西。尝试按照上面博客文章中概述的步骤进行操作,如果您的属性仍然消失,请通过 forge (dot) help (at) autodesk (dot) com 与我们联系,包括尽可能多的有关您的特定应用程序和环境的详细信息,我们会对其进行调查。跨度>

以上是关于加载第二个模型时,第一个模型的属性会被删除的主要内容,如果未能解决你的问题,请参考以下文章

敲除加载和保存视图模型

如果第一个模型为空,如何填充第二个模型

如果第一个模型为空,如何填充第二个模型

Knockout学习笔记--创建数据模型和监控属性

在相同位置加载模型,使其重叠

模型执行后清除 TensorFlow GPU 内存