背景

在上一篇博文中CAD图DWG解析WebGIS可视化技术分析总结提到,利用AutoCAD的自有云产品 Autodesk Forge,能在浏览器中渲染 3D 和 2D 模型数据,实现DWG图形的Web发布。还是官方出品,性能,功能那不在话下。不过其数据得保存在AutoCAD公有云上,那能不能离线部署呢?

Forge平台

首先先说下Forge平台,Forge平台是Autodesk推出的云产品平台,提供各种API,可以实现在网页上上传、浏览、管理模型等功能,甚至包括3D打印、VR等。具体内容可以上主页看:https://forge.autodesk.com/

Autodesk Forge Viewer 是一个基于 WebGL 的客户端 JavaScript 库,用于 3D 和 2D 模型渲染。查看器可让您在 Web 上查看和共享来自各种产品的设计模型,包括 AutoCADFusion 360Revit等等。具体内容可以上主页看:https://forge.autodesk.com/en/docs/viewer/v7/developers_guide/overview/

【Forge Viewer】是一套JavaScript(.js)库和Css库(.css),通常使用压缩混淆版(*.min.js, *.min.css)。最主要的代码文件名为‘Viewer3D.js’或者‘Viewer3D.min.js’(压缩混淆版),很多功能是额外的JavaScript代码,例如第三人漫游,标记,刨切,测量,模型实时协作等,技术上称为Extension。

‘Viewer3D.js’有一部分是基于Three.js库进行了拓展,而Three.js架构于浏览器渲染图形基础技术WebGL。但‘Viewer3D.js’或者‘Viewer3D.min.js’,配合上另外一个加载模型算法库wgs.js,很多代码是Autodesk针对浏览器图形渲染性能做的优化,可以支持超大规模的模型数据高效加载,又能保持良好的漫游查看能力。还有很多代码是Viewer缺省的功能(漫游,模型结构,构件属性,环境设置等),还有为应用拓展提供的大量API。其性能和拓展性得到了得到众多朋友的认可。

如何在线查看DWG图形?

1、打开https://viewer.autodesk.com/ 上传新图形(如没有注册或登录,请自行先注册登录)

2、选择本地一个DWG文件,点击上传,会经过上传成功和处理两个步骤

3、处理成功后,就能显示出CAD图形了.

功能还是挺丰富的,图层切换、查看实体信息、测量、标记、打印、共享等。不过需要注意的是Forge按照云服务实际使用量而收取费用。某些服务是按用量,某些是按照云服务操作的CPU时间,某些是按照操作数据的大小,以后的新服务或许又有其他计量方式。

如何离线部署?

不用担心,AutoCAD官方也是给出了答案的,那就是缓存策略!

官方文档在: https://forge.autodesk.com/blog/disconnected-workflows

大致为: 虽然Forge 是一个 平台,但基于它构建的某些应用程序可能希望支持 Internet 连接暂时不可用的场景。例如,考虑一个用于审查和注释 CAD 模型的应用程序 - 如果您可以在飞机上处理几个 CAD 文件,然后在您再次联机时同步您的注释,这不是很好吗?在这篇文章中,我们将介绍一种使用现代 HTML5 API 支持这些场景的可能方法。我们将首先简要介绍 我们将要使用的技术,然后是 我们可以用来缓存 Forge 内容的策略。具体内容可访问上面的文档地址。

好像这个不是咱们真正想要的解决方案,咱们的目的是想要完全真正意义上面的离线部署。

继续查文档,发现虽然Forge没有私有云模式,但对于【网页中加载模型的应用】的场景,经过Forge公有云服务转换模型以后,可以下载转换的数据部署到本地服务器,通过【Forge Viewer】这个浏览器前端技术加载,这个思路还是可以的。

那如何提取Viewer可读的模型文件(SVF或F2d)到本地?

可以通过官方提供的Extractor应用提取:https://extract.autodesk.io/,亦可自行部署该应用:https://github.com/cyrillef/e...

当然,如果想完全破解svf或f2d格式,也是有办法的。市场上有些商用的软件或者自行阅读forge提供的SDK代码去分享实现。

效果

可能访问 demo地址 https://vjmap.com/guide/forgeviewer.html 去体验下效果

AutoCAD云产品平台ForgeViewer格式离线部署思路分析的更多相关文章

  1. 【阿里云产品公测】离线归档OAS,再也不用担心备份空间了

    [阿里云产品公测]离线归档OAS,再也不用担心备份空间了 作者:阿里云用户莫须有3i 1 起步  1.1 初识OAS  啥是OAS,请看官方说明: 引用: 开放归档服务(Open Archive Se ...

  2. 【阿里云产品公测】离线归档OAS,在也不用备份担心空间了

    作者:阿里云用户 莫须有3i 1 起步 1.1 初识OAS 啥是OAS,请看官方说明: 引用 开放归档服务(Open Archive Service,简称OAS),致力于提供低成本.高可靠的数据归档服 ...

  3. 聊聊如何在华为云IoT平台进行产品开发

    摘要:华为云物联网平台承载着南北向数据互通的功能职责. 本文分享自华为云社区<如何基于华为云IoT物联网平台进行产品开发>,作者: Super.雯 . 华为云物联网平台承载着南北向数据互通 ...

  4. 【阿里云产品公测】阿里云ACE部署通用完整教程及评测

    [阿里云产品公测]阿里云ACE部署通用完整教程及评测 作者:阿里云用户bailimei ACE应该是目前在公测的服务中应用最广泛的一项服务.在公测云引擎ACE前曾使用过新浪SAE,而ACE给我的最初印 ...

  5. 微服务架构 - 离线部署k8s平台并部署测试实例

    一般在公司部署或者真实环境部署k8s平台,很有可能是内网环境,也即意味着是无法连接互联网的环境,这时就需要离线部署k8s平台.在此整理离线部署k8s的步骤,分享给大家,有什么不足之处,欢迎指正. 1. ...

  6. SAAS云平台搭建札记: (一) 浅论SAAS多租户自助云服务平台的产品、服务和订单

    最近在做一个多租户的云SAAS软件自助服务平台,途中遇到很多问题,我会将一些心得.体会逐渐分享出来,和大家一起探讨.这是本系列的第一篇文章. 大家知道,要做一个全自助服务的SAAS云平台是比较复杂的, ...

  7. 【阿里云产品公测】以开发者角度看ACE服务『ACE应用构建指南』

    作者:阿里云用户mr_wid ,z)NKt#   @I6A9do   如果感觉该评测对您有所帮助, 欢迎投票给本文: UO<claV   RsfTUb)<   投票标题:  28.[阿里云 ...

  8. 国内物联网平台(5):机智云IoT物联网云服务平台及智能硬件自助开发平台

    国内物联网平台(5)——机智云IoT物联网云服务平台及智能硬件自助开发平台 马智 平台定位 机智云平台是致力于物联网.智能硬件云服务的开放平台.平台提供了从定义产品.设备端开发调试.应用开发.产测.运 ...

  9. Bmob移动后端云服务平台--Android从零開始--(一)何为Bmob

    Bmob移动后端云服务平台--Android从零開始--(一)何为Bmob 在正式的项目开发中,单client不能满足我们的需求,须要实现client与服务端的连接. 而在编写Android服务端代码 ...

随机推荐

  1. Ubuntu16.04 + OpenCV源码 + Qt5.10 安装、配置

    在VMWare中配置安装Ubuntu16.04.没有什么特别的地方,正常安装即可. 安装最新版qt,此时5.10.按照普通QT教程安装(需要勾选gcc),无须sudo,此时不用管OpenCV.地址:h ...

  2. JavaWeb_MVC 设计模式

    Servlet缺点:(1)用servlet进行显示(out)会很麻烦,因为servlet是一个类,托福ibt并不擅长做显示:(2)servlet直接访问数据表的话,servlet内的访问和操作数据表的 ...

  3. 如何实现LRU缓存

    大家好,我是程序员学长,今天我们来聊一聊LRU缓存问题. Tips: LRU在计算机软件中无处不在,希望大家一定要了解透彻. 问题描述 设计LRU(最近最少使用)缓存结构,该结构在构造时确定大小,假设 ...

  4. 自己写一个Map

    Map的实现其实很简单,一个key对应一个value就行 . 本Map是写着玩的,是想告诉初学者我们也可以写一个简单的Map来自己用 代码: public class MyMap<K, V> ...

  5. 【进阶之路】持续集成、持续交付与持续部署(CI/CD)

    由来 记得7月份刚刚换工作的时候,中午和老大一起去吃饭,回来的路上老大问我:"南橘,CI/CD有没有研究过?" 我隐隐约约在哪里听过这个名词,但是又想不起来,秉着实事求是的态度,我 ...

  6. HDD成都站:HMS Core 6.0带来新可能 多元服务驱动产品商业成功

    9月10日,由华为开发者联盟主办的HDD(Huawei Developer Day)于成都举行.活动中,华为HMS Core各领域专家重点解读了HMS Core 6.0为开发者带来的多项全新能力,及生 ...

  7. RabbitMQ-如何保证消息在99.99%的情况下不丢失

    1. 简介 MQ虽然帮我们解决了很多问题,但是也带来了很多问题,其中最麻烦的就是,如何保证消息的可靠性传输. 我们在聊如何保证消息的可靠性传输之前,先考虑下哪些情况下会出现消息丢失的情况. 首先,上图 ...

  8. Linux 动态库的编译和使用

    1. 动态链接库简介 动态库又叫动态链接库,是程序运行的时候加载的库,当动态链接库正确安装后,所有的程序都可以使用动态库来运行程序.动态库是目标文件的集合,目标文件在动态库中的组织方式是按特殊的方式组 ...

  9. 两种方式配置vue全局方法

    目录 1,前言 2,第一种方式 3,第二种方式 1,前言 在Vue项目开发中,肯定会有这样一个场景:在不同的组件页面用到同样的方法,比如格式化时间,文件下载,对象深拷贝,返回数据类型,复制文本等等.这 ...

  10. es6语法中promise的使用方法

    Promise是一个构造函数,它有resolve,reject,race等静态方法;它的原型(prototype)上有then,catch方法,因此只要作为Promise的实例,都可以共享并调用Pro ...