Я работаю над приложением для создания пути для станка с ЧПУ, изготовленного на заказ. Он основан на контроллере ПЛК, который не поддерживает G-код, поэтому мне нужно определить весь путь как список команд.
У меня возникли проблемы с определением траектории для фрезерования карманов. В качестве исходных данных я использую файлы DXF с различными формами. Каждая форма расположена на другом слое и состоит из простых элементов, таких как LINE, ARC и т. д. Мне нужно проанализировать эти простые элементы как замкнутый контур и сгенерировать траекторию для фрезерования всего материала внутри этого контура. Знаете ли вы какую-либо библиотеку или простой алгоритм, в котором я могу определить форму (в данном случае на основе данных DXF), а библиотека/алгоритм будет генерировать всю траекторию инструмента с учетом диаметра инструмента?
Для простых форм, таких как круги или прямоугольники, я могу сгенерировать такую траекторию вручную, но когда форма более сложная (например, как показано ниже), у меня заканчиваются идеи, как это сделать.
В Интернете есть много бесплатных программ CAM, и каждое из них генерирует траекторию инструмента в виде G-кода, поэтому я предполагаю, что такой алгоритм там каким-то образом реализован. Я думал об использовании такого программного обеспечения CAM, но вывод G-кода для меня непригоден, кроме того, мне не нужен графический интерфейс. Большинство из них также написано на языках более высокого уровня, пока я пишу свое приложение на JavaScript, работающем под управлением node.js.