亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

Autodesk Forge Markup3D標注,如何把上次添加的標注信息,下次進入該模型后顯示

Autodesk Forge Markup3D標注,如何把上次添加的標注信息,下次進入該模型后顯示

Helenr 2019-03-15 14:15:51
Autodesk Forge3D標注,用戶在該頁面,添加標注信息,記錄下坐標數據,退出該頁面,等到該用戶下一次進入該頁面,頁面重載的時候,如何顯示出用戶上次標記的信息?https://github.com/Autodesk-F...,用的是這個擴展包。Markup3D.PinPoint.js:constructor(viewer, worldPoint) {    ......    this.activateLock3d(viewer);    this.setWorldPoint(worldPoint);    this.timeoutId = 0;  }setWorldPoint({"x":32.04636390620801,"y":218.75012207031264,"z":13.843699405939578})為設置開始坐標Markup3D.Label.js:onMouseMove (event) {    if (this.parent.dragging) {      this.parent.setLeaderEndPoint({        x: event.clientX,        y: event.clientY      })    }  }setLeaderEndPoint({"x":800, "y":500})設置結束坐標如何在頁面重載進入的時候,執行這方法,繪制自己的坐標點?或者是有其它方式操作?
查看完整描述

2 回答

?
幕布斯6054654

TA貢獻1876條經驗 獲得超7個贊

可以通過 viewer.getState() 獲取 Philippe MarkUp3D 的 Markup 信息,把這個信息記錄到數據庫里;之后重載模型后執行 viewer.restoreState( viewstate ) 就可以回復了,原因是因為載入 MarkUp3D 擴展后,你的 viewState 會多了一個叫 Markup3D 的屬性,在回復時 MarkUp3D 擴展會去讀取這個屬性將 Markup 回復到畫面上,我的測試代碼如下:


var viewstate = viewer.getState();

viewer.restoreState( viewstate );

數據結構:

https://img1.sycdn.imooc.com//5cac3bb20001cc3508000238.jpg

希望對您有幫助


查看完整回答
反對 回復 2019-04-09
?
慕勒3428872

TA貢獻1848條經驗 獲得超6個贊

存:var info = viewer.getState();


        var str = JSON.stringify(info);

        document.inputForm.elements["markup"].value = str;

        沒有問題。

為什么恢復的時候 無效果:

function onDocumentLoadSuccess(doc) {


        // A document contains references to 3D and 2D viewables.

        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,{

            extensions: ['Autodesk.ADN.Viewing.Extension.BasicES2015','Viewing.Extension.Markup3D']

        });

        /**

        ,'Autodesk.Viewing.MarkupsGui' //2D標記

        ,'Autodesk.ADN.Viewing.Extension.PropertyListPanel' //屬性菜單

        ,'Autodesk.ADN.Viewing.Extension.Material'

        ,'Viewing.Extension.Markup3D' //3D標記

        ,'Autodesk.Billboard',

        ,'Autodesk.MyBillboardGui'

        */

        var errorCode = viewer.start();

        // Check for initialization errors.

        if (errorCode) {

            console.error('viewer.start() error - errorCode:' + errorCode);

            return;

        }

        // Choose any of the available viewables.

        indexViewable = 0;

        lmvDoc = doc;

        var markup = ${markup};

        alert(markup);

        if (markup!=null && markup != ""){

               viewer.restoreState(markup);

        // Everything is set up, load the model.

        loadModel();

    }


查看完整回答
反對 回復 2019-04-09
  • 2 回答
  • 0 關注
  • 1194 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號