就上文提到的四类常见咨询内容,本文介绍第二类:常见场景的代码样例,常见问题的诊断技巧。(注:本文提及的资源链接若访问不了,请尝试VPN)
当有了一定Forge基础后,例如Forge Viewer以及背后的转换过程服务,具体的使用中,必然会遇到这样或那样的问题,先看看是后端的问题(例如token,上传,模转换),还是前端(Forge Viewer)的问题和需求。
对于后端的问题,首先通过StackOverflow(SO), 在autodesk-forge标签下看看有无相关的讨论。还有细化的标签,例如:
autodesk-designautomation:云端设计自动化(DesignAutomation)
autodesk-data-managemen:模型上传下载(DataManagement
autodesk-model-derivative: 模型转换和数据提取服务(ModelDerivative)
在SegmentFault上也有autodesk-forge标签,不方便英文交流的朋友可发帖在这里,我们也会陆续的贴一些常见问题,便于大家中文查询。目前只有一个autodesk-forge标签。
而后端的内容,建议可以使用我们提供的SDK包。现有的SDK包可从这里下载使用:
https://developer.autodesk.co...
包括了 Node.js, Ruby, VB.NET, Java,C#
可以避免浪费很多时间在基本的上载,转换过程中。
说到这里,你可以开始尝试用一下新鲜出炉的【Learn Forge tutorial - 向导式Forge进阶教程】,它涵盖了模型网页浏览的所有知识点,而且是一步步带着大家练习,多种语言方式。强力推荐:
对于前端,例如Forge Viewer,虽然SO上有autodesk-viewer标签,但更建议上Autodesk-Forge的Github代码库查询已经有的代码样例,看看是否已经有代码实现了您需要的场景。两个工具特别推荐:
Forge Viewer 测试器:此代码有对应的测试网站。包括了多个基本Viewer操作的场景,例如:改变构件颜色,操作相机,操作视图状态,构件可见性,查找构件等等,更酷的是,对应的代码也直接可以显示出来,方便理解和测试。注意:此网站不再维护,已无法加载模型进行测试,但其代码样例还是有一定参考作用(部分APIs用法可能在新版已变化)点击右侧的列表,对应的代码就出现在页面下方
另外一个代码库是Viewer 功能扩展包,这里包含了几十个Viewer的可能需要的应用场景,实现较为综合的功能,例如,变换构件位置(旋转,),导入额外的模型数据,为构件贴图,获取构件的三角面片等等,所以,请务必在这里先查查是否有代码样例了。
为了让这些扩展的功能得以生动体现,我们还部署了一个测试网站,大部分可找到对应的源码。子页面加载一个模型,右侧有一些常规扩展的测试。另外一个子页面提供了一些缺省模型进行测试,也允许客户上传自己的模型,但只保留30天。
假设这些地方没看到样例,或者您是遇到特定的问题,错误了,和上面类似,在SO或SegmentFault上查询。
或者这些都没找到头绪,由于是客户端代码,建议大家可以多分析和调试Viewer3D.js。通常我们引用Viewer的JS库,是用到其压缩版,含有sourcemap,可以在浏览器控制台窗口的Source中直接设置断点进行调试,包括Viewer加载的的Extension代码。
<script src="https://developer.api.autodesk.com/modelderivative/v2/viewers/6.*/viewer3D.min.js"></script>
也可在引用的时候设置为非压缩版,
<script src="https://developer.api.autodesk.com/modelderivative/v2/viewers/6.*/viewer3D.js"></script>
若您发现有些功能有问题,或有不足的地方,可以反馈给Autodesk Forge团队,由开发部进行功能的改进或提供。