Автор Тема: Генератор G-кода.  (Прочитано 12938 раз)

Оффлайн -andrey-

  • Житель
Генератор G-кода.
« : 01 Ноябрь 2017, 19:32:30 »
По сути репост последнего сообщения:
http://blender-3d.ru/forum/index.php/topic,1933.new.html#new
знаю способ генерации G-кода, достаточно простой, и в общем прицепом решил написать слайсер. мне нужен из-за поддержек - замахался выкидывать дорогой пластик, нужны поддержки. Суть способа...не важно, в общем я решил сначала заюзать Open GL, всё что мне надо - получать срезы модели STL на уровне слоя печати, чтобы сгенерировать G-код. Генератор простой, без математических заумностей, способ могу рассказать, он простой и надёжный - никаких самопересечений и прочего. В общем я решил обратится к Вам, если никому не интересно, то буду лепить сам в Lazarus OpenGL.

Оффлайн Samovar

  • Житель
Re: Генератор G-кода.
« Ответ #1 : 01 Ноябрь 2017, 19:39:35 »
Я нифига не понял, но не проще ли сделать анимацию и получить срезы(сечения) STL http://blender-3d.ru/modules/myarticles/article_storyid_26.html
Рендерер Freestyle умеет экспортировать в 2D вектор SVG (даже в анимированный SVG). Попадалась вроде даже то ли дополнение Slicer, то ли скрипт для старого 2.49, которое режет модель на сечения... но сейчас с наскока не вспомню, надо искать... кстати подобного рода файлы (куча срезов) используются  для создания волюметриков в Blender Render -> тип текстуры Voxel Data
Увы, я никогда не сталкивался с 3D печатью, и не знаю всех подводных камней, но может быть эта бесплатная прога от Autodesk чем-то поможет: http://blender-3d.ru/forum/index.php/topic,1460.0.html там есть просмотровщик 3D печати и куча всяких проверок целостности модели... одна беда - всё на буржуйском...
« Последнее редактирование: 01 Ноябрь 2017, 19:56:00 от Samovar »

Оффлайн -andrey-

  • Житель
Re: Генератор G-кода.
« Ответ #2 : 01 Ноябрь 2017, 20:01:12 »
Вот насчёт проще или нет я не знаю, поскольку слайсеры некоторые уже нарезают код с разными толщинами слоя. Но для генерации G-кода по моему способу, а он прост - нужен срез модели STL.
Раз интерес был проявлен, то я опишу свой способ и немного предыстории.
Как-то лет 5 назад я решил написать слайсер для фрезера. Первый вопрос который возник - как получить контур пути фрезы, ведь она имеет свой радиус, и этот контур должен отличаться от контура среза модели.
Задал вопрос на киберфоруме. В ответ ответил человек, но видимо математик, он мне рассказал о трудностях, о самопересечениях, немного о том как они решали эту проблему. В общем путь их был труден и тернист, я не стал вникать в то, что он мне писал - он слишком усложинл задачу - до нелинейной математики, в то время как там всё намного проще надо делать и линейной математикой.
Чтобы найти способ я решил, что так или иначе, двигатель фрезера по координатам имеет шаг. Взял его за пиксел, контур детали мне, допустим известен, на изображении с разрешением где пиксел - шаг двигателя. В общем я искал решение в реальности, а не в киберпространстве:
чтобы вырезать прокладку под деталь - обычно деталь мажется салейдолом, а материал из которого вырезается позднее прокладка плотно прижимается и на нём остаётся отпечаток. Вот чтобы получить контур движения фрезы - нужно, допустим этот лист с материалом, прижать к детали и сделать вращательно - поступательное движение с радиусом в радиус фрезы - на листе материала останется отпечаток, где контуры указывали-бы на то, где должна пройти фреза, чтобы получить прокладку. В случае с экструдером просто берётся радиус сопла, а контур получаемый будет с другой стороны от линни отпечатка, чем у фрезы. Этот  способ простой как 3 копейки, ресурсы он сожрать должен не большие, чем способы с нелинейной математикой, с проверкой всевозможных булевых условий на самопересечения.
   Если интересно - можем реализовать.
Проблемой является то, что я не умею Python с которым работает Blender, но умею Lazarus FPC, в котором могу делать DLL-ки.
В общем я карты открыл - просто с кем-то мне намного проще реализовать и быстрее, чем самому. А там смотрите сами - можем мы с Вами что-то или мне самому прийдётся... свои возможности я описал - DLL-ки, Python-не умею. Если что - логику беру на себя, вы на себя интеграцию DLL-ек через Python с Blender. Мне кажется что сообща не так трудно будет.

Оффлайн Samovar

  • Житель
Re: Генератор G-кода.
« Ответ #3 : 01 Ноябрь 2017, 20:13:41 »
Цитировать
   Если интересно - можем реализовать.
Проблемой является то, что я не умею Python с которым работает Blender, но умею Lazarus FPC, в котором могу делать DLL-ки.
В общем я карты открыл - просто с кем-то мне намного проще реализовать и быстрее, чем самому.
Если честно, то я очень далёк от всего этого... ничего толкового сказать не могу... но я рад, что на этом форуме присутствуют изобретатели и кандидаты наук (тут их есть :) , поверь )   ...
Если ищешь спонсора, то тоже ничем не могу помочь ...

Оффлайн -andrey-

  • Житель
Re: Генератор G-кода.
« Ответ #4 : 01 Ноябрь 2017, 20:22:35 »
Зачем мне спонсор, я так могу всё сделать. Просто одному-дольше. Ну ладно, если что сообразите - пишите, а я пока сам.

Оффлайн Samovar

  • Житель
Re: Генератор G-кода.
« Ответ #5 : 01 Ноябрь 2017, 20:33:51 »
Цитировать
G-код — условное именование языка программирования устройств с числовым программным управлением (ЧПУ). Был создан компанией Electronic Industries Alliance в начале 1960-х. Окончательная доработка была одобрена в феврале 1980 года как стандарт RS274D. Комитет ISO утвердил G-код как стандарт ISO 6983-1:2009, Госкомитет по стандартам СССР — как ГОСТ 20999-83. В советской технической литературе G-код обозначается как код ИСО 7-бит (ISO 7-bit). G-код кодировали на 8-дорожечную перфоленту в коде ISO 7-bit (разработан для представления информации УЧПУ в виде машинного кода так же, как и коды AEG и PC8C), восьмая дорожка использовалась для контроля чётности.
Ланухумыча (LanuHum) сюда надо :) Он как раз озадачился ЧПУ в начале года... Вы не родственники, случайно? :)  ... хотя, LanuHum  токарь и шарит в Python... Жаль, что он давно тут не появлялся...

Оффлайн -andrey-

  • Житель
Re: Генератор G-кода.
« Ответ #6 : 01 Ноябрь 2017, 20:40:52 »
Ну так-да, надо его сюда, логику я реализую - не вопрос. Всё что мне надо - желательно 2D срезы детали по печатаемым-фрезеруемым слоям. Формат массива для чтения путей - их-же надо будет визуализировать в Blender, объясните мне и я сделаю DLL-ки как скажете, логика вся в этих-же DLL-ках будет (это будет один файл DLL - меньше мусора). Сильно торопыжится не будем - люди все занятые, сообща и так быстро сделаем.
В общем жду Вас тут, распланируем план действий, если будем делать. В личку ему написать - не вариант? Может у него уведомления стоят?

Оффлайн Samovar

  • Житель
Re: Генератор G-кода.
« Ответ #7 : 01 Ноябрь 2017, 21:07:38 »
В общем жду Вас тут, распланируем план действий, если будем делать. В личку ему написать - не вариант? Может у него уведомления стоят?
Не знаю, попробуй в личку написать... может откликнется... я с ним "бодался" тут, и не только тут, в спорах ... были паузы в его появлениях полугодичные, но не такие долгие... и я начинаю думать недоброе... рад, если ошибаюсь... появится бы тебе со своими идеями год или два раньше...

Оффлайн -andrey-

  • Житель
Re: Генератор G-кода.
« Ответ #8 : 01 Ноябрь 2017, 21:12:09 »
Дай ссыль на его профиль, пожалуйста, тогда напишу.

Оффлайн Samovar

  • Житель

Оффлайн -andrey-

  • Житель
Re: Генератор G-кода.
« Ответ #10 : 01 Ноябрь 2017, 21:17:09 »
спс, я если что эту тему ему линкану в личку. отправил, подождёмс.

Оффлайн Striver

  • Житель
  • недоинженер, полупрограммист
    • http://striver00.ru
Re: Генератор G-кода.
« Ответ #11 : 01 Ноябрь 2017, 22:35:10 »
Цитировать
всё что мне надо - получать срезы модели STL на уровне слоя печати, чтобы сгенерировать G-код.....................
Я могу попробовать помочь с Питоном в Блендере, да вот беда - ни в этой фразе, ни в последущем довольно объемном тексте почти нихрена не понял. В фрезеровании, и, тем более, в его тонкостях, к сожалению, не разбираюсь.

Попробуй к текстовому описанию своей хотелки картинки добавить, может, тогда понятнее станет.

Оффлайн -andrey-

  • Житель
Re: Генератор G-кода.
« Ответ #12 : 02 Ноябрь 2017, 20:32:52 »
Хорошо, я завтра нарисую эскизы. В блендере их-было-бы проще получить, но мне проще нарисовать.
Ещё такая вот тема карячится - надо, много  печатаю техническими пластиками (собственно только ими).
В общем не важно, на самом деле тут куча факторов http://3dtoday.ru/questions/nizkotemperaturnye-flyusysakhar/?commentId=303978#303978
Что хотелось-бы. Помнится школьная игра в пики-фамы, где загадывалось число четырёхзначное, и в общем нужно было его угадать, если число которое вы называли содержит цифры на своих местах в загаданом соперником, то он говорил сколько этих чисел и добавлял-"пик", если число содержало цифры не на своём месте, то ответом было их число и добавка-"фам", ответ мог выглядеть и так - "2 пик 1 фам". Ну такая полухацкерная развлекуха была в школе, лучший результат - 4 попытки, но это очень редко и как правило по случайности, сыгранные игроки это знали как правило, хорошим - 5 попыток, 6 попыток - тоже хорошо, но с этакой натяжечкой, далее ерунда, даже если победа.
В общем в чём суть нужно провести тест на крепость соединения. Тестироваться будет смесь с разными наполнителями:
основа - сахар. наполнители:
1) кофе
2) соль
3) низкотемпературный канифоль водорастворимый
4) перец красный
Ингредиенты кажутся абсурдными, но увы - все имеют основание быть испробованными в качестве усилителя адгезии детали с столом.
сахар по понятным причинам. http://3dtoday.ru/blogs/accurate-random/a-little-bit-about-the-adhesion-of-welding-plastic-on-the-knee-but-all/
Кофе - въедчивый.
Соль - должна образовать микрокристалы въедающиеся в наносимый первый слой детали.
Канифоль - удаляет оксидную плёнку и продукты окисления.
Перец острый красный - содержит клетки, которые держат как минимум влагу, некоторую температуру, имеют форму (все или элементов не знаю) маленьких острых винтиков, которые и возбуждаю рецепторы вкуса вызывая острый привкус, предположительно - могут улучшить адгезию (раз нанотехнологиям можно, мне тоже значит можно).
Суть вопроса - есть желание сформировать несколько рядов тестовых, где после какого-то процента совмещать ингридиенты:
Например ряды:
сахар+соль 5%, сахар+кофе 5%, сахар+канифоль 5%, САХАР + перец 5%
далее в этих рядах поднимать процент содержания наполнителя на 5 процентов до 25, после 25 начать смешивать друг с другом.
То-есть по сути имеется стол для печати 200 мм на 200 мм, тестовая деталь бусть имеет размер 30 мм на 30 мм, где под позицию пусть будет отведено 40 мм на 40 мм.
Итого, на подъёме содержания ингридиентов до 25 процентов будет занят весь стол печати и останется одна полоска.
Какими составами её распределить, чтобы узнать отношение ингридиентов друг-к другу. Скорее всего даже деталь будет иметь 25*25мм, а площадка на столе под неё 30 на 30мм.
Заранее благодарен за соображения и помощь.
Задал там ещё вопрос - http://www.cyberforum.ru/algorithms/thread2115148.html

Оффлайн -andrey-

  • Житель
Re: Генератор G-кода.
« Ответ #13 : 03 Ноябрь 2017, 13:27:37 »
По генератору эскизы готовы, не совсем ожидаемо как я думал - но это мелочи. Допустим, что надо отпечатать контур вот этого треугольника   рис1. Тогда для генерации контура под 3D печать нужно получить сначала булевой операцией вот это, рис 2.
И далее смещать его на шаг двигателя по радиусу сопла. Я допустил что шаг двигателя равен радиусу сопла (я-же не буду в ручную сотни рисунков рисовать).  Дальше в следующем сообщении - вложения ограничены.


Оффлайн -andrey-

  • Житель
Re: Генератор G-кода.
« Ответ #14 : 03 Ноябрь 2017, 13:32:41 »
Делаем "круговое" смещение на шаг двигателя с отпечатком.
Разумеется возникает погрешность из-за шага двигателя. Это нормально, возможно можно регулировать скоростью подачи пластика - не вопрос.
Результат - выделены вершины контура перемещения сопла.
Это очень грубо с грубым шагом. Для фрезы я немного обломался - там надо двигать не плоскость полученную в результате булевой операции, а сам треугольник. Но то не важно, думаю суть понятна.

 


Яметрика

* По форуму

* Рекламный блок

* Последние вложения

1 (1).png
Скачано: 64
Автор: LEXA ANЭGROWND
blender.png
Скачано: 74
Автор: ipv2007
4.png
Скачано: 96
Автор: hiroyukiss
2.png
Скачано: 119
Автор: hiroyukiss

Скачано: 109
Автор: Dilifa12