Скрипты для помощи в калибровке стола. Изучаем G Code на практике для начинающих и не только выпуск № 1

Санечка
Идет загрузка
Загрузка
16.01.2021
1086
14
Личные дневники

Подпишитесь на автора

Подпишитесь на автора, если вам нравятся его публикации. Тогда вы будете получать уведомления о его новых постах.

Отписаться от уведомлений вы всегда сможете в профиле автора.

0
Статья относится к принтерам:
Ender 3 Pro

Всем привет всем доброго времени суток и приятного чтения. 

Давно уже собирался познакомится поближе с G-кодом, но как-то не приходило в голову для чего это мне нужно, а изучение ради изучения не интересовало. Нужна была какая-нибудь практическая задача решение которой облегчает жизнь. Вместе с тем, очень не нравится во время калибровки стола перемещаться по осям вручную. И как-то с утра потребовалось калибровать принтер и тут сложилось одно с другим и тогда решил попробовать написать скрипт для перемещения печатной головы в 4 угла стола. Сначала думал написать один скрипт для всех точек с небольшими задержками по времени в каждой. Однако исходя из личного опыта и способа калибровки решил перемещение в каждую точку сделать отдельным скриптом. Запускаю скрипты с микро-SD карты через меню принтера «печатать с SD карты». Можно конечно отправлять команды с консоли, но у меня это дольше получается, чем через меню принтера, кроме того были проблемы «подружить» компьютер и принтер и этот способ применения сильно выручал.

Знаком с программированием и многие вещи для меня очевидны, поэтому могу упускать какие-то нужные подробности, будут вопросы задавайте в комментариях.

Первое моё знакомство с G-кодом было здесь: https://3dtoday.ru/blogs/steamgun/g-code-po-russki-dlya-3d-pechati-mini-spravochnik и здесь: https://youtu.be/1cD7a_iRJPk. Пересказывать своими словами хорошее изложение материала не вижу смысла, изучите сами, не маленькие уже)))). Здесь приведу лишь краткое описание тех команд, которые использовал для написания скриптов калибровки.

G90 ; переход в абсолютную систему координат, обычно установлена по умолчанию после включения питания принтера. Для полной определенности, лучше добавить команды в свой скрипт.

G28 ; автоматическая парковка всех осей

G1; перемещение имеет аргументы

Примеры:

Переместить печатную голову в координату Х=10 мм со скоростью 600 мм / минуту

G1 X10 F600

Если надо совершить движение по двум осям одновременно, то запишем:

G1 X10 Y20 F600

Движение по оси Z также можно включать в координированное движение, однако движение по оси Z происходит гораздо медленнее, чем по другим осям, поэтому рекомендуется движение по оси Z отдельной командой, например,

G1 Z0.2 F300 ; Переместить печатную голову по оси Z на 0,2мм со скоростью 300мм/мин

Сразу замечу, что после включения питания принтеру необходимо задать через меню принтера команду Home (G28) – парковка по трем осям. Принтер при выполнении этой операции обретает ориентацию в пространстве - определяет координаты печатающей головы. И для исключения нештатных ситуаций стоит вставить код G28 в скрипт для первой точки, хотя поначалу я обходился без него.

В зависимости от состояния стола перед калибровкой, например, вы его для чего-то снимали, может возникнуть ситуация, когда сопло сильно упрется в стол. Если на печатном столе стекло и принтер соплом в него упрется, ничего страшного не должно произойти, а если поверхность мягкая, то такая поверхность может быть повреждена, тогда в каждый скрипт надо добавить подъем головы по оси Z перед началом перемещения, скажем, на 5-10 мм и по окончании перемещения её возврат в нулевое положение. По той же причине сначала калибровку рекомендую проводить при холодном сопле и столе и только после, того как убедились, что сопло нигде не задевает стол и не проплавит поверхность, можно включать нагрев сопла и стола и проводить уже более точную калибровку. Все варианты скриптов и ссылки на готовые файлы смотрите ниже. Кроме вышеуказанного подъем оси Z удобен, что бы не сносить зажимы и прочие выступающие над поверхностью стола предметы.

Для создания первого своего скрипта взял первый попавшийся файл модели, переименовал его в point1_X10_Y10.gcode, открыл его при помощи блокнота из стандартных программ Винды. Выделил всё через Ctrl-A и заменил выделенный диапазон скриптом на G-код:

;Подвигаем осями

G1 X10 Y10 F5000.0 ;переползаем в первую точку

Затем этот файл переименовал в point2_X200_Y220.gcode

И написал свой второй cкрипт:

;Подвигаем осями

G1 X200 Y220 F5000.0 ;переползаем во вторую точку

Переименовал файл в point3_X200_Y10.gcode

;Подвигаем осями

G1 X200 Y10 F5000.0 ; переползаем в третью точку

Так же поступил и для четвертой точки: point4_X10_Y220.gcode

;Подвигаем осями

G1 X10 Y220 F5000.0 ;переползаем в четвертую точку

«Продвинутые» варианты скриптов

; point1_X10_Y10.gcode

G28 ; Home для забывчивых

G90 ; включить абсолютную систему координат, на всякий случай

G1 Z10 F300 ; подъем головы на 10 мм над столом

G1 X10 Y10 F5000.0 ;переползаем в первую точку

G1 Z0 ; опускаем голову в нулевую координату

; point2_X200_Y220.gcode

G1 Z10 F300 ; подъем головы на 10 мм над столом

G1 X200 Y220 F5000.0 ;переползаем во вторую точку

G1 Z0 ; опускаем голову в нулевую координату

; point3_X200_Y10.gcode

G1 Z10 F300 ; подъем головы на 10 мм над столом

G1 X200 Y10 F5000.0 ; переползаем в третью точку

G1 Z0 ; опускаем голову в нулевую координату

; point4_X10_Y220.gcode

G1 Z10 F300 ; подъем головы на 10 мм над столом

G1 X10 Y220 F5000.0 ;переползаем в четвертую точку

G1 Z0 ; опускаем голову в нулевую координату

Ссылка на скачивание рабочих скриптов: https://yadi.sk/d/8oni1vYE_ZavBQ

З.Ы. Регулярность подобных выпусков не обещаю, буду публикации по мере решения собственных задач.

Всем удачи!

Подпишитесь на автора

Подпишитесь на автора, если вам нравятся его публикации. Тогда вы будете получать уведомления о его новых постах.

Отписаться от уведомлений вы всегда сможете в профиле автора.

0
Комментарии к статье

Комментарии

16.01.2021 в 18:15
3

Статья на тему как усложнить жизнь и не использовать стандартные кнопки для макросов?

или как самоубиться и на этапе калибровки и отладки жевать кактус и не использовать десятки изъеденных приложений с подзаточенным функционалом?

Ли все-же завуалированный посыл: - "ну давайте уже хоть чуть понимать g код"?

16.01.2021 в 18:19
0

))))) заголовок бы до конца прочитали. Там написано "Изучаем G Code на практике", мне так интереснее и легче его изучать. Думаю, что в этом я не одинок. ))) Удачи Вам!

16.01.2021 в 18:25
0

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

Для калибровки стола, в прошивке(марлин 200%, имеется помошник для этой самой калибровки. Запустил, и он поочередно подьезжает к точке, настраиваешь жмакаешь дальше и голова к следующей точке поехала и так по кругу сколько нужно, пока не выберешь в меню выход. 

Также есть в настройка сетки неровности поверхности стола. Которую используют для идеального первого слоя. 

16.01.2021 в 18:32
0

Понятно, читать внимательно это не Ваше - Ваше писать! 

16.01.2021 в 18:42
1

читать внимательно это не Ваше

Ваше  писать(и составление заголовка),  замах на учительство, без изучения (чтения) возможностей распространенных прошивок. 

16.01.2021 в 19:47

Комментарий удалён

16.01.2021 в 20:04
2

Цель поста не калибровка как таковая, а изучение G кода её посредством.

Вам монстрам 3Д печати наверное трудно понять меня новичка и таких же как я, для которых этот пост. Вы сыпете кучей терминов, отраслевым сленгом и названиями, очевидно ухе ставшими родными для вас, а для меня они, как у В.С. Высоцкого "мне Тау-Китянин, что вам папуас..." Даже те, кто дают казалось бы пошаговые инструкции, все равно сплошь и рядом допускают "пропуски шагов" и приходится дополнительно рыть инфу, что бы повторить успешно то что они показали. 

Мне подобные инструкции очень даже в тему. 

Можете и считаете возможным помочь - помогите, не можете или не хотите - не мешайте.

 Где там в Марлине это ваше "200 % жмакаешь"? на какой вкладке? Configuration_adv.h § или Configuration_h или еще где? и как его настроить? что расскомментировать? какие параметры переменных задать? 

дайте пошаговую инструкцию как настроить это ваше "Запустил, и он поочередно подьезжает к точке."

ваше послание чистый флуд. хоть одну бы ссылку по теме дали, а то только пузыри пускаете из терминов и названий.

16.01.2021 в 20:14
0

на базе убогого Марлина

Макросы в прошивку

собственное меню

 на RRF можно мильон макросов вставить любых

и жмякать только кнопку

16.01.2021 в 21:09
1

Спасибо за ссылки, только опять же, что бы ими воспользоваться надо иметь определенные знания, которых как правило у новичка нет и знать немного больше, чем просто о существовании С++  и кроме определения переменных надо бы их описание и как быть тем кто по англицки не читает?

а что такое RRF?

И Памяти бы у контроллера хватило, а так можно и два мльЁна макросов вставить.

прошивка Марлин 1,1,9 уже 96% памяти занимает, раскомментировал #define LIN_ADVANCE и и еще одну переменную уже 99%. А BLtouch подключить, так уже памяти сразу не хватает и надо что-нибудь отключать из того, что было в базовой прошивке и т.д ,

Действуем в условиях очень ограниченных ресурсов. Проблему всегда со всех сторон рассматривать надо, а их, этих сторон у проблемы, как треугольников в сложной модели в stl формате.

16.01.2021 в 21:16
2

https://3dtoday.ru/blogs/xedos/gcode-buns-or-chips/

https://3dtoday.ru/blogs/xedos/gcode-the-basics/

этого мало

тогда берем любой онлайн переводчик и сюда часть кода переведено

RRF - RepRapFirmware вся система кодов храниться на флешке и ограничение только на скок гигов вы флешку воткнете

тем кто по англицки не читает

Я его тоже не знаю только переводчиков вагон


03.02.2021 в 12:21
0

Искал тему или информацию, как без перепрошивки платы и добавления туда удобных макросов по калибровке, откалибровать положение стола. Предполагал, что кто-то, продвинутый в G-кодах, уже написал некий файл, который можно как деталь отправить на печать. После отправки останется только жмакать энкодером для перемещения к следующей точке, попутно елозия бумагой (не туалетной ! ) и крутя барашки. А после 4й точки, если надо, завершить а-ля печать, или пустить весь процесс по кругу заново.

Посмотрел, что предлагает топикастер и начали терзать какие-то смутные сомнения в удобстве использования - четыре файла и каждый отправлять на печать... Нельзя ли это все слепить в один файл и управлять энкодером и ставить принтер на паузу между точками?

PS подозреваю, что меню выхода или цикличности для повтора прогона по точкам, реализовать кодами не получится

03.02.2021 в 12:29
0

Попробовал. Или лето сейчас, или лыжи жиром не смазал...

Запускаю adpoint1_X10_Y10.gcode, в файле возврат в 0 по оси Z присутствует, но Эндер 3V2 по Z в ноль не едет.

И точки как-то крестом расположены. На Sunlu S8 у меня ассистент по периметру голову гоняет.

Вот, нарыл. Отличное решение для такого человека из бронепоезда, как я:

Ассистент калибровки для Ender-3

03.02.2021 в 22:06
0

в точке adpoint1_X10_Y10.gcode первая команда G28 автопарковка. У меня нормально отрабатывает

в одну кучу все лепить не стал, т.к. Если у вас прошивка Марлин. для других прошивок не знаю

1. стиль калибровки у всех свой. я калибрую сначала одну диагональ, затем вторую, так быстрее получается - по периметру дольше.  Сначала гоняю между точками dpoint1_X10_Y10.gcode и adpoint2_X200_Y220.gcode, затем между  точками adpoint3_X200_Y10.gcode и adpoint4_X10_Y220.gcode. потом проверка  по первым двум. Если стол снимал то таких итераций из двух диагоналей 2-3 получается, Если просто подправить калибровку, то и одной хватает.

2. пока не знаю как энкодером можно управлять скриптом, т.е. отправить голову к любой из точек. С задержками в каждой точке мне не нравиться.

Есть два вида калибровки

1. это выставление углов стола в одну плоскость параллельную плоскости, по которой перемещается экструдер. это не обязательно будет (но желательно чтоб была) горизонтальная плоскость.

2. Создание карты неровностей стола.

Этот скрипт для первой калибровки.

03.02.2021 в 22:12
0

в этом скрипте каждая точка это "отдельная печать" энкодером она и вызывается и вы вольны в любую из точек оправить голову, Как научусь это делать в одном скрипте и что бы энкодером выбрать и отправить голову в любую точку из любой точки обязательно напишу об этом

06.02.2021 в 14:09
0

А я сделал проще - залез на сайт Марлина, включил переводчик, попутно немного мозг и через полчаса сделал асисстента на основе программы, ссылку на которую выложил в посте ранее - программа греет стол до нужной мне температуры (как греть еще и сопло, я не разобрался), бегает по 4-м точкам квадратом, в каждой точке задерживается на 10 секунд, потом 3 раза бикает бипером и через 6 сек едет к следующей точке, передвижение через подъем сопла на 10мм. Координаты точек, время задержки на точке, температура и прочее меняются внутри файла. В начале файла оставил оригинальный текст автора программы и ссылку на его программу на Сингервёрсе.

Даже по начальной версии программы мои Эндеры нормально опускались по Z в ноль на первой точке, а по ваше программе они не хотели это делать. Что касается Марлина, есть он в Андрюшках или нет, я к сожалению не знаю.

Программулина у меня выглядит так (для ленящихся елозить башкой по столу вручную):

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

Программа.

;Creator: Tacblades, Remixed by LivingLikeLarry [Kozlowlw], remixed again by McPcholkin

;Licence: Attribution-NonCommercial-ShareAlike CC BY-NC-SA

;Licence Description: This license lets others remix, tweak, and build upon your work non-commercially, as long as they credit you and license their new creations under the identical terms.

;Licence Legal Code: https://creativecommons.org/licenses/by-nc-sa/4.0/legalcode

;

;Script Name: Bed Leveling Code

;Printer Model: Creality Ender 3 220x220x250

;Version Number: 1

M117 Printer Heating Up ;LCD Message

M190 S80 ;Wait for Bed Temp

M300 S440 P200 ;Play Tone

M300 S660 P250 ;Play Tone

M300 S880 P300 ;Play Tone

;Home Machine

M117 Homing Machine ;LCD Message

G21 ;Set to metric

G90 ;Absolute Positioning

G28 X0 Y0 ;Home X and Y

G28 Z0 ;Home Z

;Go to Front Left

M117 Goto Front Left ;LCD Message

G1 Z10 F500 ;Move to Z10, Set move rate to 500

G1 X20 Y30 F3600 ;Move to X20 Y30, Set move rate to 3600

G1 Z0 F500 ;Move to Z0, Set move rate to 500

M117 Adjust Front Left 10s ;LCD Message

G4 S10 ;Wait 10 Seconds (Dwell)

M300 S440 P200 ;Play Tone

M300 S660 P250 ;Play Tone

M300 S880 P300 ;Play Tone

M117 Goto Front Right in 6s ;LCD Message

G4 S5 ;Wait 6 seconds (Dwell)

;Go to Front Right

G1 Z10 F500 ;Move to Z10, Set move rate to 500

G1 X200 Y30 F3600 ;Move to X200 Y33, Set move rate to 3600

G1 Z0 F500 ;Move to Z0, Set move rate to 500

M117 Adjust Front Right 10s ;LCD Message

G4 S10 ;Wait for 10 seconds (Dwell)

M300 S440 P200 ;Play Tone

M300 S660 P250 ;Play Tone

M300 S880 P300 ;Play Tone

M117 Goto Back Right in 6s ;LCD Message

G4 S3 ;Wait 6 seconds (Dwell)

;Go to Back Right

G1 Z10 F500 ;Move to Z10, Set move rate to 500

G1 X200 Y205 F3600 ;Move to X187 Y187, Set move rate to 3600

G1 Z0 F500 ;Move to Z0, Set move rate to 500

M117 Adjust Back Right 10s ;LCD Message

G4 S10 ;Wait 10 seconds (Dwell)

M300 S440 P200 ;Play Tone

M300 S660 P250 ;Play Tone

M300 S880 P300 ;Play Tone

M117 Goto Back Left in 6s ;LCD Message

G4 S3 ;Wait 6 seconds (Dwell)

;Go to Back Left

G1 Z10 F500 ;Move to Z10, Set move rate to 500

G1 X20 Y205 F3600 ;Move to X33 Y187, Set move rate to 3600

G1 Z0 F500 ;Move to Z0, Set move rate to 500

M117 Adjust Back Left 10s ;LCD Message

G4 S10 ;Wait 10 seconds (Dwell)

M300 S440 P200 ;Play Tone

M300 S660 P250 ;Play Tone

M300 S880 P300 ;Play Tone

M117 Goto Middle in 6s ;LCD Message

G4 S3 ;Wait 6 seconds (Dwell)

;End sequence

G90 ;Absolute positioning

G1 Z30 ;Move to Z30

G1 X20 Y20 F9000 ;Move to X20 Y20, Set move rate to 9000

M117 Finished ;LCD Message

M84 ;Disable Steppers

Для написания комментариев, пожалуйста, авторизуйтесь.

Читайте в блогах

Король зимнего водопада

Пухля копилка

Чарующий музыкальный механизм

Чем отличаются 3D принтеры? Характеристики, которые не публикуют в интернете.

АКМ и ТТ

Модель бульдозера ДЗ-42г на базе трактора ДТ-75. Часть 2