多个模型坐标不匹配伪造查看器的问题

问题描述

我有两个应该完美对齐的模型,但是它与第一个模型具有相同的全局偏移量,并将其应用于第二个模型,这会产生对齐问题。

基本上我希望我的两个模型都放置在自己的坐标上。

即使我提供了globalOffset:{x:0,y:0,z:0},其破坏也是如此。

我的代码:

 Autodesk.Viewing.Initializer(options,() => {
          
            const div = document.getElementById('forgeViewer');
            viewer = new Autodesk.Viewing.Private.GuiViewer3D(div);
            viewer.start();
            urn.map((m)=>{
                Autodesk.Viewing.Document.load(`urn:${m.urn}`,(doc) => {
                    var viewables = doc.getRoot().getDefaultGeometry();
                
                    var modelOption = {
                                keepCurrentModels: true,applyScaling: 'm'
                    };
                  
                    onDocumentLoadSuccess(doc,modelOption);
                });

            })
            
        });
      
      
    }
    

    function onDocumentLoadSuccess(doc,opt) {
      var viewables = doc.getRoot().getDefaultGeometry();
      viewer.loadDocumentNode(doc,viewables,opt).then(i => {
          viewer.addEventListener(Autodesk.Viewing.OBJECT_TREE_CREATED_EVENT,function () {
              
               // extra code 
                
            });
      });
    }

解决方法

您可以在此处检查我的示例(MultipleModelUtil),然后转到line#147 globalOffset 应用于第二个模型。或在此处检查AggrefatedView:https://forge.autodesk.com/blog/loading-multiple-models-forge-viewer-v7

注意。请不要将globalOffset设置为{x:0,y:0,z:},您会遇到Z-fighting问题(例如,模型轻弹...)

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...