Lathe4D.php
- moscow
- Мастер
- Сообщения: 554
- Зарегистрирован: 27 фев 2018, 20:52
- Репутация: 73
- Настоящее имя: Олег Милантьев
- Откуда: ПодКраснодар
- Контактная информация:
Lathe4D.php
Не нашёл готового в имеющемся у меня CAM-софте, решил "изобрести велосипед". Собственно, подскажите плиз, зря ли я потратил часов этак 8 своей жизни на ерунду или идея стоящая развития?
Начал набросок библиотеки генератора G-Code для портальника с поворотной осью. Здесь описал о чём речь: https://github.com/oleg-milantiev/lathe4d.php/wiki . Там же пример использования и сгенерённого кода.
Основная идея - это непрерывная обработка деталей вращения. Бонусом внешние резьбы (гравёром, гы...) и формирование параллельных плоскостей тем же вращением детали и срезанием её фрезой. Ну и там всякие карманы / шестигранники без крутых платных SolidCam и аналогов.
Пока не заморачивался шапкой / хвостом кода. Ну и возможности сейчас скромные. Как и мои задачи
... всё началось с того, что помер мой ручной токарник, а мне всё ещё нужно изготовить небольшую деталь.
Начал набросок библиотеки генератора G-Code для портальника с поворотной осью. Здесь описал о чём речь: https://github.com/oleg-milantiev/lathe4d.php/wiki . Там же пример использования и сгенерённого кода.
Основная идея - это непрерывная обработка деталей вращения. Бонусом внешние резьбы (гравёром, гы...) и формирование параллельных плоскостей тем же вращением детали и срезанием её фрезой. Ну и там всякие карманы / шестигранники без крутых платных SolidCam и аналогов.
Пока не заморачивался шапкой / хвостом кода. Ну и возможности сейчас скромные. Как и мои задачи
... всё началось с того, что помер мой ручной токарник, а мне всё ещё нужно изготовить небольшую деталь.
- MX_Master
- Мастер
- Сообщения: 7476
- Зарегистрирован: 27 июн 2015, 19:45
- Репутация: 3099
- Настоящее имя: Михаил
- Откуда: Алматы
- Контактная информация:
Re: Lathe4D.php
Старался не зря. Мастера по G коду токарки и поворотки всегда в цене. Единственное пожелание с моей стороны - перевести данный мастер сразу на javascript. Можно сделать в виде одного html файла. Такой файл можно будет кинуть на любой безинтернетовый станочный комп и юзать без проблем с местным браузером. С php такой трюк будет посложнее
ЗЫ: дядя Витя явно не обрадуется, это ж целая конкуренция кибер-технологу намечается
ЗЫ: дядя Витя явно не обрадуется, это ж целая конкуренция кибер-технологу намечается
- moscow
- Мастер
- Сообщения: 554
- Зарегистрирован: 27 фев 2018, 20:52
- Репутация: 73
- Настоящее имя: Олег Милантьев
- Откуда: ПодКраснодар
- Контактная информация:
Re: Lathe4D.php
JavaScript, и правда проще в развёртывании. ООП, правда, у него ещё хуже PHP... хотя, пойдёт. Идея дельная!
Описал установку PHP на винду на странице вики проекта.
Описал установку PHP на винду на странице вики проекта.
- moscow
- Мастер
- Сообщения: 554
- Зарегистрирован: 27 фев 2018, 20:52
- Репутация: 73
- Настоящее имя: Олег Милантьев
- Откуда: ПодКраснодар
- Контактная информация:
Re: Lathe4D.php
Пока остаюсь на PHP, доделываю основы. Потом переведу на js.
Доделал функции обреза справа и слева (спиральный врез вглубь с вращением и заданным шагом заглубления).
Итого, на сегодня, реализованы 4 фигуры:
- цилиндр. Задаются граничные координаты и dНачала, dОкончания реза (проверен);
- обрез справа (проверен) / слева. Задаётся линия реза и с какой стороны резать;
- резьба. Задаются граничные координаты и, можно резьбу с указанием любого шага или граничные диаметры (и шаг).
Первый рез на моём фанерном чудо-юде. Поворотка специально замедлена в целях тестирования. "Оттокарил" рез черенка для лопаты под деталь из примера в вики:
https://www.youtube.com/watch?v=HD3xIOiyRag
Код этой части обработки:
Доделал функции обреза справа и слева (спиральный врез вглубь с вращением и заданным шагом заглубления).
Итого, на сегодня, реализованы 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();
- moscow
- Мастер
- Сообщения: 554
- Зарегистрирован: 27 фев 2018, 20:52
- Репутация: 73
- Настоящее имя: Олег Милантьев
- Откуда: ПодКраснодар
- Контактная информация:
Re: Lathe4D.php
Добавил фигуру "шестигранник". Нарезал болт. Попутно резьбу проверил. Оказалось, левую генерит- moscow
- Мастер
- Сообщения: 554
- Зарегистрирован: 27 фев 2018, 20:52
- Репутация: 73
- Настоящее имя: Олег Милантьев
- Откуда: ПодКраснодар
- Контактная информация:
Re: Lathe4D.php
Код болта
Код: Выделить всё
.....
# Начальные g-code команды
echo $lathe->start();
# Выбор фрезы (в прошлом примере её инициализация)
echo $lathe->setCutter($cutter6);
# Отрезать справа всё, что L>25
echo $lathe->cutRight(30, 36);
# Голова болта (с фасками)
echo $lathe->cylinder(0, 10, 36, 31 * Lathe4d::$HEXAGON_SOFT);
echo $lathe->hexagon(0, 10, 31 * Lathe4d::$HEXAGON_SOFT, 31);
# Резьба
# под резьбу М30, Y[10..30]
echo $lathe->cylinder(10, 30, 36, 29.9);
echo $lathe->thread(10 + 3, 30 - 3, 'M30x8');
# Обрезка слева
echo $lathe->cutLeft(0, 36);
# Завершение работы
echo $lathe->end();
-
- Мастер
- Сообщения: 2291
- Зарегистрирован: 04 авг 2019, 15:54
- Репутация: 323
- Настоящее имя: Сергей
- Контактная информация:
Re: Lathe4D.php
moscow, ой не зря! А если ты сделаешь 3D (x, z, c - шпиндель с позиционированием) то я тебя на руках носить буду!
- moscow
- Мастер
- Сообщения: 554
- Зарегистрирован: 27 фев 2018, 20:52
- Репутация: 73
- Настоящее имя: Олег Милантьев
- Откуда: ПодКраснодар
- Контактная информация:
Re: Lathe4D.php
Это когда шпиндель на редукторе и можно им налево-направо крутить?Kupfershcmidt писал(а):moscow, ой не зря! А если ты сделаешь 3D (x, z, c - шпиндель с позиционированием) то я тебя на руках носить буду!
Я себе начал 5D делать: viewtopic.php?f=147&t=26720&p=543928#p543928 .
Так что, под эту схему-то точно буду развивать проект.
-
- Мастер
- Сообщения: 2291
- Зарегистрирован: 04 авг 2019, 15:54
- Репутация: 323
- Настоящее имя: Сергей
- Контактная информация:
Re: Lathe4D.php
moscow, да, именно. Удачи.
- moscow
- Мастер
- Сообщения: 554
- Зарегистрирован: 27 фев 2018, 20:52
- Репутация: 73
- Настоящее имя: Олег Милантьев
- Откуда: ПодКраснодар
- Контактная информация:
Re: Lathe4D.php
Добавил возможность задания направления резьбы (правая / левая). По-умолчанию, правая.
- moscow
- Мастер
- Сообщения: 554
- Зарегистрирован: 27 фев 2018, 20:52
- Репутация: 73
- Настоящее имя: Олег Милантьев
- Откуда: ПодКраснодар
- Контактная информация:
Re: Lathe4D.php
Опробовал нарезку резьбы на неизвестном алюминиевом сплаве:
https://www.youtube.com/watch?v=5VvM4rNUqSQ
https://www.youtube.com/watch?v=5VvM4rNUqSQ
- moscow
- Мастер
- Сообщения: 554
- Зарегистрирован: 27 фев 2018, 20:52
- Репутация: 73
- Настоящее имя: Олег Милантьев
- Откуда: ПодКраснодар
- Контактная информация:
Re: Lathe4D.php
Ускорил спиральный отрез детали. За счёт возможности задания режима адаптивного заглубления. Подробности здесь: https://github.com/oleg-milantiev/lathe ... figure-cut
----
Нашёл и исправил несколько ошибок. Тестирую, доделываю.
----
Нашёл и исправил несколько ошибок. Тестирую, доделываю.
- moscow
- Мастер
- Сообщения: 554
- Зарегистрирован: 27 фев 2018, 20:52
- Репутация: 73
- Настоящее имя: Олег Милантьев
- Откуда: ПодКраснодар
- Контактная информация:
Re: Lathe4D.php
Поворотка у меня медленная (и глючная, так как это макет, впереди 5Д). Поэтому решил больше напирать на X, Y движения, нежели на ось А. Начал с ускорения обработки шестигранника. Добавил ему возможность боковой фрезеровки (в солиде это зовут iMaching).
Пока что реализовал его в виде попутной фрезеровки с входом в деталь справа на глубине "бокового фрезерования" (задаётся в фрезе, параметр sideDepth). При этом материал выбирается на глубину "бокового шага" (задаётся в фрезе, параметр sideStep). Здесь подробное описание: https://github.com/oleg-milantiev/lathe ... re-hexagon под заголовком "sideMill".
Видео:
https://youtu.be/HgbdThPvcK4
Занимаюсь оптимизацией - "фрезеровку воздуха" убираю:
И хочу, аналогчно динамически подбираемому шагу заглубления фрезеровки в спиральном резе (см. выше) сделать динамический расчёт бокового заглубления, в зависимости от объёма снимаемого материала (т.к. он известен, если начальная заготовка или подход к шестиграннику через цилиндр).
----
Попутно, на основе шестигранника, сделал фигуру "Квадрат": https://github.com/oleg-milantiev/lathe ... ure-square
Пока что реализовал его в виде попутной фрезеровки с входом в деталь справа на глубине "бокового фрезерования" (задаётся в фрезе, параметр sideDepth). При этом материал выбирается на глубину "бокового шага" (задаётся в фрезе, параметр sideStep). Здесь подробное описание: https://github.com/oleg-milantiev/lathe ... re-hexagon под заголовком "sideMill".
Видео:
https://youtu.be/HgbdThPvcK4
Занимаюсь оптимизацией - "фрезеровку воздуха" убираю:
И хочу, аналогчно динамически подбираемому шагу заглубления фрезеровки в спиральном резе (см. выше) сделать динамический расчёт бокового заглубления, в зависимости от объёма снимаемого материала (т.к. он известен, если начальная заготовка или подход к шестиграннику через цилиндр).
----
Попутно, на основе шестигранника, сделал фигуру "Квадрат": https://github.com/oleg-milantiev/lathe ... ure-square
- moscow
- Мастер
- Сообщения: 554
- Зарегистрирован: 27 фев 2018, 20:52
- Репутация: 73
- Настоящее имя: Олег Милантьев
- Откуда: ПодКраснодар
- Контактная информация:
Re: Lathe4D.php
А есть ли (лучше б бесплатный) G-Code визуализатор c четвёртой осью?
Для XYZ мне очень нравится https://ncviewer.com/ .
Попробовал несколько шаровар, всё какая-то лажа.
Для XYZ мне очень нравится https://ncviewer.com/ .
Попробовал несколько шаровар, всё какая-то лажа.
- MX_Master
- Мастер
- Сообщения: 7476
- Зарегистрирован: 27 июн 2015, 19:45
- Репутация: 3099
- Настоящее имя: Михаил
- Откуда: Алматы
- Контактная информация:
Re: Lathe4D.php
Когда буду переделывать веб-интерфейс для LinuxCNC, займусь визуализацией тоже (WebGL, Canvas). Если нужен любой, а не только веб, можно присмотреться к CIMCO
-
- Мастер
- Сообщения: 2291
- Зарегистрирован: 04 авг 2019, 15:54
- Репутация: 323
- Настоящее имя: Сергей
- Контактная информация:
Re: Lathe4D.php
Кстати да...заодно и редактировать код можно.MX_Master писал(а):присмотреться к CIMCO
- moscow
- Мастер
- Сообщения: 554
- Зарегистрирован: 27 фев 2018, 20:52
- Репутация: 73
- Настоящее имя: Олег Милантьев
- Откуда: ПодКраснодар
- Контактная информация:
Re: Lathe4D.php
Спасибо! Попробую.MX_Master писал(а):Когда буду переделывать веб-интерфейс для LinuxCNC, займусь визуализацией тоже (WebGL, Canvas). Если нужен любой, а не только веб, можно присмотреться к CIMCO
Я чуть с Unity 3D знаком. Думал на нём визуализатор набросать, да ... каникулы закончились
Вчера, наконец-то, начал делать деталь, ради которой всё затевалось.
На видео боковым врезом точится шестигранник под ключ (болт) посредине детали.
Поворотка слабая, так что режимы щадящие.
https://www.youtube.com/watch?v=nSB6ZK7KxLY
- moscow
- Мастер
- Сообщения: 554
- Зарегистрирован: 27 фев 2018, 20:52
- Репутация: 73
- Настоящее имя: Олег Милантьев
- Откуда: ПодКраснодар
- Контактная информация:
Re: Lathe4D.php
Уф... доделал.
В размер, где надо, попал! В паре мест накосячил, конечно
https://youtu.be/lWEZG1hEd0A
В размер, где надо, попал! В паре мест накосячил, конечно
https://youtu.be/lWEZG1hEd0A
-
- Мастер
- Сообщения: 1083
- Зарегистрирован: 16 окт 2017, 16:07
- Репутация: 85
- Контактная информация:
Re: Lathe4D.php
Супер!!! Практически то что я искал, но до освоения ещё долго. moscow, огромное спасибо и удачи !
- moscow
- Мастер
- Сообщения: 554
- Зарегистрирован: 27 фев 2018, 20:52
- Репутация: 73
- Настоящее имя: Олег Милантьев
- Откуда: ПодКраснодар
- Контактная информация:
Re: Lathe4D.php
Всегда пожалуйста!Cvazist писал(а):Супер!!! Практически то что я искал, но до освоения ещё долго. moscow, огромное спасибо и удачи !
Если захочется каких-то фич, дай знать.