Autodesk Forge Viewer:覆盖模型的捕捉功能在加载顺序不同的情况下失败
创始人
2024-09-22 22:02:11
0

在使用Autodesk Forge Viewer时,有时会遇到覆盖模型的捕捉功能在加载顺序不同的情况下失败的问题。下面是一种解决该问题的方法,包含代码示例。

要解决此问题,可以使用Viewer的GEOMETRY_LOADED_EVENT事件来确保模型加载完成后再启用捕捉功能。在此事件中,您可以遍历模型中的所有物体并添加所需的捕捉功能。

下面是一个示例代码:

function enableSnapToModel(viewer) {
  viewer.addEventListener(Autodesk.Viewing.GEOMETRY_LOADED_EVENT, function() {
    var model = viewer.model;

    // 遍历模型中的所有物体
    model.getObjectTree(function(objTree) {
      var fragIds = objTree.getRootId();
      var fragList = model.getFragmentList();

      // 添加捕捉功能
      fragIds.forEach(function(fragId) {
        var fragProxy = viewer.impl.getFragmentProxy(model, fragId);
        fragProxy.getAnimTransform();

        // 添加您的捕捉功能代码
        // 例如:fragProxy.dbId = yourDbId;

        fragList.updateAnimTransform(fragId);
      });
    });
  });
}

// 初始化Viewer
var viewer;
var options = {
  env: 'AutodeskProduction',
  api: 'derivativeV2',
  getAccessToken: function(onTokenReady) {
    // 调用您的获取访问令牌的方法
    // 并将令牌传递给onTokenReady回调函数
    var accessToken = 'YOUR_ACCESS_TOKEN';
    var expireTimeSeconds = 3600;
    onTokenReady(accessToken, expireTimeSeconds);
  }
};

Autodesk.Viewing.Initializer(options, function() {
  var container = document.getElementById('viewer');
  viewer = new Autodesk.Viewing.Private.GuiViewer3D(container);
  viewer.start();

  // 加载模型
  var urn = 'YOUR_MODEL_URN';
  Autodesk.Viewing.Document.load('urn:' + urn, function(document) {
    var rootItem = document.getRootItem();
    var geometryItems = Autodesk.Viewing.Document.getSubItemsWithProperties(rootItem, {
      'type': 'geometry',
      'role': '3d'
    }, true);

    viewer.loadDocumentNode(document, geometryItems[0]).then(function(result) {
      // 模型加载完成后启用捕捉功能
      enableSnapToModel(viewer);
    });
  });
});

在上面的示例中,enableSnapToModel函数用于添加捕捉功能。在GEOMETRY_LOADED_EVENT事件中,我们遍历模型中的所有物体,并为每个物体添加所需的捕捉功能。

注意:在代码示例中,需要将YOUR_ACCESS_TOKEN替换为您的访问令牌,YOUR_MODEL_URN替换为您的模型URN。

希望这个解决方法能够帮助您解决Autodesk Forge Viewer中覆盖模型的捕捉功能在加载顺序不同的情况下失败的问题。

相关内容

热门资讯

6分钟实锤!智星德州菠萝有挂吗... 6分钟实锤!智星德州菠萝有挂吗(德扑ai)好像是真的有挂(详细辅助技巧教程);1、打开软件启动之后找...
第七分钟实锤!德扑之星有猫腻(... 第七分钟实锤!德扑之星有猫腻(德扑ai)好像有挂(详细辅助wpk教程);德扑之星有猫腻辅助器中分为三...
六分钟实锤!德扑之星有猫腻(德... 六分钟实锤!德扑之星有猫腻(德州ai)切实真的是有挂(详细辅助技巧教程);1、德扑之星有猫腻ai辅助...
第七分钟实锤!德州ai机器人(... 第七分钟实锤!德州ai机器人(来玩德州app)果然真的是有挂(详细辅助2025新版);1、下载好德州...
第七分钟实锤!德州ai辅助软件... 第七分钟实锤!德州ai辅助软件(nzt德州)一贯有挂(详细辅助2025新版总结)1、每一步都需要思考...
3分钟实锤!德扑之星作弊(nz... 3分钟实锤!德扑之星作弊(nzt德州)都是有挂(详细辅助曝光教程)1、这是跨平台的德扑之星作弊黑科技...
七分钟实锤!德扑之星ai代打(... 七分钟实锤!德扑之星ai代打(nzt德州)其实有挂(详细辅助存在挂教程);1、下载好德扑之星ai代打...
两分钟实锤!德扑之星ai代打(... 两分钟实锤!德扑之星ai代打(德扑之星)果然真的有挂(详细辅助2025教程)1、构建自己的德扑之星a...
第四分钟实锤!德扑ai助手(线... 第四分钟实锤!德扑ai助手(线上德州)真是真的是有挂(详细辅助德州教程)小薇(透视辅助)致您一封信;...
第4分钟实锤!德州之星外挂(w... 第4分钟实锤!德州之星外挂(wpk德州)真是是有挂(详细辅助大神讲解)1、打开软件启动之后找到中间准...