roboforum.ru

Технический форум по робототехнике.

G code, помогите определить координаты каретки

Обсуждение технологии печати на 3D принтерах. Самостоятельное изготовление и приобретение. RepRap и его последователи.

G code, помогите определить координаты каретки

Сообщение Начинающий » 24 июн 2017, 13:16

Приветствую всех.
Мой вопрос как вы из названия уже поняли касается G кода, а именно мне необходимо узнать в каких системных переменных принтер хранит данные о текущем местоположении печатающей каретки по осям x,y,z. Пробывал уже использовать из общедоступных источников о G-code переменные с номерами #5001,#5021,#5041,для x и #5002, #5021, #5041 для y, безрезультатно.
Сразу отвечу зачем мне это нужно, я просто хочу на своем принтере использовать скрипт, по которому в нужный момент можно будет отвести печатающую каретку в сторону, сделать паузу секунд на 100 и допустим вставить в печатаемую деталь гайку, после чего вернуть каретку на место и подав леску на 1мм, затем продолжить печать. Дело в том, что все идет гладко, но только до места где нужно вернуть каретку на место, потому что когда скрипт берет значения из вышеперечисленных переменных, каретка едет не на место, а по x в ноль, ну а по y стремится куда то за пределы оси y.
Если кто в курсе напишите плиз как узнать координаты, пока что только нашел команды M114, которая в хост возвращает требуемые значения, и поэтому не подходит, ибо неудобно, и команду G60: save current position to slot, которая сохраняет текущую позицию в слот, но не понятно в каких координатах и что подразумевается под слотом, а также как пишут авторы wiki хз для каких принтеров она подходит :roll: .
Принтер TevoTarantula
Прошивка Marlin 1.1.9
Слайсер Slic3r/PrusaSlicer
Пластик ABS
Начинающий
 
Сообщения: 433
Зарегистрирован: 08 апр 2017, 21:49

Re: G code, помогите определить координаты каретки

Сообщение Myp » 24 июн 2017, 13:21

принтер не знает текущие координаты, он лишь двигает голову туда куда скажут, сказали на сантиметр влево - туда и подвинул.
каждая новая линия рисуется относительно предыдущей, Гкод командует куда сдвинуть голову относительно предыдущего положения.

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

ну так и делай как хочешь
в нужном месте ставь паузу и отводи голову куда хочешь, потом продолжай печать.
<telepathmode>На вопросы отвечает Бригадир Телепатов!</telepathmode>
Всё уже придумано до нас!
Аватара пользователя
Myp
скрытый хозяин вселенной :)
 
Сообщения: 18018
Зарегистрирован: 18 сен 2006, 12:26
Откуда: Тверь по прозвищу Дверь
прог. языки: псевдокод =) сила в алгоритме!
ФИО: глубокоуважаемый Фёдор Анатольевич

Re: G code, помогите определить координаты каретки

Сообщение Начинающий » 24 июн 2017, 13:27

Паузу то конечно поставлю)) но вот беда, для того чтоб потом вернуть потом обратно именно в то место каретку и продолжить печать, нужно знать координаты, которые хочу сохранить в локальных переменных и на автомате потом чтоб все само собой продолжалось, а не ручками вводить в другом скрипте, после чего возвращать, т.к. это не есть удобно и не есть быстро)). потому и нужно узнать в каких системных переменных принтер держит координаты, чтоб был не полуавтомат так сказать а именно автоматически чтоб скрипт все сам делал, без моего участия.
есть даже команда той же паузы, для G кода, но она как я понял только для печати с SD, которая меня почему то не воспринимает и файлы которые я в нее пытаюсь загрузить не сохраняет, наверно бракованную прислали, т.к. шла вместе с принтером.
Принтер TevoTarantula
Прошивка Marlin 1.1.9
Слайсер Slic3r/PrusaSlicer
Пластик ABS
Начинающий
 
Сообщения: 433
Зарегистрирован: 08 апр 2017, 21:49

Re: G code, помогите определить координаты каретки

Сообщение Zusul86 » 24 июн 2017, 15:22

Вроде у большинства слайсеры настроены генерировать G код в абсолютных координатах. Соответственно пока принтер голову двигает сам (ноль начальной системы координат не сбивается) в нужную точку каретка возвращается сама, независимо от того куда ее увел принтер. Если вы сбили рукой каретку то жмете идти в ноль xy (у большинства хоумиться по z не позволит отпечатанное) и просто продолжаете печатать.
Zusul86
 
Сообщения: 775
Зарегистрирован: 10 авг 2014, 15:02
Откуда: Саров

Re: G code, помогите определить координаты каретки

Сообщение Myp » 24 июн 2017, 18:22

Начинающий писал(а):чтоб потом вернуть потом обратно именно в то место каретку и продолжить печать, нужно знать координаты,

блин, да не нужно
если ты отодвинешь каретку на +58 мм по X и +35 мм по Y, то чтобы вернуться в тоже самое место, тебе надо подвинуть каретку на -58 мм по X и -35 мм по Y
скока сдвинул вначале паузы, стока же сдвигаешь обратно в конце, но со знаком минус.
каретка возвращается в ту же точку и спокойно продолжаешь печатать.
<telepathmode>На вопросы отвечает Бригадир Телепатов!</telepathmode>
Всё уже придумано до нас!
Аватара пользователя
Myp
скрытый хозяин вселенной :)
 
Сообщения: 18018
Зарегистрирован: 18 сен 2006, 12:26
Откуда: Тверь по прозвищу Дверь
прог. языки: псевдокод =) сила в алгоритме!
ФИО: глубокоуважаемый Фёдор Анатольевич

Re: G code, помогите определить координаты каретки

Сообщение Начинающий » 25 июн 2017, 12:19

Zusul86 писал(а):Если вы сбили рукой каретку то жмете идти в ноль xy (у большинства хоумиться по z не позволит отпечатанное) и просто продолжаете печатать.


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

Мур писал(а):если ты отодвинешь каретку на +58 мм по X и +35 мм по Y, то чтобы вернуться в тоже самое место, тебе надо подвинуть каретку на -58 мм по X и -35 мм по Y скока сдвинул вначале паузы, стока же сдвигаешь обратно в конце, но со знаком минус.


Если отталкиваться от того что писал товарищ выше, то я понимаю что то что вы пишете возможно только в случае если принтер работает с относительными координатами, а у него работа идет по абсолютным. И второй момент, печатаются как правило детали разного размера и размещаются, абы как настоле, ну у меня во всяком случае))). И если исходить из этого, то получается что если делать так как вы говорите, то при условии что край детали будет в 25 единицах от края стола, а я попытаюсь увести его на 50 единиц допустим, то принтер начнет ломать сам себя, а мне этого очень не хочется, что кстати говоря у меня сейчас и происходит с осью Y когда я пытаюсь использовать системные переменные описанные в моем первом посте(((.


:beer:
Принтер TevoTarantula
Прошивка Marlin 1.1.9
Слайсер Slic3r/PrusaSlicer
Пластик ABS
Начинающий
 
Сообщения: 433
Зарегистрирован: 08 апр 2017, 21:49

Re: G code, помогите определить координаты каретки

Сообщение Alexus12 » 25 июн 2017, 13:42

Так не отводите каретку по осям ХУ, а просто опустите стол на 50 мм. Потом обратно поднимите и начнете дальше печатать.
Noname + Arduino + RAMPS 1.4 + Marlin (не понравился)
Noname (CoreXY) + Duet2 WiFi v1.03 (MKS Clone) + 4 x (E3D V6 1,75 мм (боуден)) ToolChanger (в процессе эксплуатации)
Alexus12
 
Сообщения: 1132
Зарегистрирован: 18 дек 2014, 01:43

Re: G code, помогите определить координаты каретки

Сообщение sergey2x » 25 июн 2017, 16:02

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


Как принтеру укажешь, так он и будет работать, переключается командами
G90: Set to Absolute Positioning
G91: Set to Relative Positioning
Текущие координаты принтер естественно знает.
Пример:
g28 x0 ; x = 0
g91
g1 x10 ; x = 10
g1 x10 ; x = 20
g1 x10 ; x = 30
g1 x10 ; x = 40
g1 x10 ; x = 50
g1 x10 ; x = 60
g90
g1 x10 ; x = 10

Добавлено спустя 9 минут 56 секунд:
Посмотри в сторону M600 - пауза для замены филамента (если прошивка marlin).
Отводит голову в начало координат, после возвращает в точку печати.
Но там пруток туда-сюда дёргается... можно попробовать отключить в Configuration_adv.h в секции #if ENABLED(ADVANCED_PAUSE_FEATURE)
sergey2x
 
Сообщения: 235
Зарегистрирован: 14 янв 2015, 16:18
Откуда: СПб

Re: G code, помогите определить координаты каретки

Сообщение Начинающий » 25 июн 2017, 21:36

Alexus12 писал(а):Так не отводите каретку по осям ХУ, а просто опустите стол на 50 мм. Потом обратно поднимите и начнете дальше печатать.


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

sergey2x:

нее M600 как я понял из описания только фигачит в начало координат по заданным параметрам команды и делает или не делает ретракт перед этим и после этого, а потом сам как хош, так что думаю не подойдет. А вот команды G91 и G90 как раз подойдут если делать то что писали в предидущем посте, также во время паузы можно будет хрюкнуть командой M300, для сигнализации того что пауза скоро закончится. Также все еще смотрю в сторону команды G60, как мне кажется с теми параметрами что она сохраняет работает команда G61, но опять же неизвестно для каких они прошивок.
В моем случае я думаю что прошивка всетаки Marlin т.к. принтер tevo tarantula.
Принтер TevoTarantula
Прошивка Marlin 1.1.9
Слайсер Slic3r/PrusaSlicer
Пластик ABS
Начинающий
 
Сообщения: 433
Зарегистрирован: 08 апр 2017, 21:49

Re: G code, помогите определить координаты каретки

Сообщение Zusul86 » 25 июн 2017, 23:13

Начинающий писал(а):Даже если предположить что скрипт будет тупо уводить каретку в сторону, после чего я буду выставлять положение home по x, y, то в этом случае координаты то сбиваются по любому и продолжить печать он не сможет.
Придя в home по x, y принтер примет текущее положение за 0. Если G-code в абсолютной системе координат: ему будет плевать на то что он делал до этого, так как в команде уже содержится нужная координата и принтер из 0 туда сам пойдет. Наверняка можно не "тупо уводить каретку", а сразу гнать ее в home по x, y.
Zusul86
 
Сообщения: 775
Зарегистрирован: 10 авг 2014, 15:02
Откуда: Саров

Re: G code, помогите определить координаты каретки

Сообщение Начинающий » 26 июн 2017, 07:50

Zusul86
извините не сразу понял что вы имеете ввиду, но сейчас посмотрел G-code генерируемый слайсером и понял, что все так как вы пишете, там действительно выставленны последующие координаты движения в абсолютной системе координат и получается что я смогу нажав на паузув нужном месте, каретку увести куда мне нужно, после чего перевести все в относительную систему координат и поднять скажем на 50 по z, после чего сделать все что нужно и опустить на 50, затем перевести обратно в абсолютную систему координат, немного экструдировать пластика, чтоб заполнить экструдер, после чего снова нажать на паузу и печать продолжится.
:beer:
Принтер TevoTarantula
Прошивка Marlin 1.1.9
Слайсер Slic3r/PrusaSlicer
Пластик ABS
Начинающий
 
Сообщения: 433
Зарегистрирован: 08 апр 2017, 21:49

Re: G code, помогите определить координаты каретки

Сообщение sergey2x » 26 июн 2017, 10:35

Начинающий писал(а):нее M600 как я понял из описания только фигачит в начало координат по заданным параметрам команды и делает или не делает ретракт перед этим и после этого, а потом сам как хош, так что думаю не подойдет.

Я проверял - возвращается.
Начинающий писал(а):Также все еще смотрю в сторону команды G60, как мне кажется с теми параметрами что она сохраняет работает команда G61, но опять же неизвестно для каких они прошивок.

Вот здесь всё расписано: http://reprap.org/wiki/G-code
G60 работает в прошивке MK4duo.
sergey2x
 
Сообщения: 235
Зарегистрирован: 14 янв 2015, 16:18
Откуда: СПб

Re: G code, помогите определить координаты каретки

Сообщение Myp » 26 июн 2017, 11:11

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

Добавлено спустя 7 минут 18 секунд:
Начинающий писал(а):при условии что край детали будет в 25 единицах от края стола, а я попытаюсь увести его на 50 единиц допустим, то принтер начнет ломать сам себя

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

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

вот статья про паузу в марлине: http://www.akeric.com/blog/?p=3473
и в репитере: http://www.akeric.com/blog/?p=3854
<telepathmode>На вопросы отвечает Бригадир Телепатов!</telepathmode>
Всё уже придумано до нас!
Аватара пользователя
Myp
скрытый хозяин вселенной :)
 
Сообщения: 18018
Зарегистрирован: 18 сен 2006, 12:26
Откуда: Тверь по прозвищу Дверь
прог. языки: псевдокод =) сила в алгоритме!
ФИО: глубокоуважаемый Фёдор Анатольевич

Re: G code, помогите определить координаты каретки

Сообщение Начинающий » 26 июн 2017, 19:27

Мур

Прошивка скорее всего Marlin, т.к. принтер tevo tarantula.
Программа для печати repetier.

Прошивку трогать не буду, за то что подсказали о возможных смещениях при переходе в хоум спасибо, собственно я в хоум идти и не собирался, а хотел остановить каретку где то x10 y50, и по z поднять на 50. Статьи прочитал, как понял там то же самое что вы мне в двух словах написали, только по английски, правда узнал полезную весчъ что для включения паузы в G-code для марлина используют M0, за это отдельное спасибо, и получается что если скрипт начинать с этой команды то в первом нажатии на кнопку паузы надобность отпадает, а дальше все будет так как я хочу))), после чего остается нажать на кнопку паузы и печать продолжится.

Можно конечно как у автора статьи вычислить нужный слой в G-code, с учетом того что repetier показывает модель послойно. узнать номер слоя не сложно, а дальше просто открывается G-code нарезанный репитиером и по ctrl+f ищем нужное количество раз изменение по z, после чего вставляем нужный нам кусок кода в нужное место и делаем так чтоб принтер когда дойдет раз пять протяжно хрюкнул, делаем свое черное дело и запускаем программу снова кнопкой паузы. Я так температурную башню делал )).

Подскажите пожалуйста какие настройки в слайсере Slic3r нужно выставить, чтоб поддержки хотябы на 1мм отстояли от модели по периметру? А то начал осваивать печать с поддержками и пока не особо вкуриваю. :pardon:
Принтер TevoTarantula
Прошивка Marlin 1.1.9
Слайсер Slic3r/PrusaSlicer
Пластик ABS
Начинающий
 
Сообщения: 433
Зарегистрирован: 08 апр 2017, 21:49

Re: G code, помогите определить координаты каретки

Сообщение Начинающий » 27 июн 2017, 08:04

sergey2x писал(а):Вот здесь всё расписано: http://reprap.org/wiki/G-code...


Как бы спасибо за ссылку, я как раз там и смотрю описание всех команд и как я понял авторы там просто не в курсе работают они с марлин или нет, либо имеется ввиду вариант кому как повезет с прошивкой.
Принтер TevoTarantula
Прошивка Marlin 1.1.9
Слайсер Slic3r/PrusaSlicer
Пластик ABS
Начинающий
 
Сообщения: 433
Зарегистрирован: 08 апр 2017, 21:49


Вернуться в 3D печать

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 28