此代码的最终目标是确保客户定义的形状实际上可以由我们的......呃机器加工。要做到这一点,我们将指定的形状向内偏移到钻头的半径,然后向外向外偏移相同的量,从而将任何太小的部分弄圆,以实际适合钻头。对于多边形偏移,我们使用Angus Johnson的Clipper库,版本5.1.6(c ++)。
但是从图中可以看出这导致了一些意想不到的形状。在图片中,我使用ClipperLib::OffsetPolygon
使用{{1}}偏移原始形状(绿色,主要由后面的绘图覆盖)以获得黄色形状,然后通过半径偏移以获得红色形状。
理论上,对于链接中显示的情况,这应该导致红色形状完全匹配绿色形状。
使上述结果发生可能出错?
答案 0 :(得分:3)
我也有这些工件,在我的情况下,它是在每次偏移操作之前由CleanPolygons()解决的。问题是由于微型自交叉和/或重复点,可以使用上述清洁功能解决。