【问题标题】:How to add a multiple models in the viewer?如何在查看器中添加多个模型?
【发布时间】:2019-07-02 08:48:58
【问题描述】:

我正在创建一个带有 forge-viewer 的站点,并希望在一个窗口中查看多个加载的模型。如何启用在一个地方加载和查看多个模型的功能?

这是一个新网站。我已经尝试了互联网上所有可用的方法和建议,但没有一个能帮助我解决我的问题。

我的代码与此来源https://github.com/Autodesk-Forge/learn.forge.viewmodels/tree/nodejs的代码完全一致

我希望我终于可以在一个窗口中添加加载和查看多个模型的功能,但到目前为止我还没有做到。

【问题讨论】:

    标签: javascript autodesk-viewer


    【解决方案1】:

    阅读 this 和此 series of blogs,了解有关使用 Viewer 进行模型聚合的相当彻底的演练。

    简而言之,您需要使用 viewer.start 为第一个模型加载不同的模型,然后使用 viewer.loadModel 为其他模型加载:

    this.viewer.start(svfUrl, loadOptions, onLoadModelSuccess, onLoadModelError);
    this.viewer.loadModel(svfUrl, loadOptions, onLoadModelSuccess, onLoadModelError); 
    

    此方法见文档here。

    【讨论】:

    • 感谢您的回答,但我能问您点别的吗?我的查看器与此示例完全相同。 github.com/Autodesk-Forge/learn.forge.viewmodels/tree/nodejs你能告诉我应该在哪里添加这段代码吗?还有第二种选择,我尝试在提供文档的代码上实施您的建议,但我仍然失败。 forge.autodesk.com/en/docs/viewer/v6/tutorials/…
    • 您可以保持节点后端不变,并按照此示例替换前端,这更简单:forge.autodesk.com/blog/…
    • Bryan Huang,非常感谢您的帮助,我部分设法解决了问题,但仍然没有达到预期的效果。我设法使用您最后给我的文章的代码加载了几个模型,但这个解决方案只能是临时的。目前我可以上传上一篇文章中说的几个模型,但这是一个机械工作,我需要自动化它。我想做什么?我希望在将文档加载到一束时,它们被加载到一个区域,而不是不同的区域,但到目前为止我还没有能够实现这一点。非常感谢。
    • 查看此示例here,它允许用户上传模型进行翻译并获取相关位并将它们集成到您的工作流程中以自动化模型上传和翻译。
    • 不幸的是,我的代码几乎完全对应于本文中的代码(在顶部我给出了它的链接)。我有一个问题,我认为这样我就能解决我的问题。我需要获取所有加载的对象/文件的数组。我读了这个决定stackoverflow.com/questions/52267698/…,但我不知道如何将数据传输到数组。如果您能帮助我,我将不胜感激。
    【解决方案2】:

    要在查看器版本 7 中加载多个模型,请确保添加查看器选项 keepCurrentModels: true,如下所示:

    function loadModels(urns) {
    
        const viewerOptions = {
            env: 'AutodeskProduction',
            accessToken: token.access_token,
            extensions:[ ]
        };
    
        Autodesk.Viewing.Initializer(viewerOptions, () => {
    
            const div = document.getElementById('forgeViewer');
            viewer = new Autodesk.Viewing.Private.GuiViewer3D(div);
            viewer.start();
            urns.map((m)=>{
                Autodesk.Viewing.Document.load(`urn:${m.urn}`, (doc) => {
                    var viewables = doc.getRoot().getDefaultGeometry();
                    viewer.loadDocumentNode(doc, viewables,{
                        keepCurrentModels: true,
                    })
                    .then( onLoadFinished );
                });
    
            })
        });
    
        function onLoadFinished(doc) {
            console.log('loaded');
        }
    }
    

    https://forge.autodesk.com/blog/loading-multiple-models-forge-viewer-v7 https://github.com/wallabyway/federatedmodels-v7

    【讨论】:

      猜你喜欢
      • 2021-11-07
      • 2021-11-25
      • 2019-02-15
      • 2021-11-26
      • 1970-01-01
      • 2020-02-17
      • 2021-05-14
      • 2015-05-11
      • 2019-11-20
      相关资源
      最近更新 更多