Страница 1 из 2
Lathe4D.php
Добавлено: 03 янв 2020, 01:36
moscow
Не нашёл готового в имеющемся у меня CAM-софте, решил "изобрести велосипед". Собственно, подскажите плиз, зря ли я потратил часов этак 8 своей жизни на ерунду или идея стоящая развития?
Начал набросок библиотеки генератора G-Code для портальника с поворотной осью. Здесь описал о чём речь:
https://github.com/oleg-milantiev/lathe4d.php/wiki . Там же пример использования и сгенерённого кода.
Основная идея - это непрерывная обработка деталей вращения. Бонусом внешние резьбы (гравёром, гы...) и формирование параллельных плоскостей тем же вращением детали и срезанием её фрезой. Ну и там всякие карманы / шестигранники без крутых платных SolidCam и аналогов.
Пока не заморачивался шапкой / хвостом кода. Ну и возможности сейчас скромные. Как и мои задачи

... всё началось с того, что помер мой ручной токарник, а мне всё ещё нужно изготовить небольшую деталь.
Re: Lathe4D.php
Добавлено: 03 янв 2020, 07:49
MX_Master
Старался не зря. Мастера по G коду токарки и поворотки всегда в цене. Единственное пожелание с моей стороны - перевести данный мастер сразу на javascript. Можно сделать в виде одного html файла. Такой файл можно будет кинуть на любой безинтернетовый станочный комп и юзать без проблем с местным браузером. С php такой трюк будет посложнее
ЗЫ: дядя Витя явно не обрадуется, это ж целая конкуренция кибер-технологу намечается

Re: Lathe4D.php
Добавлено: 03 янв 2020, 12:24
moscow
JavaScript, и правда проще в развёртывании. ООП, правда, у него ещё хуже PHP... хотя, пойдёт. Идея дельная!
Описал установку PHP на винду
на странице вики проекта.
Re: Lathe4D.php
Добавлено: 03 янв 2020, 23:22
moscow
Пока остаюсь на 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();
Re: Lathe4D.php
Добавлено: 05 янв 2020, 17:16
moscow
Добавил фигуру "шестигранник". Нарезал болт. Попутно резьбу проверил. Оказалось, левую генерит

Поменяю на правую по-умолчанию.
https://www.youtube.com/watch?v=1QwdUbPAWOo
Re: Lathe4D.php
Добавлено: 05 янв 2020, 17:22
moscow
Код болта
Код: Выделить всё
.....
# Начальные 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();
Re: Lathe4D.php
Добавлено: 05 янв 2020, 18:12
Kupfershcmidt
moscow, ой не зря! А если ты сделаешь 3D (x, z, c - шпиндель с позиционированием) то я тебя на руках носить буду!
Re: Lathe4D.php
Добавлено: 05 янв 2020, 21:24
moscow
Kupfershcmidt писал(а):moscow, ой не зря! А если ты сделаешь 3D (x, z, c - шпиндель с позиционированием) то я тебя на руках носить буду!
Это когда шпиндель на редукторе и можно им налево-направо крутить?
Я себе начал 5D делать:
viewtopic.php?f=147&t=26720&p=543928#p543928 .
Так что, под эту схему-то точно буду развивать проект.
Re: Lathe4D.php
Добавлено: 05 янв 2020, 21:41
Kupfershcmidt
moscow, да, именно.

Удачи.
Re: Lathe4D.php
Добавлено: 05 янв 2020, 23:29
moscow
Добавил возможность задания направления резьбы (правая / левая). По-умолчанию, правая.
Re: Lathe4D.php
Добавлено: 07 янв 2020, 11:19
moscow
Опробовал нарезку резьбы на неизвестном алюминиевом сплаве:
https://www.youtube.com/watch?v=5VvM4rNUqSQ
Re: Lathe4D.php
Добавлено: 07 янв 2020, 11:21
moscow
Ускорил спиральный отрез детали. За счёт возможности задания режима адаптивного заглубления. Подробности здесь:
https://github.com/oleg-milantiev/lathe ... figure-cut
----
Нашёл и исправил несколько ошибок. Тестирую, доделываю.
Re: Lathe4D.php
Добавлено: 07 янв 2020, 23:22
moscow
Поворотка у меня медленная (и глючная, так как это макет, впереди 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
Re: Lathe4D.php
Добавлено: 08 янв 2020, 18:28
moscow
А есть ли (лучше б бесплатный) G-Code визуализатор c четвёртой осью?
Для XYZ мне очень нравится
https://ncviewer.com/ .
Попробовал несколько шаровар, всё какая-то лажа.
Re: Lathe4D.php
Добавлено: 08 янв 2020, 21:17
MX_Master
Когда буду переделывать веб-интерфейс для
LinuxCNC, займусь визуализацией тоже (WebGL, Canvas). Если нужен любой, а не только веб, можно присмотреться к
CIMCO 
Re: Lathe4D.php
Добавлено: 08 янв 2020, 21:36
Kupfershcmidt
MX_Master писал(а):присмотреться к CIMCO
Кстати да...заодно и редактировать код можно.

Re: Lathe4D.php
Добавлено: 09 янв 2020, 10:44
moscow
MX_Master писал(а):Когда буду переделывать веб-интерфейс для
LinuxCNC, займусь визуализацией тоже (WebGL, Canvas). Если нужен любой, а не только веб, можно присмотреться к
CIMCO 
Спасибо! Попробую.
Я чуть с Unity 3D знаком. Думал на нём визуализатор набросать, да ... каникулы закончились
Вчера, наконец-то, начал делать деталь, ради которой всё затевалось.
На видео боковым врезом точится шестигранник под ключ (болт) посредине детали.
Поворотка слабая, так что режимы щадящие.
https://www.youtube.com/watch?v=nSB6ZK7KxLY
Re: Lathe4D.php
Добавлено: 10 янв 2020, 12:29
moscow
Уф... доделал.
В размер, где надо, попал! В паре мест накосячил, конечно
https://youtu.be/lWEZG1hEd0A
Re: Lathe4D.php
Добавлено: 21 янв 2020, 13:29
Cvazist
Супер!!! Практически то что я искал, но до освоения ещё долго. moscow, огромное спасибо и удачи !
Re: Lathe4D.php
Добавлено: 21 янв 2020, 13:49
moscow
Cvazist писал(а):Супер!!! Практически то что я искал, но до освоения ещё долго. moscow, огромное спасибо и удачи !
Всегда пожалуйста!
Если захочется каких-то фич, дай знать.