Graffiti-cnc Треугольная система координат

Намоточные, сверлильные, электроэррозионные и другие станки с ЧПУ.

Graffiti-cnc Треугольная система координат

Сообщение DMexico » 23 сен 2010, 05:14

Пост на тему граффити CNC, основанного на треугольной системе координат.
http://www.youtube.com/watch?v=Y4cjjC-ZiBA

Технически простая идея. Правда?

Вся сложность в конверторе, который будет брать попарно X и Y из G кода, перерабатывать их для треугольной системы координат в G1 и G2 и вставлять на место прежних X и Y.

Такая обманка должна будет получиться.

EMC2 "будет думать", (если б он мог думать с чем работает), что работает с прямоугольной системой координат, но наша "механика" будет отрабатывать по гипотенузам!

Правильно мыслю?

Вот чертежик и формулы возврата гипотенуз из X и Y

Изображение

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

Хочу спросить совета у авторитета по плагинам G-кода - Root'a.
Можно ли его "вписать" в Ваш плагин, чтобы напрямую обрабатывать рисунок и получать на выходе G-code с треугольными координатами?
Или стоит писать отдельно и обрабатывать G-code, генерируемый Вашим плагином?
Последний раз редактировалось DMexico 23 сен 2010, 15:55, всего редактировалось 1 раз.
Мнение автора может не совпадать с мнением редакции
Аватара пользователя
DMexico
Опытный
 
Сообщения: 149
Зарегистрирован: 13 мар 2010, 21:39
Откуда: Киев
Репутация: 7

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

Сообщение Nick » 23 сен 2010, 09:22

Конечно можно, причем очень просто, даже можно сделать расчет с точки зрения физики.
Только не получится вставить G02 и G03, т.к. ЕМС будет думать, что у него система координат прямоугольная, а не треугольная.

Чуть по позже вывешу расчеты.

ЗЫ тоже видел эту видяшку, идея просто замечательная!
Аватара пользователя
Nick
Мастер
 
Сообщения: 22552
Зарегистрирован: 23 ноя 2009, 16:45
Откуда: Gatchina, Saint-Petersburg distr., Russia
Репутация: 1571
Заслуга: Developer
Медальки:

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

Сообщение DMexico » 23 сен 2010, 13:33

Забыл уточнить. :lamp_flash:
Вместо второй гипотенузы, в код нужно возвращать не ее саму, а разницу между базой B и G2.
Величина эта у нас получается, как бы, "инверсная".
Допустим, что начало координат в левой верхней точке. X и Y в этой точке = 0,0.
Треугольные координаты тоже получатся 0,0.
Чувствуете несостыковочку? Порвет нашу "механику"! :lol:
Так что возвращенные треугольные координаты должны быть равны G1, B - G2.
Тогда в начале координат треугольные координаты станут равны 0, B
Логично?
Мнение автора может не совпадать с мнением редакции
Аватара пользователя
DMexico
Опытный
 
Сообщения: 149
Зарегистрирован: 13 мар 2010, 21:39
Откуда: Киев
Репутация: 7

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

Сообщение DMexico » 23 сен 2010, 14:05

root писал(а):Конечно можно, причем очень просто, даже можно сделать расчет с точки зрения физики.
Только не получится вставить G02 и G03, т.к. ЕМС будет думать, что у него система координат прямоугольная, а не треугольная.

Чуть по позже вывешу расчеты.

ЗЫ тоже видел эту видяшку, идея просто замечательная!

Еще не знаю за что отвечают G02 и G03 :roll: но думаю что разделить рабочие и холостые хода - нужно.
Что уважаемый Root имел в виду под "расчетом с точки зрения физики"? :wtf:
Мнение автора может не совпадать с мнением редакции
Аватара пользователя
DMexico
Опытный
 
Сообщения: 149
Зарегистрирован: 13 мар 2010, 21:39
Откуда: Киев
Репутация: 7

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

Сообщение Nick » 23 сен 2010, 14:58

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

На счет физики - на видео видно как провисает один из тросов - неплохо было бы это учесть. Также нужно учесть возможные колебания при движении и остановках.

G01 - это прямолинейная интерполяция на языке Gкода. G02 и G03 - круговые, арки окружностей. Одним из достоинств Gcodetools была возможность экспорта и использованием круговой интерполяции. На рисунке наглядно показана разница между использованием круговой и прямолинейной интерполяции (это скрин от одной из первых версий Gcodetools).
Graffiti-cnc Треугольная система координат inkscape_plugin_ex.png


Ближе к концу рабочего дня напишу как я вижу использование треугольной системы координат.
Аватара пользователя
Nick
Мастер
 
Сообщения: 22552
Зарегистрирован: 23 ноя 2009, 16:45
Откуда: Gatchina, Saint-Petersburg distr., Russia
Репутация: 1571
Заслуга: Developer
Медальки:

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

Сообщение DMexico » 23 сен 2010, 15:53

Да, кривые будут ломаными, но при таком соотношении толщина линии/размер изображения это будет мало заметно.
Правый трос в 0,0 натягивается по максимуму. Присмотритесь к началу рабочего цикла.
По поводу раскачивания.
Возможен двойной гироскоп (по часовой и обратно) в виде пары кулеров без лопастей?...
или успокоитель колебаний (подобный тем, которые устанавливают в высотных опорах мостов).
Скорость рабочего хода должна быть без разгона/торможения.
Холостой ход может быть быстрее рабочего и с разгоном/торможением.
Мне кажется, эти ребята много чего не доработали. Или видео старое.
Почему тяжелые тросы, а не прочная леска? Спокойнее себя ведут? А как же разница в диаметре мотка на шкиве?
Почему нет успокоителя колебаний?
Почему двигатели со шкивами закреплены на стене, а не стоят в одном компактном месте, раздавая усилия через блоки?
Много вопросов... да?
Мнение автора может не совпадать с мнением редакции
Аватара пользователя
DMexico
Опытный
 
Сообщения: 149
Зарегистрирован: 13 мар 2010, 21:39
Откуда: Киев
Репутация: 7

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

Сообщение Nick » 23 сен 2010, 16:15

1. Прогибание троса.
Т.к. на видео есть только две точки опоры то нет возможности обеспечить натяжение троса. Трос натягивается только весом баллончика и весом троса. Из-за этого будут появляться искажения на рисунке. Также будет ограничена скорость перемещения из-за неизбежных колебаний.
Мое предложение добавить третью точку опоры.
Основные моменты:
  • Верхние два троса должны быть закреплены в точке сопла баллончика.
  • Нижний трос должен быть закреплен на нижней части баллончика.
  • Необходимо добавить эластичный элемент, за счет которого будут уничтожаться погрешности аппроксимации (о них напишу позже).
Graffiti-cnc Треугольная система координат 0105 gcode tools graphity .png


2. Расчет движения.
Основные положения:
Т.к. появилась третья точка опоры то управлять будем в трехмерной координатной системе.
Есть два варианта изменять HAL или генерировать специальный Gкод.
Второй имхо проще, но не так изящен.
Итак простой путь
Нам нужно заменить сиситему координат XYZ на R1,R2,R3 где R1,R2,R3 - радиус векторы из опорных точек.
1. Преобразование координат:
Тут все просто:
0107 gcode tools graffiti.png
0107 gcode tools graffiti.png (2.94 Кб) Просмотров: 7993

2. Интерполяция:
Т.к. координаты выражаются через корень, то это не аффинное преобразование. (Аффинное преобразование переводит любую прямую в прямую). Здесь это не так. Соответственно мы не сможем нарисовать отрезок из точки (0,0) в точку (10,10) одной командой. Придется его разбивать на маленькие кусочки и рисовать их один за другим. Это повлечет увеличение длины Gcode но не так страшно.
Еще одна неприятность связанна с равномерной скоростью перемещения, опять же исходя из того, что преобразование не аффинное придется для каждого маленького отрезочка задавать скорость перемещения (Feed).

Примерно так.


ЗЫ Вместо двигателя на третьей точке опоры можно поставить пружину, которая будет обеспечивать натяг тросов. Или просто подвесить груз через блок.
Аватара пользователя
Nick
Мастер
 
Сообщения: 22552
Зарегистрирован: 23 ноя 2009, 16:45
Откуда: Gatchina, Saint-Petersburg distr., Russia
Репутация: 1571
Заслуга: Developer
Медальки:

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

Сообщение Nick » 23 сен 2010, 16:19

Чем больше вопросов сейчас тем меньше проблем потом :).

Лучше брать не леску, а плетеный рыболовный шнур - это я как рыболов говорю :). Он не тянется и гораздо тоньше.

По поводу закрепления двигателей как таковой нет особой разницы крепить на стенку двигатель или блок.

Скорость рабочего хода должна быть без разгона/торможения.

В каком смысле?
Аватара пользователя
Nick
Мастер
 
Сообщения: 22552
Зарегистрирован: 23 ноя 2009, 16:45
Откуда: Gatchina, Saint-Petersburg distr., Russia
Репутация: 1571
Заслуга: Developer
Медальки:

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

Сообщение DMexico » 23 сен 2010, 16:57

root писал(а):Чем больше вопросов сейчас тем меньше проблем потом :).

Лучше брать не леску, а плетеный рыболовный шнур - это я как рыболов говорю :). Он не тянется и гораздо тоньше.

По поводу закрепления двигателей как таковой нет особой разницы крепить на стенку двигатель или блок.

Скорость рабочего хода должна быть без разгона/торможения.

В каком смысле?

Скорость рабочего хода должна быть постоянной, иначе наплывы будут в начале и конце хода.
Рыболовам, за плетеный шнур - респект!
Есть разница в том что крепить на стенку. Прочитаете следующий пост и поймете почему.
Мнение автора может не совпадать с мнением редакции
Аватара пользователя
DMexico
Опытный
 
Сообщения: 149
Зарегистрирован: 13 мар 2010, 21:39
Откуда: Киев
Репутация: 7

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

Сообщение DMexico » 23 сен 2010, 17:14

Я не хотел бы усложнять механику. Почему? Вот почему.
Живу я в 16-ти этажном доме. На одной торцевой стене - очень дорогая реклама Opel. Другая же стена абсолютно свободна. Дом на перекрестке. Адрес дома дробный.
Первое (полезное) что, я нарисую - всего лишь названия улиц со стрелками направлений и номер дома. Причем во всю ширину (не высоту) стены.
Укреплю на крыше два блока по краям торцевой стены и сделаю свое дело. Там же мелким шрифтом и ссылку на сайт "адресоподписчиков" нарисую.
И будет видна эта контрастная надпись за 2 километра. Трасса у нас окружная, международная. Многим поможет сориентироваться.
И вот как я буду работать с третьим вектором на высоте 40 метров?
Вот для более точных и быстрых "домашних" картин - можно поработать над оттяжкой с грузом и блоком.
Но это уменьшит размеры картины по вертикали вдвое. Груз должен куда-то опускаться, запас вертикали нужен.
Двигатели крепить на стене, на высоте 40 метров тоже не с руки. :stepper: :roll:
Гораздо проще вывесить 2 блока и раздать на них этот шнур рыболовный из центра верхней горизонтали крыши. Там же по "краю-центру" крыши: ноутбук, подвод питания (или емкие аккумуляторы), и вся механика с электроникой. :controller: :stepper:
Логичны для такого применения мои доводы? ;)
Мнение автора может не совпадать с мнением редакции
Аватара пользователя
DMexico
Опытный
 
Сообщения: 149
Зарегистрирован: 13 мар 2010, 21:39
Откуда: Киев
Репутация: 7

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

Сообщение Nick » 23 сен 2010, 22:36

Со зданием имхо третья координата будет еще нужнее. Т.к. на свежем воздухе будет еще одна помеха - ветер. Плюс при большей длине тросов маятник будет раскачиваться дольше.

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

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

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

В принципе мне почти все понятно, завтра приступлю к написанию программы.

Остался вопрос предпросмотра. Могу сделать опцию рисовать картинку...
Аватара пользователя
Nick
Мастер
 
Сообщения: 22552
Зарегистрирован: 23 ноя 2009, 16:45
Откуда: Gatchina, Saint-Petersburg distr., Russia
Репутация: 1571
Заслуга: Developer
Медальки:

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

Сообщение DMexico » 24 сен 2010, 07:08

Поэкспериментируем с большей длиной тросов. При ветре, понятно, никто не будет работать.
Третья координата, уменьшает площадь рисунка до треугольника, который образуется когда гипотенузы становится на одну прямую с оттяжкой.
Белиберда будет появляться от множества отрезков которые образуют кривые?
О радио управлении думал, но пока остановился на тоненьком проводе, питающем реле.
Это будет отдельный плагин или еще одна закладка в G-code tools?
Мнение автора может не совпадать с мнением редакции
Аватара пользователя
DMexico
Опытный
 
Сообщения: 149
Зарегистрирован: 13 мар 2010, 21:39
Откуда: Киев
Репутация: 7

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

Сообщение Nick » 24 сен 2010, 08:40

Просто отдельная закладка. Т.к. будут использоваться уже написанные функции.

Белиберда будет из-за того, что EMC будет думать, что он работает с прямоугольной системой координат.
Аватара пользователя
Nick
Мастер
 
Сообщения: 22552
Зарегистрирован: 23 ноя 2009, 16:45
Откуда: Gatchina, Saint-Petersburg distr., Russia
Репутация: 1571
Заслуга: Developer
Медальки:

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

Сообщение DMexico » 24 сен 2010, 11:19

Может тогда над HAL поработать стоит? Познакомить его с треугольной системой, формулами перевода координат... Он способен на это вообще? Есть руководство по нему отдельно от диска?
Надо же все-таки контролировать ход выполнения рисунка. Остановы для смены цвета баллончика, многослойность... С крыши же не видно что именно вырисовывается и когда наконец это чудовище нарисуется... :lol:
Мнение автора может не совпадать с мнением редакции
Аватара пользователя
DMexico
Опытный
 
Сообщения: 149
Зарегистрирован: 13 мар 2010, 21:39
Откуда: Киев
Репутация: 7

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

Сообщение Nick » 24 сен 2010, 11:48

Смена цвета уже предусмотрена - разные цвета в разных слоях и между слоями вставляется произвольный код.
По поводу когда нарисуется - будет видно сколько каракуль осталось нарисовать :). Тем более не во всех интерфейсах для EMC есть live plot. Из этого я делаю вывод, что он не обязателен.

С HAL ИМХО не получится. ЕМС буде рассчитывать скорость и ускорение и подавать на HAL команды, а там нелинейное преобразование, которое будет менять и скорость и ускорение со страшной силой.

Скоро напишу плагинчик, там будет видно.
Аватара пользователя
Nick
Мастер
 
Сообщения: 22552
Зарегистрирован: 23 ноя 2009, 16:45
Откуда: Gatchina, Saint-Petersburg distr., Russia
Репутация: 1571
Заслуга: Developer
Медальки:

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

Сообщение Nick » 24 сен 2010, 12:04

Вот еще одно допущение:
Если мы рисуем прямую из точки А в точку Б, то получим не совсем прямую траекторию:
Необходимая точность будет достигаться дополнительным разбиением отрезков.
Вложения
Graffiti-cnc Треугольная система координат 0111 gcodetools grattiti.svg.png
Аватара пользователя
Nick
Мастер
 
Сообщения: 22552
Зарегистрирован: 23 ноя 2009, 16:45
Откуда: Gatchina, Saint-Petersburg distr., Russia
Репутация: 1571
Заслуга: Developer
Медальки:

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

Сообщение DMexico » 24 сен 2010, 12:15

Это выяснилось с помощью эмулятора? Преобразует координаты из систему в систему и рисует? :o
Я попробую смоделировать весь процесс. Рисовать сначала по прямоугольным координатам, а сверху другим цветом то же самое, но по треугольным. :geek:
Мнение автора может не совпадать с мнением редакции
Аватара пользователя
DMexico
Опытный
 
Сообщения: 149
Зарегистрирован: 13 мар 2010, 21:39
Откуда: Киев
Репутация: 7

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

Сообщение Nick » 24 сен 2010, 12:42

Это я взял конкретные числа и нарисовал параметрическую кривую используя inkscape.

Вот так выглядит параметрическая функция описывающая траекторию:
0112 gcodetools grattiti.png
0112 gcodetools grattiti.png (7.59 Кб) Просмотров: 7982

А теперь представьте насколько непросто сделать расчет длинны дуги такой кривой. А точнее найти значение t для заданной длины дуги да еще и в реальном времени и около 100 000 раз в секунду. Поэтому EMC не поддерживает треугольную систему координат.
Аватара пользователя
Nick
Мастер
 
Сообщения: 22552
Зарегистрирован: 23 ноя 2009, 16:45
Откуда: Gatchina, Saint-Petersburg distr., Russia
Репутация: 1571
Заслуга: Developer
Медальки:

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

Сообщение DMexico » 24 сен 2010, 13:04

Согласен. Лучше переложить эти труды на Inkscape. Пусть он заранее вычисляет траекторию.
Мнение автора может не совпадать с мнением редакции
Аватара пользователя
DMexico
Опытный
 
Сообщения: 149
Зарегистрирован: 13 мар 2010, 21:39
Откуда: Киев
Репутация: 7

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

Сообщение Nick » 24 сен 2010, 16:56

Gcodetools Ревизия 158



Первый вариант расширения Graffiti готов.
Как он работает:
1. Создаем опорные точки.
Точки создаются из вкладки Orientation и называются grafiti reference points.
При нажатии apply появляется вот такая точка:
0114 gcodetools grafitti reference point.png
0114 gcodetools grafitti reference point.png (1.52 Кб) Просмотров: 7982

Стрелка обозначает положение точки, буква обозначает название оси для этой точки (название двигателя).
Нам нужно как минимум две таких точки. При создании второй точки она автоматически сдвинется на 100рх и поменяет название оси. Оси будут подставляться в таком порядке: X,Y,Z,A. Если нужно, то можно задать больше двух опорных точек, и размещать точки можно как угодно, хот все сверху, хоть все снизу. Но вы должны понимать, что баллончик не поднимется выше верхней точки ;).

2. Экспортируем в Gcode.
Открываем вкладку Graffiti. Ставим необходимое число в max segment length и нажимаем Apply. (Не забудьте прописать правильные пути для записи файла.)
Все готово.

Только как это тестировать :lol:. В EMC будет лабуда показываться...
Нужно будет написать программку для тестирования...

ЗЫ Вот готовый Gcode для надписи ""Gcodetools" с максимальной длиной сегмента 1мм:
gcodetools_graffiti.ngc
(45.54 Кб) Скачиваний: 755

А вот скриншот после экспорта в Gкод (показано разбиение на сегменты):
Graffiti-cnc Треугольная система координат Снимок-Новый документ 1 — Inkscape-1.png
Аватара пользователя
Nick
Мастер
 
Сообщения: 22552
Зарегистрирован: 23 ноя 2009, 16:45
Откуда: Gatchina, Saint-Petersburg distr., Russia
Репутация: 1571
Заслуга: Developer
Медальки:

След.

Вернуться в Прочие станки

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

Зарегистрированные пользователи: Bing [Bot], CNCCLUB, drey82, evgenyjp, frolyar, Google [Bot], Google Feedfetcher, Hugo, icamys, john1987887, Lexxa, loi_28, Majestic-12 [Bot], MSN [Bot], nevkon, parket_3d, Shamsulla, vektor_z, Yandex [bot], Zdravko_97, ДНК

Reputation System ©'