【问题标题】:Autodesk Forge View CubeAutodesk Forge View Cube
【发布时间】:2020-06-13 21:44:24
【问题描述】:

我有一个 forge 查看器的标记扩展,我想用标记 svg 中的坐标更改模型位置。我已经得到了坐标并试图改变,但没有。

我用这段代码得到了坐标

    let svg = document.querySelector('svg');
    let box = svg.getAttribute('viewBox').split(' ');

并试图用这个改变位置

viewer.autocam.camera.position.setX(parseFloat(box[0]));
viewer.autocam.camera.position.setY(parseFloat(box[1]));
viewer.autocam.camera.position.setZ(parseFloat(box[2]));

【问题讨论】:

    标签: autodesk-forge forge


    【解决方案1】:

    您的代码正在更改相机的位置...您是要更改模型的位置还是相机的位置? ...

    要更改相机的位置,请尝试navigation.setView

    const position = new THREE.vector3(x,y,z)
    const target = NOP_VIEWER.navigation.getTarget()
    viewer.nativation.setView(position, target)
    

    编辑

    要翻译(移动)整个模型,请尝试翻译所有片段:

    const total = NOP_VIEWER.model.getInstanceTree().fragList.length //fragment is 0 indexed and increments by 1 so basically iterate from 0 to length -1 
    
    //...
    for (int i=0,i<total,i++){
    const fragProxy = NOP_VIEWER.impl.getFragmentProxy(NOP_VIEWER.model,i);
    
                    const position = new THREE.Vector3(
                        target.x - fragProxy.offset.x,
                        target.y - fragProxy.offset.y,
                        target.z - fragProxy.offset.z);
    
                    fragProxy.position = position;
    
                    fragProxy.updateAnimTransform();
    
    }
                viewer.impl.sceneUpdated(true);
    

    查看此示例here 了解更多详情。

    【讨论】:

    • 不,我尝试更改模型的位置,但是我从标记 svg 获得的位置。我该怎么做?
    • 非常感谢!!
    猜你喜欢
    • 2018-12-06
    • 2021-07-03
    • 2021-09-25
    • 2021-05-27
    • 2019-02-19
    • 2020-12-23
    • 2020-05-06
    • 2021-11-12
    • 2021-11-19
    相关资源
    最近更新 更多