Graffiti-cnc Треугольная система координат
- DMexico
- Опытный
- Сообщения: 149
- Зарегистрирован: 13 мар 2010, 21:39
- Репутация: 7
- Откуда: Киев
- Контактная информация:
Re: Треугольная система координат
Ну что тут можно сказать? Быстро все получилось.
Просмотрел я код в Gedit (с подсветкой синтаксиса, конечно). Вроде как действительно прямые рисует короткими отрезками. По координатам сложно сказать прямые ли... Мозги к такой системе координат не привыкли. И это радует!
Новую ревизию можно брать в ее постоянном месте?
Просмотрел я код в Gedit (с подсветкой синтаксиса, конечно). Вроде как действительно прямые рисует короткими отрезками. По координатам сложно сказать прямые ли... Мозги к такой системе координат не привыкли. И это радует!
Новую ревизию можно брать в ее постоянном месте?
Мнение автора может не совпадать с мнением редакции
- DMexico
- Опытный
- Сообщения: 149
- Зарегистрирован: 13 мар 2010, 21:39
- Репутация: 7
- Откуда: Киев
- Контактная информация:
Re: Треугольная система координат
Мнение автора может не совпадать с мнением редакции
- Nick
- Мастер
- Сообщения: 22776
- Зарегистрирован: 23 ноя 2009, 16:45
- Репутация: 1735
- Заслуга: Developer
- Откуда: Gatchina, Saint-Petersburg distr., Russia
- Контактная информация:
Re: Треугольная система координат
Хммм на счет того, что нет ни одного угла... В принципе можно изначально разбить кривую на несколько частей. и делать входы и выходы...
На счет отсутствия мотка - с одной стороны хорошо, с другой стороны в этом случае трос должен постоянно скользить вдоль управляющего шкива, что не очень хорошо. можно сделать достаточно большие катушки и привод к ним через понижающую передачу. по идее при диаметре катушки 15 см, 100 метровый трос сделает около 200 оборотов, если ширина катушки будет скажем 3 см, то трос толщиной 0.3мм (держит 18кг на разрыв) сможет сделать около 100 оборотов. Итого получается что он сможет лечь всего в два слоя, т.е. разница диаметров всего 0,6мм. Что ничтожно мало при таких длинах шнура.
Да, новая ревизия там же - на https://code.launchpad.net/~gcodetools. ... s/develope либо bzr branch lp:gcodetools
скачайте и запустите python create_inx.py и скопирйте все получившиеся файлы в /usr/share/inkscape/extensions/ либо создайте ссылки на ниx в этой директории.
На счет отсутствия мотка - с одной стороны хорошо, с другой стороны в этом случае трос должен постоянно скользить вдоль управляющего шкива, что не очень хорошо. можно сделать достаточно большие катушки и привод к ним через понижающую передачу. по идее при диаметре катушки 15 см, 100 метровый трос сделает около 200 оборотов, если ширина катушки будет скажем 3 см, то трос толщиной 0.3мм (держит 18кг на разрыв) сможет сделать около 100 оборотов. Итого получается что он сможет лечь всего в два слоя, т.е. разница диаметров всего 0,6мм. Что ничтожно мало при таких длинах шнура.
Да, новая ревизия там же - на https://code.launchpad.net/~gcodetools. ... s/develope либо bzr branch lp:gcodetools
скачайте и запустите python create_inx.py и скопирйте все получившиеся файлы в /usr/share/inkscape/extensions/ либо создайте ссылки на ниx в этой директории.
- DMexico
- Опытный
- Сообщения: 149
- Зарегистрирован: 13 мар 2010, 21:39
- Репутация: 7
- Откуда: Киев
- Контактная информация:
Re: Треугольная система координат
Вот официальный сайт создателей устройства http://hektor.ch/
Документ в .pdf оттуда же.
А вот сайт плагина Scriptographer для Adobe Illustrator, который создатели устройства использовали для того, чтобы написать свой java скрипт обработки изображения. http://scriptographer.org/
Вот сам их скрипт обработки рисунка - не нашел пока.
С рабочими траекториями все ясно, а вот холостые траектории не похожи на стандартные в DXF и G-code.
Холостые идут НЕ по кратчайшей прямой к новому объекту или узлу, а с одинаковой скоростью и по плавной траектории. Прямо как самолет на посадку по глиссаде. Плавно спускается и начинает рисовать шасси на посадочной полосе. Или еще можно сравнить с полетом пчелы.
Думаю этим и достигается спокойствие спрей-блока.
Надо думать над алгоритмом холостых перемещений.
Документ в .pdf оттуда же.
А вот сайт плагина Scriptographer для Adobe Illustrator, который создатели устройства использовали для того, чтобы написать свой java скрипт обработки изображения. http://scriptographer.org/
Вот сам их скрипт обработки рисунка - не нашел пока.
С рабочими траекториями все ясно, а вот холостые траектории не похожи на стандартные в DXF и G-code.
Холостые идут НЕ по кратчайшей прямой к новому объекту или узлу, а с одинаковой скоростью и по плавной траектории. Прямо как самолет на посадку по глиссаде. Плавно спускается и начинает рисовать шасси на посадочной полосе. Или еще можно сравнить с полетом пчелы.
Думаю этим и достигается спокойствие спрей-блока.
Надо думать над алгоритмом холостых перемещений.
Мнение автора может не совпадать с мнением редакции
- DMexico
- Опытный
- Сообщения: 149
- Зарегистрирован: 13 мар 2010, 21:39
- Репутация: 7
- Откуда: Киев
- Контактная информация:
Re: Треугольная система координат
Что мы можем заметить в этой схеме, чтобы употребить для алгоритма?
1. На подходе к "углам" знает, что нужно оторваться в угловой точке
2. Запоминает точку отрыва
3. Запоминает направление следующего вектора
4. Отрывается "в углу"
5. Продолжает движение в том же направлении, плавно переходя в петлю
6. Петля образовывается таким образом, чтобы постепенно перейти в точку отрыва в направлении, совпадающем с направлением следующего вектора.
7. Приземляется в запомненной точке отрыва
8. Рисует до следующего угла.
Радиусы петель бывают разные. Видимо для экономии.
И НИ ОДНОГО РЕЗКОГО ДВИЖЕНИЯ!
1. На подходе к "углам" знает, что нужно оторваться в угловой точке
2. Запоминает точку отрыва
3. Запоминает направление следующего вектора
4. Отрывается "в углу"
5. Продолжает движение в том же направлении, плавно переходя в петлю
6. Петля образовывается таким образом, чтобы постепенно перейти в точку отрыва в направлении, совпадающем с направлением следующего вектора.
7. Приземляется в запомненной точке отрыва
8. Рисует до следующего угла.
Радиусы петель бывают разные. Видимо для экономии.
И НИ ОДНОГО РЕЗКОГО ДВИЖЕНИЯ!
Мнение автора может не совпадать с мнением редакции
- DMexico
- Опытный
- Сообщения: 149
- Зарегистрирован: 13 мар 2010, 21:39
- Репутация: 7
- Откуда: Киев
- Контактная информация:
Re: Треугольная система координат
Есть в G-code tools блок, который занимается вычислением холостого хода?
Хочу попробовать его сам. Каким из редакторов кода лучше воспользоваться?
Вы лично в каком работаете?
Хочу попробовать его сам. Каким из редакторов кода лучше воспользоваться?
Вы лично в каком работаете?
Мнение автора может не совпадать с мнением редакции
- Nick
- Мастер
- Сообщения: 22776
- Зарегистрирован: 23 ноя 2009, 16:45
- Репутация: 1735
- Заслуга: Developer
- Откуда: Gatchina, Saint-Petersburg distr., Russia
- Контактная информация:
Re: Треугольная система координат
Извиняюсь, что долго не отвечал в субботу был на свадьбе и все воскресенье отходил от этого
.
Я пользуюсь Gedit'ом.
В нем у меня включены опции:
Показывать номера строк
Подсвечивать текущую строку
Подсвечивать соответствующие скобки
Включен автоматический отступ
И выключен перенос строки.
Также я дополнительно поставил модуль замены по регулярному выражению, хотя последнее время им не пользуюсь.
Собственно холостой проход выполняется в строчке 4651-4653.
Но начать имхо нужно с дополнительного разбиения кривой. Для начала нужно определить точки в которых нужно разбиение.
У кривых есть характеристика кривизны (curvature), в тех точках где кривизна больше определенного значения, разбиваем кривую. Также разбиваем во всех острых углах. Но что делать с теми участками где на всем протяжении кривизна большая?
Сейчас присоединю картинку чтобы было понятно.
Я пользуюсь Gedit'ом.
В нем у меня включены опции:
Показывать номера строк
Подсвечивать текущую строку
Подсвечивать соответствующие скобки
Включен автоматический отступ
И выключен перенос строки.
Также я дополнительно поставил модуль замены по регулярному выражению, хотя последнее время им не пользуюсь.
Собственно холостой проход выполняется в строчке 4651-4653.
Но начать имхо нужно с дополнительного разбиения кривой. Для начала нужно определить точки в которых нужно разбиение.
У кривых есть характеристика кривизны (curvature), в тех точках где кривизна больше определенного значения, разбиваем кривую. Также разбиваем во всех острых углах. Но что делать с теми участками где на всем протяжении кривизна большая?
Сейчас присоединю картинку чтобы было понятно.
- Nick
- Мастер
- Сообщения: 22776
- Зарегистрирован: 23 ноя 2009, 16:45
- Репутация: 1735
- Заслуга: Developer
- Откуда: Gatchina, Saint-Petersburg distr., Russia
- Контактная информация:
Re: Треугольная система координат
Вот иллюстрация
- DMexico
- Опытный
- Сообщения: 149
- Зарегистрирован: 13 мар 2010, 21:39
- Репутация: 7
- Откуда: Киев
- Контактная информация:
Re: Треугольная система координат
Отвечаю мимолетом, потому что спешу на "вылет".
Я понял и без рисунка. Почитайте брошюрку в .pdf. Именно почитайте. Из нее понятно что, достаточно прерываться только в углах. Острых, тупых, прямых... Да и по схемам траекторий видно, что нигде нет выходов и входов в кривые, через "петлю". Даже "малорадиусные" кривые обрабатываются цельно.
Так что можно над этим особо не задумываться.
А вот момент о постоянной линейной скорости спрея - вот где интересно!!!
Разница в линейной скорости перемещений вверху и внизу рисунка - вот где песня программинга!
Там - на пересечении физики и математики! Линейных и угловых скоростей!
В верхней части рисунка линейная скорость спрея быстрее (при постоянной угловой движков).
Я уже пишу программку, которая создает двумерный массив 1000х1000, задавая каждому значению массива, значение равное сумме гипотенуз (радиусов). Потом из этого массива создается пиксельная матрица в градациях серого. Очень мне хочется увидеть это ч.б. "фото"! Формулы потом пригодятся для задания скоростей движков, в зависимости от точки, где находится спрей.
Сдается мне, что только с параметрическим кодом все будет работать. Ведь в разных частях рисунка скорости движков должны быть разные. Какие именно - будет ясно из массива.
Если в G-кодах параметр задающий скорость вращения движков? Даже если нет, то можно решить этот момент задержками, между шагами. Задержки между шагами привязать к сумме длин радиусов. Пока еще не чувствую через какую именно зависимость. Явно только, что не линейную.
Логично?
Я понял и без рисунка. Почитайте брошюрку в .pdf. Именно почитайте. Из нее понятно что, достаточно прерываться только в углах. Острых, тупых, прямых... Да и по схемам траекторий видно, что нигде нет выходов и входов в кривые, через "петлю". Даже "малорадиусные" кривые обрабатываются цельно.
Так что можно над этим особо не задумываться.
А вот момент о постоянной линейной скорости спрея - вот где интересно!!!
Разница в линейной скорости перемещений вверху и внизу рисунка - вот где песня программинга!
Там - на пересечении физики и математики! Линейных и угловых скоростей!
В верхней части рисунка линейная скорость спрея быстрее (при постоянной угловой движков).
Я уже пишу программку, которая создает двумерный массив 1000х1000, задавая каждому значению массива, значение равное сумме гипотенуз (радиусов). Потом из этого массива создается пиксельная матрица в градациях серого. Очень мне хочется увидеть это ч.б. "фото"! Формулы потом пригодятся для задания скоростей движков, в зависимости от точки, где находится спрей.
Сдается мне, что только с параметрическим кодом все будет работать. Ведь в разных частях рисунка скорости движков должны быть разные. Какие именно - будет ясно из массива.
Если в G-кодах параметр задающий скорость вращения движков? Даже если нет, то можно решить этот момент задержками, между шагами. Задержки между шагами привязать к сумме длин радиусов. Пока еще не чувствую через какую именно зависимость. Явно только, что не линейную.
Логично?
Мнение автора может не совпадать с мнением редакции
- Nick
- Мастер
- Сообщения: 22776
- Зарегистрирован: 23 ноя 2009, 16:45
- Репутация: 1735
- Заслуга: Developer
- Откуда: Gatchina, Saint-Petersburg distr., Russia
- Контактная информация:
Re: Треугольная система координат
Хе-хе, а вы не заметили, что в приложенном мной Gcode в каждой строчке стоит F с разными величинами - это и есть скорость перемещения, она вычисляется автоматически в зависимости от положения баллончика.
Фактически G01 - в прямых координатах это отрезок AB, предположим, что в треугольных координатах этот отрезок переходит в A1B1. Тогда для сохранения постоянной линейной скорости необходимо двигаться со скоростью Feed = Feed1*|AB|/|A1B1|, где Feed1 - желаемая скорость, а |AB| и |A1B1| - длины отрезков.
Эх... нужно написать просмоторщик...
Фактически G01 - в прямых координатах это отрезок AB, предположим, что в треугольных координатах этот отрезок переходит в A1B1. Тогда для сохранения постоянной линейной скорости необходимо двигаться со скоростью Feed = Feed1*|AB|/|A1B1|, где Feed1 - желаемая скорость, а |AB| и |A1B1| - длины отрезков.
Эх... нужно написать просмоторщик...
- DMexico
- Опытный
- Сообщения: 149
- Зарегистрирован: 13 мар 2010, 21:39
- Репутация: 7
- Откуда: Киев
- Контактная информация:
Re: Треугольная система координат
Думал, что нельзя пренебрегать и реактивным моментом по оси Z в разных частях рисунка, но швейцарцы на этот счет молчат в своей брошюрке. Странно... Но видимо этим можно пренебречь на этих длинах радиусов и с этой массой баллона, которая тоже кстати меняется в зависимости от расхода краски. Видимо уравнивается. В начале баллона больше давление, но и краски полон. В конце - меньше давление, но и краски меньше.
Ну что делать?...
Видимо, можно пренебречь...
Ну что делать?...
Мнение автора может не совпадать с мнением редакции
- DMexico
- Опытный
- Сообщения: 149
- Зарегистрирован: 13 мар 2010, 21:39
- Репутация: 7
- Откуда: Киев
- Контактная информация:
Re: Треугольная система координат
Вот это да! Я то думал... ЧТО ЭТО ЗА ТРЕТИЙ ПАРАМЕТР?
Значит такая простая линейная зависимость?
Надо учить G-коды... Вот молодец! Уже все продумано, оказывается!
Я в приятном шоке!
Значит такая простая линейная зависимость?
Надо учить G-коды... Вот молодец! Уже все продумано, оказывается!
Я в приятном шоке!
Мнение автора может не совпадать с мнением редакции
- Nick
- Мастер
- Сообщения: 22776
- Зарегистрирован: 23 ноя 2009, 16:45
- Репутация: 1735
- Заслуга: Developer
- Откуда: Gatchina, Saint-Petersburg distr., Russia
- Контактная информация:
Re: Треугольная система координат
Ну она конечно не такая простая, но в пределе она будет именно такой. Таким образом, чем меньше мы выберем начальное дробление кривой, тем точнее получим рисунок.
А что сильный момент от баллончика получается? А при разном количестве краски толщина рисунка не изменится?
А что сильный момент от баллончика получается? А при разном количестве краски толщина рисунка не изменится?
- DMexico
- Опытный
- Сообщения: 149
- Зарегистрирован: 13 мар 2010, 21:39
- Репутация: 7
- Откуда: Киев
- Контактная информация:
Re: Треугольная система координат
Если б баллон был вверх ногами - эффект думаю был бы заметнее. А вот по кол-ву краски... думаю тоже малозаметно. Не слишком большая разница в давлении. Надо перечитать брошюрку на предмет этого. Хорошая все - таки брошюрка. Даже кодом в Java поделились.
Мнение автора может не совпадать с мнением редакции
- Nick
- Мастер
- Сообщения: 22776
- Зарегистрирован: 23 ноя 2009, 16:45
- Репутация: 1735
- Заслуга: Developer
- Откуда: Gatchina, Saint-Petersburg distr., Russia
- Контактная информация:
Re: Треугольная система координат
Начал писать просмоторщик... Завтра наверное допишу и покажу.
- Nick
- Мастер
- Сообщения: 22776
- Зарегистрирован: 23 ноя 2009, 16:45
- Репутация: 1735
- Заслуга: Developer
- Откуда: Gatchina, Saint-Petersburg distr., Russia
- Контактная информация:
Re: Треугольная система координат
Есть предложение обсудить форму плавного входа и выхода с траектории.
Какие я вижу варианты: Сверху простые угол и две разнесенные кривые,
А вот снизу имхо самый сложный вариант, кривые находятся достаточно близко друг к другу. Слева вариант решения ребят из Гектора, справа возможно более правильный вариант, т.к. убраны лишние ускорения.
Какие я вижу варианты: Сверху простые угол и две разнесенные кривые,
А вот снизу имхо самый сложный вариант, кривые находятся достаточно близко друг к другу. Слева вариант решения ребят из Гектора, справа возможно более правильный вариант, т.к. убраны лишние ускорения.
- DMexico
- Опытный
- Сообщения: 149
- Зарегистрирован: 13 мар 2010, 21:39
- Репутация: 7
- Откуда: Киев
- Контактная информация:
Re: Треугольная система координат
Да, заметил в брошюрке траектории подобные рисунку 3. Простите за невнимательность
Бесспорно ясно, что Ваш правый вариант - единственно подходящий. Хоть это и увеличивает "холостые пробеги", но скажем "Нет!" кривым с радиусом меньше, чем Х!!!
В рабочих ходах придется их не употреблять, в холостых - обходить.
Чему равен Х? Можно измерить по их картинкам. Можно доказать экспериментально.
Где взять такие длинные ремни? Ума не приложу.
В Европе должны быть, по идее...
Бесспорно ясно, что Ваш правый вариант - единственно подходящий. Хоть это и увеличивает "холостые пробеги", но скажем "Нет!" кривым с радиусом меньше, чем Х!!!
В рабочих ходах придется их не употреблять, в холостых - обходить.
Чему равен Х? Можно измерить по их картинкам. Можно доказать экспериментально.
Где взять такие длинные ремни? Ума не приложу.
В Европе должны быть, по идее...
Мнение автора может не совпадать с мнением редакции
- Nick
- Мастер
- Сообщения: 22776
- Зарегистрирован: 23 ноя 2009, 16:45
- Репутация: 1735
- Заслуга: Developer
- Откуда: Gatchina, Saint-Petersburg distr., Russia
- Контактная информация:
Re: Треугольная система координат
Сделал авторазбиение на острых углах. Острый угол <=> sin > 0.01.
Теперь на очереди соединение и просмотр...
А какие характеристики важны для ремней? Если нужно чтобы был плоский и не тянулся можно взять плоскую капроновую стропу. Они бывают разных размеров, от 5 до 50 и более мм шириной, по длине не ограничены, правда может быть жестковатой.
Теперь на очереди соединение и просмотр...
А какие характеристики важны для ремней? Если нужно чтобы был плоский и не тянулся можно взять плоскую капроновую стропу. Они бывают разных размеров, от 5 до 50 и более мм шириной, по длине не ограничены, правда может быть жестковатой.
- Nick
- Мастер
- Сообщения: 22776
- Зарегистрирован: 23 ноя 2009, 16:45
- Репутация: 1735
- Заслуга: Developer
- Откуда: Gatchina, Saint-Petersburg distr., Russia
- Контактная информация:
Re: Треугольная система координат
Кое-какие новые результаты:
Написал просмоторщик, правда пока примитивный - в том же директории, к который сохраняется Gcode, создается png файл с изображением референсных точек и траектории движения баллончика. В форме можно задать параметр emmit - который определяет плотность точек для проверки равномерности передвижения.
Итак первая картинка - буква G с параметром max_segment_length = 100.
Слева преобразованная кривая с выделенными контрольными точками, справа траектория баллончика. Можно заметить, что горизонтальные прямые прогнуты вниз. Это результат преобразования в треугольные координаты, о котором я писал раньше. Результат не очень впечатляет, но обратите внимание на последующие картинки
.
Если присмотреться к траектории, то видно, что равномерность распределения точек хорошая значит движение будет равномерным. Вторая картинка - буква G с параметром max_segment_length = 10.
Все тоже самое, видно, что кривая стала гораздо глаже. Третья картинка - буква G с параметром max_segment_length = 1.
ИМХО вполне приемлемый результат
.
Теперь дело за соединениями...
Написал просмоторщик, правда пока примитивный - в том же директории, к который сохраняется Gcode, создается png файл с изображением референсных точек и траектории движения баллончика. В форме можно задать параметр emmit - который определяет плотность точек для проверки равномерности передвижения.
Итак первая картинка - буква G с параметром max_segment_length = 100.
Слева преобразованная кривая с выделенными контрольными точками, справа траектория баллончика. Можно заметить, что горизонтальные прямые прогнуты вниз. Это результат преобразования в треугольные координаты, о котором я писал раньше. Результат не очень впечатляет, но обратите внимание на последующие картинки
Если присмотреться к траектории, то видно, что равномерность распределения точек хорошая значит движение будет равномерным. Вторая картинка - буква G с параметром max_segment_length = 10.
Все тоже самое, видно, что кривая стала гораздо глаже. Третья картинка - буква G с параметром max_segment_length = 1.
ИМХО вполне приемлемый результат
- DMexico
- Опытный
- Сообщения: 149
- Зарегистрирован: 13 мар 2010, 21:39
- Репутация: 7
- Откуда: Киев
- Контактная информация:
Re: Треугольная система координат
Да, правда, прогиб горизонтальных прямых заметен.
Это тот же эффект, как при рисовании эллипса с помощью нити и булавок? Только в меньшем масштабе.
Просмотрищик переводит "треугольные" координаты в прямоугольные и рисует точками?
Конечный результат на третьей картинке - впечатляет!
Холостой ход не отображает? Было бы интересно посмотреть на траекториии.
Точки отмечающие концы сегментов слабо заметны. Может другим цветом их сделать?
Что имеете ввиду под соединениями?
Это тот же эффект, как при рисовании эллипса с помощью нити и булавок? Только в меньшем масштабе.
Просмотрищик переводит "треугольные" координаты в прямоугольные и рисует точками?
Конечный результат на третьей картинке - впечатляет!
Холостой ход не отображает? Было бы интересно посмотреть на траекториии.
Точки отмечающие концы сегментов слабо заметны. Может другим цветом их сделать?
Что имеете ввиду под соединениями?
Мнение автора может не совпадать с мнением редакции
