是否有可用于查看器版本 7 的 angular 8 自动锻造的示例。 *

Posted

技术标签:

【中文标题】是否有可用于查看器版本 7 的 angular 8 自动锻造的示例。 *【英文标题】:Is there examples available for auto forge using angular 8 for viewer version7.* 【发布时间】:2020-06-09 04:56:42 【问题描述】:

我无法在查看器中加载基于 urn 的文档。 发布工作 svf 时有什么问题吗,这是我的

 
    "input": 
        "urn": "Urn",
        "compressedUrn": false
    ,
    "output": 
        "destination": 
            "region": "us"
        ,
        "formats": [
        
            "type": "svf",
            "views": ["3d", "2d"]
        ]
    

我尝试以多种方式实现查看器,但总是以这个错误告终。我是否以正确的方式加载文档?

无法读取未定义的属性“查看器”

export class ForgeAutodeskComponent 
  private viewer: Autodesk.Viewing.Viewer3D;
  async ngOnInit() 
    this.initViewer();

  
  private async initViewer() 
    var options = 
      env: 'AutodeskProduction',
      api: 'derivativeV2',
      getAccessToken: this.getAccessToken
    ;
    Autodesk.Viewing.Initializer(options, () => 
      let htmlDiv = document.getElementById('forgeViewer')
      let config3d = 

      
      this.viewer = new Autodesk.Viewing.GuiViewer3D(htmlDiv, config3d);
      console.log(this.viewer);
      var startedCode = this.viewer.start();
      if (startedCode > 0) 
        console.error('Failed to create a Viewer: WebGL not supported.');
        return;
      
      let documentId = 'urn:dXJuOmFkc2sub2JqZWN0czpvcy5vYmplY3Q6c2Fuei0yNC0wNS9kc3AtMS5ydnWQF0P=';
      Autodesk.Viewing.Document.load(documentId, onDocumentLoadSuccess, onDocumentLoadFailure);

      function onDocumentLoadSuccess(viewerDocument) 
        var defaultModel = viewerDocument.getRoot().getDefaultGeometry();
        console.log(this.viewer);
        this.viewer.loadDocumentNode(viewerDocument, defaultModel);
      

      function onDocumentLoadFailure() 
        
      

    );
  

  private getAccessToken(onSuccess: any) 
    const access_token = ; // Access Token
    const expires_in = 86399;
    onSuccess(access_token, expires_in);
  

我需要查看器,因为我将对其执行一些属性更改。 - 我已将脚本文件放在 index.html 中 - 对于startedCode,我得到0 - 尝试使用未填充的 Base64 和 Base64

【问题讨论】:

【参考方案1】:

您可以先查看 Autodesk github 上的一些 projects。那里有一个打字稿示例。您也可以按照learnforge 教程来帮助您入门。如果您对 Angular 和 typescript 有一定的了解,您应该可以调整教程的纯 javascript 以适应 Angular 组件。

这里有一些代码可以帮助您入门。

组件.ts

export class GenericViewerComponent implements OnInit 
  private viewer: Autodesk.Viewing.Viewer3D;
  async ngOnInit() 
    this.initViewer();

  
  private async initViewer() 

    var options = 
      env: 'AutodeskProduction',
      api: 'derivativeV2', // for models uploaded to EMEA change this option to 'derivativeV2_EU'
      getAccessToken: null // get your 2 legged access token here instead of null (folow the turial)
    ;

    Autodesk.Viewing.Initializer(options, () => 

      let htmlDiv = document.getElementById('forgeViewer')
      let config3d = 

      

      this.viewer = new Autodesk.Viewing.GuiViewer3D(htmlDiv, config3d);

      var startedCode = this.viewer.start();
      if (startedCode > 0) 
        console.error('Failed to create a Viewer: WebGL not supported.');
        return;
      
      console.log('Initialization complete, loading a model next...');

    );
  


组件.html

<div id="forgeViewer"></div>

还要确保包括

<link rel="stylesheet" href="https://developer.api.autodesk.com/modelderivative/v2/viewers/7.*/style.min.css" type="text/css">
<script src="https://developer.api.autodesk.com/modelderivative/v2/viewers/7.*/viewer3D.min.js"></script>

在您的 index.html 中

祝你好运!

【讨论】:

谢谢。我已经更新了我的问题,你能指出我做错了什么吗? 似乎是一个范围界定问题。它可能发生在 OnDocumentLoadSucces 它在 initviewer 内,并且 () 应该在它之外。尝试使用Autodesk.Viewing.Document.load(documentId, (x) =&gt; onDocumentLoadSuccess(x), onDocumentLoadFailure); 获得正确的范围【参考方案2】:

我们确实有一些示例,您可以在我的其他答案中找到它们:How to integrate model derivative api (node.js) with angular 4?

【讨论】:

以上是关于是否有可用于查看器版本 7 的 angular 8 自动锻造的示例。 *的主要内容,如果未能解决你的问题,请参考以下文章

java 8+中是否有可用于替代番石榴前置条件的良好现场验证?

是否有可移植的方式从 C 预处理器打印消息?

Angular 8:Webpack - 三个.js 加载两次

我正在将 Angular 版本从 7 更新到 8。但出现对等依赖错误 [关闭]

是否有可用于跟踪用户活动的框架?

jquery中(function($))()其中$到底是啥意思,是否可有可无