在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的二维图纸格式)。
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...