Страница 2 из 13

Re: Треугольная система координат

Добавлено: 24 сен 2010, 18:27
DMexico
Ну что тут можно сказать? Быстро все получилось.
Просмотрел я код в Gedit (с подсветкой синтаксиса, конечно). Вроде как действительно прямые рисует короткими отрезками. По координатам сложно сказать прямые ли... Мозги к такой системе координат не привыкли. И это радует!
Новую ревизию можно брать в ее постоянном месте?

Re: Треугольная система координат

Добавлено: 24 сен 2010, 21:45
DMexico
:lamp_on: Вот мы и подошли к расчету по физике. Заметьте, что спрей не меняет направлений движения резко. Он всегда делает паузу между отдельными элементами рисунка. Отходит от уже нарисованного элемента по плавной дуге и входит в следующий элемент тоже по очень плавной траектории. В траектории ни одного угла! Может эти плавные перемещения задаются вручную еще на рисунке. Думаю, что холостые хода надо задавать еще до генерации кода. Именно эта плавность держит баллон практически без раскачиваний.
:lamp_on: Еще я заметил, что тросы не намотаны на управляющие шкивы. Они пропущены через управляющие оси как магнитофонная лента через лентопротяг. За счет этого не меняется внешний диаметр мотка. Мотка просто нет. Есть диаметр ведущего вала, скорее всего зубчатого, подобного тем, которые используются для ременной передачи в принтерах-сканерах.
:lamp_on: Кнопка спрея нажимается рычагом с реле на одном из плечей.

Re: Треугольная система координат

Добавлено: 24 сен 2010, 22:47
Nick
Хммм на счет того, что нет ни одного угла... В принципе можно изначально разбить кривую на несколько частей. и делать входы и выходы...

На счет отсутствия мотка - с одной стороны хорошо, с другой стороны в этом случае трос должен постоянно скользить вдоль управляющего шкива, что не очень хорошо. можно сделать достаточно большие катушки и привод к ним через понижающую передачу. по идее при диаметре катушки 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 в этой директории.

Re: Треугольная система координат

Добавлено: 24 сен 2010, 23:27
DMexico
Вот официальный сайт создателей устройства http://hektor.ch/
Документ в .pdf оттуда же.
А вот сайт плагина Scriptographer для Adobe Illustrator, который создатели устройства использовали для того, чтобы написать свой java скрипт обработки изображения. http://scriptographer.org/
Вот сам их скрипт обработки рисунка - не нашел пока.

С рабочими траекториями все ясно, а вот холостые траектории не похожи на стандартные в DXF и G-code.
Холостые идут НЕ по кратчайшей прямой к новому объекту или узлу, а с одинаковой скоростью и по плавной траектории. Прямо как самолет на посадку по глиссаде. Плавно спускается и начинает рисовать шасси на посадочной полосе. Или еще можно сравнить с полетом пчелы.
Думаю этим и достигается спокойствие спрей-блока.
Надо думать над алгоритмом холостых перемещений. :?:

Re: Треугольная система координат

Добавлено: 25 сен 2010, 21:26
DMexico
Траектория движения Гектора. Холостые - красным, рабочие - синим. (3402 просмотра) <a class='original' href='./download/file.php?id=721&mode=view' target=_blank>Загрузить оригинал (91.75 КБ)</a>
Траектория движения Гектора. Холостые - красным, рабочие - синим.
Что мы можем заметить в этой схеме, чтобы употребить для алгоритма?

1. На подходе к "углам" знает, что нужно оторваться в угловой точке
2. Запоминает точку отрыва
3. Запоминает направление следующего вектора
4. Отрывается "в углу"
5. Продолжает движение в том же направлении, плавно переходя в петлю
6. Петля образовывается таким образом, чтобы постепенно перейти в точку отрыва в направлении, совпадающем с направлением следующего вектора.
7. Приземляется в запомненной точке отрыва
8. Рисует до следующего угла.

Радиусы петель бывают разные. Видимо для экономии.
И НИ ОДНОГО РЕЗКОГО ДВИЖЕНИЯ!

Re: Треугольная система координат

Добавлено: 26 сен 2010, 21:06
DMexico
Есть в G-code tools блок, который занимается вычислением холостого хода?
Хочу попробовать его сам. Каким из редакторов кода лучше воспользоваться?
Вы лично в каком работаете?

Re: Треугольная система координат

Добавлено: 27 сен 2010, 09:53
Nick
Извиняюсь, что долго не отвечал в субботу был на свадьбе и все воскресенье отходил от этого :).

Я пользуюсь Gedit'ом.
В нем у меня включены опции:
Показывать номера строк
Подсвечивать текущую строку
Подсвечивать соответствующие скобки
Включен автоматический отступ
И выключен перенос строки.
Также я дополнительно поставил модуль замены по регулярному выражению, хотя последнее время им не пользуюсь.

Собственно холостой проход выполняется в строчке 4651-4653.

Но начать имхо нужно с дополнительного разбиения кривой. Для начала нужно определить точки в которых нужно разбиение.
У кривых есть характеристика кривизны (curvature), в тех точках где кривизна больше определенного значения, разбиваем кривую. Также разбиваем во всех острых углах. Но что делать с теми участками где на всем протяжении кривизна большая?

Сейчас присоединю картинку чтобы было понятно.

Re: Треугольная система координат

Добавлено: 27 сен 2010, 10:05
Nick
Вот иллюстрация

Re: Треугольная система координат

Добавлено: 27 сен 2010, 10:52
DMexico
Отвечаю мимолетом, потому что спешу на "вылет".
Я понял и без рисунка. Почитайте брошюрку в .pdf. Именно почитайте. Из нее понятно что, достаточно прерываться только в углах. Острых, тупых, прямых... Да и по схемам траекторий видно, что нигде нет выходов и входов в кривые, через "петлю". Даже "малорадиусные" кривые обрабатываются цельно.
Так что можно над этим особо не задумываться.
А вот момент о постоянной линейной скорости спрея - вот где интересно!!!
Разница в линейной скорости перемещений вверху и внизу рисунка - вот где песня программинга!
Там - на пересечении физики и математики! Линейных и угловых скоростей!
В верхней части рисунка линейная скорость спрея быстрее (при постоянной угловой движков).
Я уже пишу программку, которая создает двумерный массив 1000х1000, задавая каждому значению массива, значение равное сумме гипотенуз (радиусов). Потом из этого массива создается пиксельная матрица в градациях серого. Очень мне хочется увидеть это ч.б. "фото"! Формулы потом пригодятся для задания скоростей движков, в зависимости от точки, где находится спрей.
Сдается мне, что только с параметрическим кодом все будет работать. Ведь в разных частях рисунка скорости движков должны быть разные. Какие именно - будет ясно из массива.
Если в G-кодах параметр задающий скорость вращения движков? Даже если нет, то можно решить этот момент задержками, между шагами. Задержки между шагами привязать к сумме длин радиусов. Пока еще не чувствую через какую именно зависимость. Явно только, что не линейную.
Логично? ;)

Re: Треугольная система координат

Добавлено: 27 сен 2010, 11:03
Nick
Хе-хе, а вы не заметили, что в приложенном мной Gcode в каждой строчке стоит F с разными величинами - это и есть скорость перемещения, она вычисляется автоматически в зависимости от положения баллончика.

Фактически G01 - в прямых координатах это отрезок AB, предположим, что в треугольных координатах этот отрезок переходит в A1B1. Тогда для сохранения постоянной линейной скорости необходимо двигаться со скоростью Feed = Feed1*|AB|/|A1B1|, где Feed1 - желаемая скорость, а |AB| и |A1B1| - длины отрезков.

Эх... нужно написать просмоторщик...

Re: Треугольная система координат

Добавлено: 27 сен 2010, 11:04
DMexico
Думал, что нельзя пренебрегать и реактивным моментом по оси Z в разных частях рисунка, но швейцарцы на этот счет молчат в своей брошюрке. Странно... Но видимо этим можно пренебречь на этих длинах радиусов и с этой массой баллона, которая тоже кстати меняется в зависимости от расхода краски. Видимо уравнивается. В начале баллона больше давление, но и краски полон. В конце - меньше давление, но и краски меньше.
Ну что делать?... :roll: Видимо, можно пренебречь...

Re: Треугольная система координат

Добавлено: 27 сен 2010, 11:08
DMexico
Вот это да! Я то думал... ЧТО ЭТО ЗА ТРЕТИЙ ПАРАМЕТР?
Значит такая простая линейная зависимость?
Надо учить G-коды... Вот молодец! Уже все продумано, оказывается!
Я в приятном шоке! :o

Re: Треугольная система координат

Добавлено: 27 сен 2010, 11:22
Nick
Ну она конечно не такая простая, но в пределе она будет именно такой. Таким образом, чем меньше мы выберем начальное дробление кривой, тем точнее получим рисунок.

А что сильный момент от баллончика получается? А при разном количестве краски толщина рисунка не изменится?

Re: Треугольная система координат

Добавлено: 27 сен 2010, 11:27
DMexico
Если б баллон был вверх ногами - эффект думаю был бы заметнее. А вот по кол-ву краски... думаю тоже малозаметно. Не слишком большая разница в давлении. Надо перечитать брошюрку на предмет этого. Хорошая все - таки брошюрка. Даже кодом в Java поделились.

Re: Треугольная система координат

Добавлено: 27 сен 2010, 17:00
Nick
Начал писать просмоторщик... Завтра наверное допишу и покажу.

Re: Треугольная система координат

Добавлено: 27 сен 2010, 22:18
Nick
Есть предложение обсудить форму плавного входа и выхода с траектории.
Какие я вижу варианты:
0116 gcodetools graffiti.png (3413 просмотров) <a class='original' href='./download/file.php?id=723&mode=view' target=_blank>Загрузить оригинал (22.42 КБ)</a>
Сверху простые угол и две разнесенные кривые,

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

Re: Треугольная система координат

Добавлено: 28 сен 2010, 03:40
DMexico
Да, заметил в брошюрке траектории подобные рисунку 3. Простите за невнимательность :oops:
Бесспорно ясно, что Ваш правый вариант - единственно подходящий. Хоть это и увеличивает "холостые пробеги", но скажем "Нет!" кривым с радиусом меньше, чем Х!!!
В рабочих ходах придется их не употреблять, в холостых - обходить.
Чему равен Х? Можно измерить по их картинкам. Можно доказать экспериментально.
Где взять такие длинные ремни? Ума не приложу. :roll:
В Европе должны быть, по идее...

Re: Треугольная система координат

Добавлено: 28 сен 2010, 09:30
Nick
Сделал авторазбиение на острых углах. Острый угол <=> sin > 0.01.
Теперь на очереди соединение и просмотр...

А какие характеристики важны для ремней? Если нужно чтобы был плоский и не тянулся можно взять плоскую капроновую стропу. Они бывают разных размеров, от 5 до 50 и более мм шириной, по длине не ограничены, правда может быть жестковатой.

Re: Треугольная система координат

Добавлено: 28 сен 2010, 12:56
Nick
Кое-какие новые результаты:

Написал просмоторщик, правда пока примитивный - в том же директории, к который сохраняется Gcode, создается png файл с изображением референсных точек и траектории движения баллончика. В форме можно задать параметр emmit - который определяет плотность точек для проверки равномерности передвижения.

Итак первая картинка - буква G с параметром max_segment_length = 100.
Слева преобразованная кривая с выделенными контрольными точками, справа траектория баллончика. Можно заметить, что горизонтальные прямые прогнуты вниз. Это результат преобразования в треугольные координаты, о котором я писал раньше. Результат не очень впечатляет, но обратите внимание на последующие картинки ;).
Если присмотреться к траектории, то видно, что равномерность распределения точек хорошая значит движение будет равномерным.
0120 gcodetools graffiti test.png (3404 просмотра) <a class='original' href='./download/file.php?id=724&mode=view' target=_blank>Загрузить оригинал (41.97 КБ)</a>
Вторая картинка - буква G с параметром max_segment_length = 10.
Все тоже самое, видно, что кривая стала гораздо глаже.
0121 gcodetools graffiti test.png (3404 просмотра) <a class='original' href='./download/file.php?id=725&mode=view' target=_blank>Загрузить оригинал (42.3 КБ)</a>
Третья картинка - буква G с параметром max_segment_length = 1.
ИМХО вполне приемлемый результат :).
0122 gcodetools graffiti test.png (3404 просмотра) <a class='original' href='./download/file.php?id=726&mode=view' target=_blank>Загрузить оригинал (50.77 КБ)</a>
Теперь дело за соединениями...

Re: Треугольная система координат

Добавлено: 28 сен 2010, 13:42
DMexico
Да, правда, прогиб горизонтальных прямых заметен.
Это тот же эффект, как при рисовании эллипса с помощью нити и булавок? Только в меньшем масштабе.
Просмотрищик переводит "треугольные" координаты в прямоугольные и рисует точками?
Конечный результат на третьей картинке - впечатляет!
Холостой ход не отображает? Было бы интересно посмотреть на траекториии.
Точки отмечающие концы сегментов слабо заметны. Может другим цветом их сделать?
Что имеете ввиду под соединениями? :roll: