如何在浏览器上显示/查看或读取.dwg文件

时间:2017-04-07 09:33:28

标签: autocad autodesk-forge autodesk-viewer dwg autodesk-model-derivative

如何在不使用任何软件的情况下在浏览器上显示或读取.dwg文件意味着使用PHP,jQuery,Javascript或任何其他编程语言。 为此我已经通过https://developer.autodesk.com并创建了一个具有客户端ID和客户端密钥的应用程序,还创建了index.html文件。但在那之后,我陷入了寻找下一步需要的动作" Model Derivative API"。所以请指导我一样。感谢您的宝贵回应。

         

<!-- The Viewer CSS -->
<link rel="stylesheet" href="https://developer.api.autodesk.com/viewingservice/v1/viewers/style.min.css" type="text/css">

<!-- Developer CSS -->
<style>
    body {
        margin: 0;
    }
    #MyViewerDiv {
        width: 100%;
        height: 100%;
        margin: 0;
        background-color: #F0F8FF;
    }
</style>

<!-- The Viewer will be instantiated here -->
<div id="MyViewerDiv"></div>

<!-- The Viewer JS -->
<script src="https://developer.api.autodesk.com/viewingservice/v1/viewers/three.min.js"></script>
<script src="https://developer.api.autodesk.com/viewingservice/v1/viewers/viewer3D.min.js"></script>

<!-- Developer JS -->
<script>
    var viewer;
    var options = {
        env: 'AutodeskProduction',
        accessToken: '<YOUR_APPLICATION_TOKEN>'
    };
    var documentId = 'urn:<YOUR_URN_ID>';
    Autodesk.Viewing.Initializer(options, function onInitialized(){
        Autodesk.Viewing.Document.load(documentId, onDocumentLoadSuccess, onDocumentLoadFailure);
    });

    /**
    * Autodesk.Viewing.Document.load() success callback.
    * Proceeds with model initialization.
    */
    function onDocumentLoadSuccess(doc) {

        // A document contains references to 3D and 2D viewables.
        var viewables = Autodesk.Viewing.Document.getSubItemsWithProperties(doc.getRootItem(), {'type':'geometry'}, true);
        if (viewables.length === 0) {
            console.error('Document contains no viewables.');
            return;
        }

        // Choose any of the avialble viewables
        var initialViewable = viewables[0];
        var svfUrl = doc.getViewablePath(initialViewable);
        var modelOptions = {
            sharedPropertyDbPath: doc.getPropertyDbPath()
        };

        var viewerDiv = document.getElementById('MyViewerDiv');
        viewer = new Autodesk.Viewing.Private.GuiViewer3D(viewerDiv);
        viewer.start(svfUrl, modelOptions, onLoadModelSuccess, onLoadModelError);
    }

    /**
     * Autodesk.Viewing.Document.load() failuire callback.
     */
    function onDocumentLoadFailure(viewerErrorCode) {
        console.error('onDocumentLoadFailure() - errorCode:' + viewerErrorCode);
    }

    /**
     * viewer.loadModel() success callback.
     * Invoked after the model's SVF has been initially loaded.
     * It may trigger before any geometry has been downloaded and displayed on-screen.
     */
    function onLoadModelSuccess(model) {
        console.log('onLoadModelSuccess()!');
        console.log('Validate model loaded: ' + (viewer.model === model));
        console.log(model);
    }

    /**
     * viewer.loadModel() failure callback.
     * Invoked when there's an error fetching the SVF file.
     */
    function onLoadModelError(viewerErrorCode) {
        console.error('onLoadModelError() - errorCode:' + viewerErrorCode);
    }

</script>

1 个答案:

答案 0 :(得分:0)

您可以在A360 Viewer上轻松在线测试。

您指出的代码只是页面,请注意它是如何缺少TOKEN和URN的。事实上,在Viewer tutorial之后,您会注意到Prepare your file for viewing教程。

在任何情况下,您都需要一个上传和翻译后工作的后端,我们在github account处有一些示例。

<强>更新

无需编程即可显示模型:您可以在网站上轻松共享A360型号,步骤如下:

  1. 转到A360并登录(或注册)
  2. 使用现有项目或创建新项目。
  3. 在项目内,点击上传,然后在您的计算机上选择该文件。翻译过程将自动开始。或者您可以使用项目中的现有文件。
  4. 在右上角的图标上,点击“分享”选项。 Share icon
  5. 在弹出窗口中,转到嵌入标签,然后选择尺寸。复制HTML并粘贴到您的网站上。 Embed HTML code