关于three.js:如何在Forge Viewer中使用svf文件计算面积和体积

how to calculate area and volume using svf file in forge viewer

我需要计算3D文件表面的体积和面积。 由于forge api可以将各种3D文件转换为svf格式,因此,如果我可以从svf格式文件计算面积和体积,那么我的程序就可以处理支持forge api的所有格式3D文件。 但是伪造查看器没有用于计算面积和体积的api。 因为伪造查看器基于THREE.js,所以我猜是否可以使用THREE.js的api来计算体积和面积。 我阅读了伪造查看器的api,但是没有任何API可以从伪造视图中获取THREE.js的几何图形。

var viewables =
Autodesk.Viewing.Document.getSubItemsWithProperties(doc.getRootItem(),
{'type':'geometry'}, true);

我尝试了这一点,它不是THREE.js的几何图形,而是伪造的查看器。 它不能用于计算。

  • THREE.js也不具有用于计算体积和面积的API(AFAIK),所以我不太确定这里的方法。 可以从其他SO答案中轻松获得的用于该目的的任何代码,都应适用于任何基于三角形的几何图形,因此,如果您能弄清楚应该可行的Forge几何图形格式。


不好意思,很抱歉,据我所知,在Forge Viewer中没有API可用于计算面积或体积,但是您需要自己进行一些变通。

要将Forge片段转换为THREE.Mesh,可以在此处,此处和此处进行检查。 对于面积计算,您可以在Autodesk.Viewing.Extensions.Measure.Snapper.prototype.snapping3DAutodesk.Viewing.Extensions.Measure.MeasureTool.prototype.getFaceArea中引用Forge Viewer的一些代码。

希望能有所帮助。

  • 谢谢,我的问题已在您这里,这里和这里的帮助下解决。 还有一个,这里 stackoverflow.com/questions/23279521/>,非常感谢。