我正在写三轴铣刀的数控模拟器。在第一次尝试时,我使用W和D除数参数将材质表示为WxHxD长方体(W -宽度,H-高度,D-深度)。例如W=D= 120,H= 50,W-div = 20,D-div = 20:

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

此方法适用于started。但是,为了完全模拟铣刀的精度,因子应具有较高的数值,即对于100 mm×100 mm×100 mm的材料块,若要达到0.01 mm的精度,因子应为10000,这使得模拟几乎是不可能的。此外,设置除数可以使精度固定,而不依赖于铣削参数(半径、高度、曲率等)。
当前解决方案的工作应用程序在PC机上运行,但下一次迭代应该能够在使用OpenGL ES 3.0作为渲染应用程序接口的移动设备上运行。
记住这一点,问题出现了,什么是模拟(最好是实时地)从起始块移除材料的最好方法?第二个问题是使用什么数据结构和算法来实现这个目标。
发布于 2014-04-09 22:44:45
您可以使用压缩来释放一些内存。我会选择至少一个轴的RLE (简单而快速),或者将空间划分为多个层,并将每个层压缩为'cube‘的图像
这更适合您的任务。在开始的时候,你的材质是一个3D长方体,所以想象一下沿着长方体表面的点网格。当你从侧面移除一些材料时,只需将相交的曲面点平移到新位置即可。当你钻一个孔(所以表面不能匹配的变化),然后分割表面为两个新的…选择网格分辨率(每立方体边上的点数,而不是每毫米!)。我更喜欢使用圆柱表面,而不是立方体表面,因为它们只有3条边(顶部、底部、侧面),而不是立方体/盒子的6条边。

多边形的
假设您的空间被分割成2D平面(图像),那么您可以简单地记住每个切片的闭合多边形列表。这与项目2非常相似。它更易于管理,但更难实现与工具的交互……此外,渲染也比bullet #2中的渲染稍微复杂一些
发布于 2014-04-10 14:52:35
据我所知,这些模拟是在像素上执行的,而不是在真正的几何体上执行的。您是否需要剩余库存的几何形状,或者一个简单的可视化模拟就足以满足您的需求?
https://stackoverflow.com/questions/22962108
复制相似问题