有没有办法从 Audtodesk forge apis 中提取模型的高度、宽度、长度测量和体积?
Posted
技术标签:
【中文标题】有没有办法从 Audtodesk forge apis 中提取模型的高度、宽度、长度测量和体积?【英文标题】:Is there any way to extract height ,width,length measures and volume of model from Audtodesk forge apis? 【发布时间】:2017-12-18 10:23:34 【问题描述】:我正在尝试开发可以使用 Autodesk Forge api 以 step 和 stl 扩展格式提取模型的长度、宽度、高度和体积的网站。我成功地制作了将步骤文件转换为 svf 并将模型设置在 3d 查看器上的程序,但我无法获得我需要的措施。先感谢您。
【问题讨论】:
您是否尝试过查看器工具栏上的测量工具?此图片中间带有标尺图标的按钮:https://developer.doc.autodesk.com/bPlouYTd/48/_images/overview1.jpg
。或者,您想通过访问网格信息以编程方式执行此操作。?
我想通过编程方式获得它。因为我需要按照这个措施开发其他逻辑。
【参考方案1】:
为了提取您上面提到的数据,您可能需要检索网格信息。首先据我所知。这是访问网格数据并将其从 Forge 片段信息转换的类似问题:how to calculate area and volume using svf file in forge viewer
根据我的经验,从 Forge 片段中获取 THREE.Mesh
后,您可以通过编程方式从网格的顶点或面计算您想要的内容。
此外,web worker 在这种情况下可能会有所帮助,因为模型迭代可能会损害您的应用程序的性能。 javascript 在现代浏览器的单线程中运行,您的应用程序的 UI 可能会在计算过程中挂起。所以,对于在分离线程中执行的脚本,建议使用web work来运行计算脚本。
希望对您有所帮助。
【讨论】:
感谢您的回复。我有关于 volume 的想法。但是你能给我简要解释一下如何获得三个网格的面积吗? 就像 Philippe 说的,没有直接的方法或 API 来计算您在 Forge 查看器中提到的那些东西,不幸的是,这不是查看器的规范。但是,您可以为此制定自己的解决方法并自行计算。计算面积的关键是在将网格数据从 Forge 碎片转换为“THREE.Mesh”的过程中重建“THREE.Face3”。在此之后,您可以通过 Philippe 提供的链接计算面积。希望这会有所帮助。 顺便说一句,我提供的链接 (***.com/a/44415211/7745569) 说明了如何在“THREE.Mesh”转换期间重建“THREE.Face3”。请检查一下。 谢谢Eason Kang 和Philippe Leefsma。根据您的指示,我从three.mesh 和three.face 中获取了所有参数。谢谢您的帮助。我很感激。【参考方案2】:三个网格的计算区域不是特定于伪造的,因此您可以只查找一般的three.js 主题,例如this one。请务必注意,您的方法需要在执行任何计算之前将模型加载到查看器中,因此无法自动化,我不确定这是否是您正在寻找的工作流程...
... step 和 stl 是非常通用的格式,因此您可以找到第 3 方库,这些库允许您直接在这些原始文件上执行相同的计算,从而实现逻辑服务器端,以便直接获得信息在加载模型或什至没有加载模型时。实现它的另一种方法是使用Forge Model Derivatives API 将模型导出到 .obj,但每次导出都会花费您 1 个云积分。希望对你有帮助
【讨论】:
感谢您的回复。但是你能给我一些python、java或javascript任何语言的参考库吗? 我自己也不知道具体哪一个,你需要自己研究一下……从谷歌搜索开始。以上是关于有没有办法从 Audtodesk forge apis 中提取模型的高度、宽度、长度测量和体积?的主要内容,如果未能解决你的问题,请参考以下文章
有没有办法使用 Forge Viewer API 在查看器上运行 Autocad 命令?
Autodesk Forge Viewer 和 React 组件
有没有办法在 Autodesk Forge Reality Capture API 上检查每次重建 (photoscene_id) 消耗的云积分?