根据形状描述或 DXF 输入生成刀具路径

问题描述

我正在开发用于为定制 CNC 机床生成路径的应用程序。它基于不支持 G 代码的 PLC 控制器,因此我需要将整个路径定义为命令列表。

我在定义型腔铣削的刀具路径时遇到问题。作为输入,我使用其中包含不同形状的 DXF 文件。每个形状都位于不同的层上,并由简单的元素(如 LINE、ARC 等)构建。我需要将这些简单元素分析为闭合轮廓,并生成刀具路径以在该轮廓内铣削整个材料。您知道我可以定义形状的任何库或简单算法(在这种情况下,基于 DXF 数据)并且库/算法会生成整个刀具路径,同时考虑刀具直径?

对于圆形或矩形等简单形状,我可以手动生成这样的刀具路径,但是当形状更复杂时(例如如下所示),我想不出怎么做。

Example shape

互联网上有很多免费的 CAM 软件,每个软件都以 G 代码的形式生成刀具路径,所以我假设这种算法是以某种方式在那里实现的。我想使用这样的 CAM 软件,但 G 代码输出对我来说不可用,而且我不需要任何 GUI。其中大部分也是用高级语言编写的,而我正在用在 node.js 下运行的 JavaScript 编写我的应用程序。

解决方法

您的意思是您知道如何单独处理每个实体而不知道如何将它们组合在一起?由于它们接触,您只需要根据其起点/终点(1)从当前实体的终点找到下一个实体。如果点 (1) 是该实体的终点,您将需要反向处理找到的实体,或以正常顺序处理它并反转结果线。当然要注意在正确的方向上偏移它。

为了更快的邻居搜索,首先按起点和终点的 X 或 Y 坐标对它们进行排序。