CNC铣削刀具材料表示

时间:2014-04-09 12:10:12

标签: android algorithm data-structures opengl-es cnc

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

enter image description here

在每个步骤中,铣刀正在移除材料,并且调整每个分割点处的H坐标以模拟材料去除:

enter image description here

此方法可以启动。但为了模拟铣刀的全精度,除数应具有高值,即对于100 mm x 100 mm x 100 mm的材料块,精度为0.01 mm,除数应为10 000,这使得模拟几乎不可能。 设置除数也可以使精度固定,而不依赖于铣削参数(半径,高度,曲率等)。

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

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

2 个答案:

答案 0 :(得分:0)

  1. 体素渲染

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

  2. '立方体'表面列表

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

    material structure

  3. 多边形图层

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

答案 1 :(得分:0)

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