Технический форум по робототехнике.
whale » 23 авг 2013, 16:07
Хочу написать транслятор G кодов в lpt для 3d принтера,вопрос есть такие команды
G1 X-30.72 Y-18.79 Z0.5 E0 F210 // тут я так понимаю идем на эти координаты со скоростью F210
G1 E1.25 // дошли до предыдущих координат включили подачу прутка
а вот тут непонятно через какое время выполнять следующую строку ?
какой тут интервал ?
G1 X-34.15 Y-22.24 E0.2148
также скорость F задается для всех координат одна, те на заданные координаты x y z головка должна придти одновременно или подача по Z как то описывается отдельно ?
Последний раз редактировалось
whale 23 авг 2013, 17:17, всего редактировалось 2 раз(а).
hudbrog » 23 авг 2013, 16:11
1) не совсем, зависит от текущего режима. G90/G91 выставляют относительное или абсолютное позициониирование, так что первая ваша строка может быть как смещением на -30, -18 относительно текущей позиции, так и переходом к этим координатам
2) никаких интервалов нет. следующая строка выполняется сразу после предыдущей, чем быстрее, тем лучше =)
3) по третьей строке - будет одновременное выдавливание прутка и перемещение.
whale » 23 авг 2013, 16:14
перемещения абсолютны.
Что значит чем быстрее тем лучше ?
Я так понимаю должна выполниться предыдущая команда иначе куда их пихать эти команды ?
тогда команда
G1 E1.25
не имеет смысла тк она сразу становиться равной E0.2148
G1 X-34.15 Y-22.24 E0.2148
hudbrog » 23 авг 2013, 19:33
Каждая следующая строка должна начать выполняться сразу как только полностью выполнилась предыдущая.
Про эти две строки:
G1 E1.25
G1 X-34.15 Y-22.24 E0.2148
Опять, зависит от того, абсолютное или относительное позиционирование 4й оси используется (M82/M83). Если стоит относительное - то эти две строки вполне логичны. Да в общем-то даже если и абсолютное - какая разница.
TedBeer » 23 авг 2013, 20:11
whale писал(а):Что значит чем быстрее тем лучше ?
Я так понимаю должна выполниться предыдущая команда иначе куда их пихать эти команды ?
тогда команда
G1 E1.25
не имеет смысла тк она сразу становиться равной E0.2148
Читать нужно стандарты, если непонятно, то смотрите реализацию команд в сорцах фирмвари, например в Марлине/Спринтере.
А так, выдергивать кусок gcode из файла и приписывать ему смысл, которого там без контекста нет, совершенно бесполезное занятие.
Вы даже не знаете, что происходит в том куске, что вы привели, что предполагалось делать - печать периметра? ретракт? очистка сопла? прогон пластика до нового цвета? генерация мелодии моторами и механикой? два экструдера или один?
baru » 23 авг 2013, 23:44
whale писал(а):перемещения абсолютны.
тогда команда
G1 E1.25
не имеет смысла тк она сразу становиться равной E0.2148
G1 X-34.15 Y-22.24 E0.2148
переход к следующей по выполнению
давит 1,25 и переходит дальше
whale писал(а):также скорость F задается для всех координат одна, те на заданные координаты x y z головка должна придти одновременно или подача по Z как то описывается отдельно ?
z отдельной командой, просто потому, что печатаем слоями, поменяли слой, и дальше X-Y работают. А так да, все три указать, одновременно придут.
whale » 24 авг 2013, 21:08
Похоже я понял в чем дело, я думал E это скорость а наверно это перемещение,
тогда все логично.
Еще F30000 это типа на всех парах едем к заданной точке ?
; 'Support Interface', 0.4 [feed mm/s], 10.0 [head mm/s]
G1 X30.72 Y-18.79 Z0.75 E0.63 F30000
G1 X-30.72 Y-18.79 Z0.5 E0 F210
G1 E1.25
G1 X-34.15 Y-22.24 E0.2148
G1 X-33.96 Y-22.59 E0.0179
G1 X-33.79 Y-23.29 E0.0317
G1 X-27.9 Y-17.38 E0.3692
baru » 24 авг 2013, 22:12
whale писал(а):так он давит 1,25 а потом сразу 0,21 я вот это не пойму )
Он выдавить 1,25 не успеет ничего, какой смысл в это команде если на нее не отводится времени ?
Может между строками все таки есть какая то минимальная задержка ?
Файл генерировал KISSlicer
; 'Support Interface', 0.4 [feed mm/s], 10.0 [head mm/s]
G1 X30.72 Y-18.79 Z0.75 E0.63 F30000
G1 X-30.72 Y-18.79 Z0.5 E0 F210
G1 E1.25
G1 X-34.15 Y-22.24 E0.2148
G1 X-33.96 Y-22.59 E0.0179
G1 X-33.79 Y-23.29 E0.0317
G1 X-27.9 Y-17.38 E0.3692
ё-моё, написал вам развернутый ответ, да форум знаки больше-меньше не пропускает и всё пропало. В двух словах так, ваш подход, насколько я его понял, принципиально не верен. Контроллер не считает задержки между командами, а следит за их исполнением, пока заданное командой количество шагов не отработал, к следующей не приступает.
whale » 25 авг 2013, 02:48
Так я и говорил что сначала ждем исполнения команды а потом уже читаем следующую.
Так это, E это перемещение в мм давилки ?
Добавлено спустя 5 минут 14 секунд:
Чета меня тута банять по ip
setar » 25 авг 2013, 02:50
E это координата абсолютная прутка
если нам нужно продавить 1 мм мы увеличиваем на это значение текущее положение.
когда цифра становится большой то принудительно сбрасываем положение командой G92 E0
Добавлено спустя 1 минуту 5 секунд:
никто тебя банить не может кроме паблик блек листов (не попадай туда)
whale » 25 авг 2013, 02:52
"паблик блек лист"
а что это за беда такая ?
Вроде с кодами ясно, тут еще ошибка вылетает, кто нить на Buildere прогает ?
setar » 25 авг 2013, 02:54
whale » 25 авг 2013, 02:57
странно, ниче не делал, правда )
hudbrog » 25 авг 2013, 04:57
setar писал(а):E это координата абсолютная прутка
Ну все же не обязательно. Часто очень даже относительная =)
setar » 25 авг 2013, 15:26
![Smile :)](http://roboforum.ru/images/smilies/smile.gif)
относительно нуля ? который мы где хотим там и ставим
Ну да, можно и так сказать