答案 0 :(得分:0)
测量工具有一个非正式的扩展版本,它支持JSONify和重新加载测量数据:https://github.com/wallabyway/area-markup/blob/master/docs/Measure/MeasureTool.js
let measurementData = measureTool.getJson();
...
measureTool.loadJson(measurementData);
此功能的官方支持仍在审核中,并将在适当时候宣布。
注意:尽管此扩展程序不是完全由第三方(由ADN团队构建),但仍是非官方的,因此Autodesk尚未正式对其进行支持,并且可能会发生更改,并且可能会与Viewer的更高版本(不带预告)不兼容。
答案 1 :(得分:0)
我目前有一个要求朝这个方向做一些事情,但是显然,在版本7中,查看器项目正在使用ES6模块,这使得无法像在this great project中那样覆盖MeasureTool
使用版本2构建。
忙了整整一个早晨,试图破坏ES6模块系统以覆盖MeasurementExtension
中的某些内容以获取数据后,当我在调试会话期间发现40多个尚未解决的问题时,我感到非常惊讶-扩展对象中记录的方法。只需将它们登录到控制台:
const extension = viewer.getExtension('Autodesk.Measure');
console.log(extension.__proto__);
您将对以下方法感兴趣:
extension.getMeasurementList() // => grab the list of selected measurements
extension.setMeasurementList() // => set the list of selected measurements
这里唯一的陷阱是必须先激活扩展才能使用它:
extension.setActive(true);
extension.setMeasurementList()
extension.setActive(false);
您还可以听一些可用的事件。您可以列出它们以进行检出:
console.log(Autodesk.Viewing.MeasureCommon.Events)
我希望这可以帮助任何需要它的人。