Пока остаюсь на PHP, доделываю основы. Потом переведу на js.
Доделал функции обреза справа и слева (спиральный врез вглубь с вращением и заданным шагом заглубления).
Итого, на сегодня, реализованы 4 фигуры:
- цилиндр. Задаются граничные координаты и dНачала, dОкончания реза (проверен);
- обрез справа (проверен) / слева. Задаётся линия реза и с какой стороны резать;
- резьба. Задаются граничные координаты и, можно резьбу с указанием любого шага или граничные диаметры (и шаг).
Первый рез на моём фанерном чудо-юде. Поворотка специально замедлена в целях тестирования. "Оттокарил" рез черенка для лопаты под деталь из примера в вики:
https://www.youtube.com/watch?v=HD3xIOiyRag
Код этой части обработки:
Код: Выделить всё
include "lathe4d.php";
$lathe = new Lathe4d();
$lathe->setBlank(
new Blank(36) # заготовка D 36, L не задан (и пока не используется)
# X,Y [0,0] в центре близ патрона. Z [0] на оси цилиндра
);
$lathe->setSafe(10); # Безопасная высота 10мм
# Определение фрезы
$cutter = new Cutter([
'diameter' => 6,
'passDepth' => 3,
'stepover' => 0.8,
'feed' => 1400,
'name' => '6mm endmill 3fluite alluminium',
'tool' => 1,
]);
echo $lathe->start(); # Начальные g-code команды
echo $lathe->setCutter($cutter);
# точим наружний цилиндр от D36 до D17 с 0 по 48 по Y
echo $lathe->cylinder(0, 48, 36, 17);
# ещё пара L 18 цилиндров под резьбы М15 на концах
echo $lathe->cylinder(0, 18, 17, 14.9);
echo $lathe->cylinder(30, 48, 17, 14.9);
echo $lathe->cutRight(48, 36); # отрезать справа всё, что y>48
echo $lathe->end();