Lathe4D.php

Обсуждение аспектов работы с CAМ программами, подготовка моделей, настройка постпроцессоров, настройка параметров инструментов, обсуждение стратегий обработки, симуляция обработки. Вопросы по G-коду.
Аватара пользователя
moscow
Мастер
Сообщения: 554
Зарегистрирован: 27 фев 2018, 20:52
Репутация: 73
Настоящее имя: Олег Милантьев
Откуда: ПодКраснодар
Контактная информация:

Lathe4D.php

Сообщение moscow »

Не нашёл готового в имеющемся у меня CAM-софте, решил "изобрести велосипед". Собственно, подскажите плиз, зря ли я потратил часов этак 8 своей жизни на ерунду или идея стоящая развития?

Начал набросок библиотеки генератора G-Code для портальника с поворотной осью. Здесь описал о чём речь: https://github.com/oleg-milantiev/lathe4d.php/wiki . Там же пример использования и сгенерённого кода.

Основная идея - это непрерывная обработка деталей вращения. Бонусом внешние резьбы (гравёром, гы...) и формирование параллельных плоскостей тем же вращением детали и срезанием её фрезой. Ну и там всякие карманы / шестигранники без крутых платных SolidCam и аналогов.

Пока не заморачивался шапкой / хвостом кода. Ну и возможности сейчас скромные. Как и мои задачи :)
... всё началось с того, что помер мой ручной токарник, а мне всё ещё нужно изготовить небольшую деталь.
Аватара пользователя
MX_Master
Мастер
Сообщения: 7465
Зарегистрирован: 27 июн 2015, 19:45
Репутация: 3088
Настоящее имя: Михаил
Откуда: Алматы
Контактная информация:

Re: Lathe4D.php

Сообщение MX_Master »

Старался не зря. Мастера по G коду токарки и поворотки всегда в цене. Единственное пожелание с моей стороны - перевести данный мастер сразу на javascript. Можно сделать в виде одного html файла. Такой файл можно будет кинуть на любой безинтернетовый станочный комп и юзать без проблем с местным браузером. С php такой трюк будет посложнее ;)

ЗЫ: дядя Витя явно не обрадуется, это ж целая конкуренция кибер-технологу намечается :)
Аватара пользователя
moscow
Мастер
Сообщения: 554
Зарегистрирован: 27 фев 2018, 20:52
Репутация: 73
Настоящее имя: Олег Милантьев
Откуда: ПодКраснодар
Контактная информация:

Re: Lathe4D.php

Сообщение moscow »

JavaScript, и правда проще в развёртывании. ООП, правда, у него ещё хуже PHP... хотя, пойдёт. Идея дельная!

Описал установку PHP на винду на странице вики проекта.
Аватара пользователя
moscow
Мастер
Сообщения: 554
Зарегистрирован: 27 фев 2018, 20:52
Репутация: 73
Настоящее имя: Олег Милантьев
Откуда: ПодКраснодар
Контактная информация:

Re: Lathe4D.php

Сообщение 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();
Аватара пользователя
moscow
Мастер
Сообщения: 554
Зарегистрирован: 27 фев 2018, 20:52
Репутация: 73
Настоящее имя: Олег Милантьев
Откуда: ПодКраснодар
Контактная информация:

Re: Lathe4D.php

Сообщение moscow »

2020_01_05_0001.jpg (4788 просмотров) <a class='original' href='./download/file.php?id=174463&sid=cfbe796d44a43bac7f5d035b7df7ce4d&mode=view' target=_blank>Загрузить оригинал (40.13 КБ)</a>
Добавил фигуру "шестигранник". Нарезал болт. Попутно резьбу проверил. Оказалось, левую генерит :)
Поменяю на правую по-умолчанию.

https://www.youtube.com/watch?v=1QwdUbPAWOo
Аватара пользователя
moscow
Мастер
Сообщения: 554
Зарегистрирован: 27 фев 2018, 20:52
Репутация: 73
Настоящее имя: Олег Милантьев
Откуда: ПодКраснодар
Контактная информация:

Re: Lathe4D.php

Сообщение 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();


Kupfershcmidt
Мастер
Сообщения: 2291
Зарегистрирован: 04 авг 2019, 15:54
Репутация: 323
Настоящее имя: Сергей
Контактная информация:

Re: Lathe4D.php

Сообщение Kupfershcmidt »

moscow, ой не зря! А если ты сделаешь 3D (x, z, c - шпиндель с позиционированием) то я тебя на руках носить буду!
Аватара пользователя
moscow
Мастер
Сообщения: 554
Зарегистрирован: 27 фев 2018, 20:52
Репутация: 73
Настоящее имя: Олег Милантьев
Откуда: ПодКраснодар
Контактная информация:

Re: Lathe4D.php

Сообщение moscow »

Kupfershcmidt писал(а):moscow, ой не зря! А если ты сделаешь 3D (x, z, c - шпиндель с позиционированием) то я тебя на руках носить буду!
Это когда шпиндель на редукторе и можно им налево-направо крутить?

Я себе начал 5D делать: viewtopic.php?f=147&t=26720&p=543928#p543928 .
Так что, под эту схему-то точно буду развивать проект.
Kupfershcmidt
Мастер
Сообщения: 2291
Зарегистрирован: 04 авг 2019, 15:54
Репутация: 323
Настоящее имя: Сергей
Контактная информация:

Re: Lathe4D.php

Сообщение Kupfershcmidt »

moscow, да, именно. ;) Удачи.
Аватара пользователя
moscow
Мастер
Сообщения: 554
Зарегистрирован: 27 фев 2018, 20:52
Репутация: 73
Настоящее имя: Олег Милантьев
Откуда: ПодКраснодар
Контактная информация:

Re: Lathe4D.php

Сообщение moscow »

Добавил возможность задания направления резьбы (правая / левая). По-умолчанию, правая.
2020_01_05_0002.JPEG (4754 просмотра) <a class='original' href='./download/file.php?id=174476&sid=cfbe796d44a43bac7f5d035b7df7ce4d&mode=view' target=_blank>Загрузить оригинал (31.56 КБ)</a>
Аватара пользователя
moscow
Мастер
Сообщения: 554
Зарегистрирован: 27 фев 2018, 20:52
Репутация: 73
Настоящее имя: Олег Милантьев
Откуда: ПодКраснодар
Контактная информация:

Re: Lathe4D.php

Сообщение moscow »

Опробовал нарезку резьбы на неизвестном алюминиевом сплаве:

https://www.youtube.com/watch?v=5VvM4rNUqSQ
Аватара пользователя
moscow
Мастер
Сообщения: 554
Зарегистрирован: 27 фев 2018, 20:52
Репутация: 73
Настоящее имя: Олег Милантьев
Откуда: ПодКраснодар
Контактная информация:

Re: Lathe4D.php

Сообщение moscow »

Ускорил спиральный отрез детали. За счёт возможности задания режима адаптивного заглубления. Подробности здесь: https://github.com/oleg-milantiev/lathe ... figure-cut
figure-cut-zpass.jpg (4705 просмотров) <a class='original' href='./download/file.php?id=174546&sid=cfbe796d44a43bac7f5d035b7df7ce4d&mode=view' target=_blank>Загрузить оригинал (183.07 КБ)</a>
----

Нашёл и исправил несколько ошибок. Тестирую, доделываю.
Аватара пользователя
moscow
Мастер
Сообщения: 554
Зарегистрирован: 27 фев 2018, 20:52
Репутация: 73
Настоящее имя: Олег Милантьев
Откуда: ПодКраснодар
Контактная информация:

Re: Lathe4D.php

Сообщение moscow »

Поворотка у меня медленная (и глючная, так как это макет, впереди 5Д). Поэтому решил больше напирать на X, Y движения, нежели на ось А. Начал с ускорения обработки шестигранника. Добавил ему возможность боковой фрезеровки (в солиде это зовут iMaching).

Пока что реализовал его в виде попутной фрезеровки с входом в деталь справа на глубине "бокового фрезерования" (задаётся в фрезе, параметр sideDepth). При этом материал выбирается на глубину "бокового шага" (задаётся в фрезе, параметр sideStep). Здесь подробное описание: https://github.com/oleg-milantiev/lathe ... re-hexagon под заголовком "sideMill".

Видео:

https://youtu.be/HgbdThPvcK4

Занимаюсь оптимизацией - "фрезеровку воздуха" убираю:
hexagon-optimize.jpg (4674 просмотра) <a class='original' href='./download/file.php?id=174569&sid=cfbe796d44a43bac7f5d035b7df7ce4d&mode=view' target=_blank>Загрузить оригинал (248.02 КБ)</a>
И хочу, аналогчно динамически подбираемому шагу заглубления фрезеровки в спиральном резе (см. выше) сделать динамический расчёт бокового заглубления, в зависимости от объёма снимаемого материала (т.к. он известен, если начальная заготовка или подход к шестиграннику через цилиндр).

----

Попутно, на основе шестигранника, сделал фигуру "Квадрат": https://github.com/oleg-milantiev/lathe ... ure-square
figure-square.jpg (4674 просмотра) <a class='original' href='./download/file.php?id=174572&sid=cfbe796d44a43bac7f5d035b7df7ce4d&mode=view' target=_blank>Загрузить оригинал (195.86 КБ)</a>
Аватара пользователя
moscow
Мастер
Сообщения: 554
Зарегистрирован: 27 фев 2018, 20:52
Репутация: 73
Настоящее имя: Олег Милантьев
Откуда: ПодКраснодар
Контактная информация:

Re: Lathe4D.php

Сообщение moscow »

А есть ли (лучше б бесплатный) G-Code визуализатор c четвёртой осью?
Для XYZ мне очень нравится https://ncviewer.com/ .

Попробовал несколько шаровар, всё какая-то лажа.
Аватара пользователя
MX_Master
Мастер
Сообщения: 7465
Зарегистрирован: 27 июн 2015, 19:45
Репутация: 3088
Настоящее имя: Михаил
Откуда: Алматы
Контактная информация:

Re: Lathe4D.php

Сообщение MX_Master »

Когда буду переделывать веб-интерфейс для LinuxCNC, займусь визуализацией тоже (WebGL, Canvas). Если нужен любой, а не только веб, можно присмотреться к CIMCO ;)
Kupfershcmidt
Мастер
Сообщения: 2291
Зарегистрирован: 04 авг 2019, 15:54
Репутация: 323
Настоящее имя: Сергей
Контактная информация:

Re: Lathe4D.php

Сообщение Kupfershcmidt »

MX_Master писал(а):присмотреться к CIMCO
Кстати да...заодно и редактировать код можно. ;)
Аватара пользователя
moscow
Мастер
Сообщения: 554
Зарегистрирован: 27 фев 2018, 20:52
Репутация: 73
Настоящее имя: Олег Милантьев
Откуда: ПодКраснодар
Контактная информация:

Re: Lathe4D.php

Сообщение moscow »

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

Сообщение moscow »

Уф... доделал.
В размер, где надо, попал! В паре мест накосячил, конечно :)

https://youtu.be/lWEZG1hEd0A
Cvazist
Мастер
Сообщения: 1080
Зарегистрирован: 16 окт 2017, 16:07
Репутация: 85
Контактная информация:

Re: Lathe4D.php

Сообщение Cvazist »

Супер!!! Практически то что я искал, но до освоения ещё долго. moscow, огромное спасибо и удачи !
Аватара пользователя
moscow
Мастер
Сообщения: 554
Зарегистрирован: 27 фев 2018, 20:52
Репутация: 73
Настоящее имя: Олег Милантьев
Откуда: ПодКраснодар
Контактная информация:

Re: Lathe4D.php

Сообщение moscow »

Cvazist писал(а):Супер!!! Практически то что я искал, но до освоения ещё долго. moscow, огромное спасибо и удачи !
Всегда пожалуйста!

Если захочется каких-то фич, дай знать.
Ответить

Вернуться в «CAM пакеты»