当前位置: 首页 > news >正文

关于extract.autodesk.io的一些说明

在Autodesk Forge 学习简谈 - 4中提到了 https://extract.autodesk.io/。由于围绕着这个网站经常有很多咨询的问题,特以此文做进一步的说明:

1.大家知道Forge的【数据提取和转换】服务能够将众多原始CAD格式转换为浏览器能浏览的格式。这是Autodesk设计的一种文件格式,它不是单一文件,而是一个引导文件*.SVF 和很多支持文件,包括几何信息,属性信息,光照,材质,等等,通常我们也把这个文件格式(数据包)简称为SVF。

理论上我们可以通过引导文件列出的文件列表,把那些文件都一个个下载下来,放到本地,就是所谓的【离线部署】。但可惜的是,目前【数据提取和转换】只是提供了下载*.SVF的端口,而非整个数据包。这个小编也比较郁闷。

所以,Forge支持部门的Cyrille撰写了一套代码,帮助下载数据包。也就是大家现在看到的https://extract.autodesk.io/,具体用法见Autodesk Forge 学习简谈 - 4

注:其实SVF这个称呼更多适用用3D的模型,对于2D的图纸,其引导文件是*.F2D。而又注意,此F2D非彼F2D (Fusion 360的二维图纸格式)。

2.https://extract.autodesk.io/ 的基本原理是:上载本地文件到其服务器,然后用Forge的【数据管理API】上载到Forge的服务器,再调用Forge的【数据提取和转换】进行转换,转换成功后,即能在浏览器中加载看到模型。最后Extract提供了一个功能,去Forge的服务器端,遍历一个个转换好的文件,再一一下载下来打包,并且配上兼容的【Forge Viewer】的相关文件。这样就可以拿到整个包到本地测试了。

3.https://extract.autodesk.io/ 是部署在国外的服务器,而且它导入了一些放在google上的js或css库,因此,大多数情况下,在没有VPN的时候访问,容易失败。但这并不等于 Forge 需要VPN 。Forge的服务访问是不需要VPN也可以连上的。只是如果性能好的VPN是会传输速度快点。

4.https://extract.autodesk.io/ 只是一个工具,而非Autodesk正式的一个产品。并没有系统的支持体系。因此,如果偶尔发生了故障,需要等作者有时间才能修复。作者把这个工具的源代码都奉献出来了,网站的右上角可以访问。我们是建议朋友们把源代码自己部署到自己的机器上,这样可以自己调试,修改,也方便自己部署使用。切勿只是依赖这个网站本身的运转。如前面所述,假设偶尔网络性能不佳,甚至VPN也不佳,网站无法访问就麻烦了。

5.前面提到https://extract.autodesk.io/用到了一些放在google的内容,当自己部署的时候,可以先用一些手段(例如VPN)把有关文件下载下来,集成到工程中。这个工作我已经做了,放到了我自己的Github空间。

6.前面提到,Extract的流程是先要将本地文件传到Extract服务器,这个过程由一些第三方库完成了稳定上传,一般没有问题。但从其服务器传到Forge,它使用的是Forge的【数据管理API】的直传端口,就是无论大小,一口气传上去,可以想象,在国内的网络条件下,大文件直传美国服务器成功的可能性有多大。所以经常听到朋友说Forge无法上传,Extract无法用,大多是和这个环节有关系。

无论是Extract还是其它任何Forge上传文件有关的应用程序,都务必使用分块上传的端口,就是把文件切成很小的单元块(例如每个10M),再一一上传。这个的好处是极大降低对网络的要求,而且成功率很高,即便某个块失败,可以依据分块上传的唯一ID,再次上传,也就是所谓的断点续传。

亲自试验一个客户发来的200多M模型,说到自己直接传,没有PVN基本没戏,总是10%就失败了。但经过分块改造后,在家里普通网络情况下,只用了5分钟。当然,转换模型花了较多时间。

大家可以参考我改造后的Extract代码,暂时还未区分小文件和大文件。都用了分块。

7.Extract的源码是用Node写的,对于有些朋友可能理解和使用上有点困难。我看到有朋友自己根据原理写了C#的版本。看看他分享出来,我再附加上。
我们同事Adam撰写了一篇C#的文章,相当简练,具体参见这篇博客
https://forge.autodesk.com/bl...

相关文章:

  • 密码学中的爱丽丝与鲍勃
  • 产业新低:杜拜太阳能得标价跌破3美分!
  • 网络客户端
  • FFmpeg深入分析之零-基础
  • linux 查看文件数
  • Android Studio中架包打包和依赖冲突解决
  • 二十三、oracle pl/sql分类三 包
  • 自己写的一部分斗地主的程序,没有去写界面,临时是用黑框来显示的
  • 《计算机网络(第五版)》中学习理论与实践
  • ADB操作命令相关
  • IBM云对象存储Cleversafe 大力拓展全新战场
  • ETHERCHANNEL的配置
  • 使用 FreeMarker 替换 JSP 的 10 个理由
  • flex中textinput限制输入长度与某些字符
  • RxJava 2.x 使用最佳实践
  • 「前端」从UglifyJSPlugin强制开启css压缩探究webpack插件运行机制
  • Apache Spark Streaming 使用实例
  • vue从创建到完整的饿了么(11)组件的使用(svg图标及watch的简单使用)
  • Web设计流程优化:网页效果图设计新思路
  • Yii源码解读-服务定位器(Service Locator)
  • 翻译--Thinking in React
  • 猴子数据域名防封接口降低小说被封的风险
  • 买一台 iPhone X,还是创建一家未来的独角兽?
  • 实习面试笔记
  • 探索 JS 中的模块化
  • 限制Java线程池运行线程以及等待线程数量的策略
  • 小李飞刀:SQL题目刷起来!
  • 延迟脚本的方式
  • 一个完整Java Web项目背后的密码
  • 原生JS动态加载JS、CSS文件及代码脚本
  • 【运维趟坑回忆录 开篇】初入初创, 一脸懵
  • PostgreSQL之连接数修改
  • 积累各种好的链接
  • ​flutter 代码混淆
  • # 学号 2017-2018-20172309 《程序设计与数据结构》实验三报告
  • #define、const、typedef的差别
  • (14)Hive调优——合并小文件
  • (3)Dubbo启动时qos-server can not bind localhost22222错误解决
  • (Note)C++中的继承方式
  • (附源码)springboot学生选课系统 毕业设计 612555
  • (十三)Maven插件解析运行机制
  • (正则)提取页面里的img标签
  • (转)nsfocus-绿盟科技笔试题目
  • (转载)虚幻引擎3--【UnrealScript教程】章节一:20.location和rotation
  • .desktop 桌面快捷_Linux桌面环境那么多,这几款优秀的任你选
  • .mysql secret在哪_MySQL如何使用索引
  • .NET Core 网络数据采集 -- 使用AngleSharp做html解析
  • .NET 使用配置文件
  • .net 怎么循环得到数组里的值_关于js数组
  • .NET/ASP.NETMVC 深入剖析 Model元数据、HtmlHelper、自定义模板、模板的装饰者模式(二)...
  • .Net+SQL Server企业应用性能优化笔记4——精确查找瓶颈
  • .NET3.5下用Lambda简化跨线程访问窗体控件,避免繁复的delegate,Invoke(转)
  • .net获取当前url各种属性(文件名、参数、域名 等)的方法
  • .Net下的签名与混淆
  • @JsonSerialize注解的使用