1

我正在为 3 轴铣刀编写 CNC 模拟器。第一次尝试时,我将材质表示为 WxHxD 框(W - 宽度,H- 高度,D - 深度),带有 W 和 D 除数参数。因此,例如 W = D = 120,H = 50,W-div = 20,D-div = 20:

在此处输入图像描述

在每个步骤中,磨机都在去除材料,并且每个分割点的 H 坐标都被调整以模拟材料去除:

在此处输入图像描述

这种方法是可以开始的。但是要模拟铣刀的全精度,除数应该有很高的值,即对于 100 mm x 100 mm x 100 mm 的材料块,精度为 0.01 mm,除数应该是 10 000,这使得模拟几乎不可能。此外,设置除数可以使精度固定且不依赖于铣削参数(半径、高度、曲率等)。

使用当前解决方案的工作应用程序在 PC 机器上运行,但下一次迭代应该能够在使用 OpenGL ES 3.0 作为渲染 API 的移动设备上运行。

牢记这一点,问题就出现了从起始块模拟(最好是实时)材料去除的最佳方法是什么?第二个问题是使用什么数据结构和算法来实现这个目标。

4

2 回答 2

0

据我所知,这些模拟是在像素上执行的,而不是在真实几何上。您是否需要剩余库存的几何形状或简单的视觉模拟就足以满足您的需求?

于 2014-04-10T06:52:34.503 回答
0
  1. 体素渲染

    您可以使用压缩来释放一些内存。我会至少为一个轴(简单而快速)选择RLE ,或者将空间划分为层并将每个层压缩为图像......

  2. “立方体”表面列表

    这更适合您的任务。在开始时,您的材料是单个 3D 盒子,所以想象沿着盒子表面的点网格。当您从侧面移除一些材料时,只需将相交的表面点平移到新位置。当您钻孔时(因此表面无法匹配更改)然后将表面划分为两个新的......选择网格分辨率(每个立方体侧面的点数不是每 [mm] !!!)。我更喜欢使用圆柱形表面而不是立方体表面,因为与立方体/盒子的 6 个侧面相比,它们只有 3 个侧面(顶部、底部、侧面)。

    材料结构

  3. 多边形层

    想象一下,您的空间被切成二维平面(图像),那么您可以简单地记住每个切片的闭合多边形列表。这与项目符号 #2 非常相似。它更易于管理,但更难实现与工具的交互......而且渲染也比子弹#2更棘手

于 2014-04-09T14:44:45.200 回答