Inkscape tutorials

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

Inkscape tutorials

Сообщение Nick »

Создаем шестеренки при помощи Inkscape и Gcode tools

1. Рисуем шестеренки.
Это очень просто: заходим Расширения -> Отрисовка -> Зубчатое колесо
Вводим параметры. Например, для создания передачи 1:5 создаем две шестеренки с 12 и 60 зубами.
Снимок-Новый документ 1 — Inkscape-9.png (18497 просмотров) <a class='original' href='./download/file.php?id=212&mode=view' target=_blank>Загрузить оригинал (108.35 КБ)</a>
2. Создаем отверстия для вала.
Для этого рисуем окружность размерами 6х6. Для точного задания размера после отрисовки окружности нажимаем F1 и вводим ширину и высоту окружности. Внимание Инкскейп вычисляет ширину и высоту исходя из размера отображения объекта, т.е. в размер входит ширина обводки контура. Для того чтобы задать точный размер лучше всего снять обводку. (Нажимаем Shift и на крестик внизу слева в палитре.) Чтобы объект совсем не пропал добавьте ему заливку.
Затем центруем нашу окружность относительно шестеренок. Для этого Ctrl+Shift+A выбираем шестеренку и окружность и выравниваем их по центру по вертикали и горизонтали. (В качестве "Ориентира" лучше выбрать "Первый объект" или "Последний объект".) Создаем копию окружности (Сtrl+D или вовремя перетаскивания нажимаем пробел) и центруем ее относительно другой шестеренки.
Снимок1-Новый документ 1 — Inkscape-10.png (18497 просмотров) <a class='original' href='./download/file.php?id=214&mode=view' target=_blank>Загрузить оригинал (128.2 КБ)</a>
Снимок-Новый документ 1 — Inkscape-10.png (18497 просмотров) <a class='original' href='./download/file.php?id=215&mode=view' target=_blank>Загрузить оригинал (127.45 КБ)</a>
3. Вырезаем дырки.
Выделяем Шестеренку и окружность. Разгруппировываем (Ctrl+Shift+G) т.к. шестеренка это группа. Вычитаем из шестеренки окружность (Ctrl+Shift+"-"), помните, при вычитании всегда из нижнего объекта вычитается верхний (поднять/опустить объект можно при помощи Page Up / Page down / Home / End).
Повторяем со второй шестеренкой.
Снимок-Новый документ 1 — Inkscape-11.png (18497 просмотров) <a class='original' href='./download/file.php?id=216&mode=view' target=_blank>Загрузить оригинал (124.52 КБ)</a>
4. Сделаем дополнительные отверстия для облегчения большой шестеренки.
Рисуем две окружности и центруем их относительно шестеренки.
Снимок-Новый1 документ 1 — Inkscape-12.png (18497 просмотров) <a class='original' href='./download/file.php?id=217&mode=view' target=_blank>Загрузить оригинал (130.72 КБ)</a>
Вычитаем из большей меньшую (Ctrl+Shift+"-").
Снимок-Новый документ 1 — Inkscape-12.png (18497 просмотров) <a class='original' href='./download/file.php?id=218&mode=view' target=_blank>Загрузить оригинал (127.67 КБ)</a>
Рисуем прямоугольник, поворачиваем его копию на 90 градусов. Для этого нажимаем F1 нажимаем на прямоугольник пока не появятся стрелочки вращения, нажимаем на стрелку вращения, нажимаем пробел, чтобы оставить одну копию на старом месте и удерживая нажатым Ctrl, чтобы поворот осуществлялся с интервалом в 15 градусов поворачиваем прямоугольник ровно на 90 градусов.
Центруем прямоугольники относительно окружности.
Снимок-Новый документ 1 — Inkscape-13.png (18497 просмотров) <a class='original' href='./download/file.php?id=219&mode=view' target=_blank>Загрузить оригинал (130.7 КБ)</a>
Выделяем только прямоугольники складываем их (Ctrl+Shift+"+") и вычитаем из окружности (Ctrl+Shift+"-").
Снимок-Новый документ 1 — Inkscape-14.png (18497 просмотров) <a class='original' href='./download/file.php?id=220&mode=view' target=_blank>Загрузить оригинал (126.76 КБ)</a>
Вычитаем полученную фигуру из шестеренки.
Снимок-Новый документ1 1 — Inkscape-15.png (18496 просмотров) <a class='original' href='./download/file.php?id=221&mode=view' target=_blank>Загрузить оригинал (129.53 КБ)</a>
5. Подготавливаем шестеренки к экспорту в Gкод.
Чтобы шестеренки получились правильными необходимо, чтобы траектория инструмента отступала на половину диаметра инструмента от шестеренки.
Для этого выделяем одну шестеренку, Контур -> Динамическая втяжка. Затем правка -> Редактор XML (Сtrl+Shift+X). Выбираем параметр inkscape:radius, и устанавливаем его равным радиусу инструмента (в моем случае фреза 3.2мм, значение 1.6).
Повторяем со второй шестеренкой.
Снимок-Новый документ 1 — Inkscape-16.png (18496 просмотров) <a class='original' href='./download/file.php?id=222&mode=view' target=_blank>Загрузить оригинал (99.52 КБ)</a>
Не очень похоже на нормальную шестеренку, правда? Но не расстраивайтесь все так и должно быть :). Так выглядит траектория инструмента. Для того, чтобы увидеть как будет выглядеть шестеренка задайте черную заливку и белую обводку с толщиной равной диаметру инструмента. Также установите сглаженные углы и сглаженные концы.
Снимок-Новый документ 1 — I1nkscape-17.png (18496 просмотров) <a class='original' href='./download/file.php?id=223&mode=view' target=_blank>Загрузить оригинал (133.25 КБ)</a>
6. Экспорт в Gкод.
Отрываем Расширения -> Gcode tools... Выбираем Path to Gcode, выбираем имя файла и директорию и нажимаем Применить.
Снимок-GCODE tools.png (18496 просмотров) <a class='original' href='./download/file.php?id=224&mode=view' target=_blank>Загрузить оригинал (38.63 КБ)</a>
Что мы получили:
1. Файл с Gкодом.
2. Пред просмотр будущей рабочей траектории инструмента (Красные линии это прямолинейная интерполяция (G01), синие и зеленые - круговая интерполяция (G02 и G03)).
Снимок-Новый документ 1 — Inkscape-17.png (18496 просмотров) <a class='original' href='./download/file.php?id=226&mode=view' target=_blank>Загрузить оригинал (142.04 КБ)</a>
На этом все :). Приятной работы!
Аватара пользователя
Nick
Мастер
Сообщения: 22776
Зарегистрирован: 23 ноя 2009, 16:45
Репутация: 1735
Заслуга: Developer
Откуда: Gatchina, Saint-Petersburg distr., Russia
Контактная информация:

Re: Inkscape tutorials

Сообщение Nick »

Создаем Гильош при помощи Inkscape

Для начала, создадим простенький гильош:

Заходим Расширения -> Отрисовка -> Спирограф задаем параметры и получаем следующее:
0097 gcodetools Guilloche.png (18097 просмотров) <a class='original' href='./download/file.php?id=649&mode=view' target=_blank>Загрузить оригинал (103.52 КБ)</a>
Второй способ: Расширения -> Отрисовка -> Параметрические кривые, здесь нужно помнить, что перед применением этого расширения необходимо нарисовать и выбрать прямоугольник, который будет использован как "окно для рисования" исходя из размеров прямоугольника будут заданы размеры гильоша:
Не стесняйтесь публиковать Ваши функции для красивых гильошей :).
0098 gcodetools Guilloche.png (18097 просмотров) <a class='original' href='./download/file.php?id=650&mode=view' target=_blank>Загрузить оригинал (148.97 КБ)</a>
0099 gcodetools Guilloche.png (18096 просмотров) <a class='original' href='./download/file.php?id=651&mode=view' target=_blank>Загрузить оригинал (109.11 КБ)</a>
Аватара пользователя
Nick
Мастер
Сообщения: 22776
Зарегистрирован: 23 ноя 2009, 16:45
Репутация: 1735
Заслуга: Developer
Откуда: Gatchina, Saint-Petersburg distr., Russia
Контактная информация:

Re: Inkscape tutorials

Сообщение Nick »

Еще пара экспериментов с гильошем из параметрических функций

Здесь важный параметр количество выборок, если поставить больше получится просто синус натянутый на круг.
0100 gcodetools Guilloche.png (18092 просмотра) <a class='original' href='./download/file.php?id=652&mode=view' target=_blank>Загрузить оригинал (202.48 КБ)</a>
0101 gcodetools Guilloche.png (18092 просмотра) <a class='original' href='./download/file.php?id=653&mode=view' target=_blank>Загрузить оригинал (136.54 КБ)</a>
Zolen

Re: Inkscape tutorials

Сообщение Zolen »

Добрый день.
Эксперементировал с генерацией кривых, возник вопрос.
1) Рисую квадрат
2) Генерирую кривую функцией Параметрические кривые
3) Контур - Оконтурить обводку
4) Path to gcode

В результате получается файл g кодов, в котором каждая линия исходного рисунка как бы обводится контуром с обоих сторон(извиняюсь за плохое знание терминологии).
Подскажите плз, что я могу сделать, чтобы на выходе получалась одна линия, как на первоначальном рисунке?
Аватара пользователя
Nick
Мастер
Сообщения: 22776
Зарегистрирован: 23 ноя 2009, 16:45
Репутация: 1735
Заслуга: Developer
Откуда: Gatchina, Saint-Petersburg distr., Russia
Контактная информация:

Re: Inkscape tutorials

Сообщение Nick »

Оконтурить обводку значит обвести обводку линией. Т.е. линия превращается в прямоугольник. Надо сказать, полезная функция.

Но вам, возможно, нужна другая функция: Контур - Оконтурить объект. Если она вообще нужна. Проверить это очень просто - выделяете объект и смотрите что написано внизу экрана в statusbar-е. Если контур или группа из контуров, то ничего можно не делать.

С терминологией, вроде, все ок :).
Вложения
Inkscape gcodetools path to gcode.png (17746 просмотров) <a class='original' href='./download/file.php?id=891&mode=view' target=_blank>Загрузить оригинал (225.17 КБ)</a>
Zolen

Re: Inkscape tutorials

Сообщение Zolen »

Сори, разобрался. Не нужно было преобразовывать обводку в контур + надо было выставить толщину обводки поменьше.
Аватара пользователя
Zolen
Новичок
Сообщения: 11
Зарегистрирован: 23 ноя 2010, 16:32
Репутация: 2
Откуда: СПб
Контактная информация:

Re: Inkscape tutorials

Сообщение Zolen »

Да, вот красивая ф-ция.
cos(5*t)*cos(5*t)+cos(3*t)
sin(5*t)*cos(5*t)+sin(3*t)
Вложения
1 (17743 просмотра) <a class='original' href='./download/file.php?id=892&mode=view' target=_blank>Загрузить оригинал (173.82 КБ)</a>
1
Аватара пользователя
Nick
Мастер
Сообщения: 22776
Зарегистрирован: 23 ноя 2009, 16:45
Репутация: 1735
Заслуга: Developer
Откуда: Gatchina, Saint-Petersburg distr., Russia
Контактная информация:

Re: Inkscape tutorials

Сообщение Nick »

Класс!
Кстати, мы хотели написать расширение для inkscape для отрисовки гильошей. Но все застопорилось на этапе поиска функций создающих красивые узоры.
de-nos

Re: Inkscape tutorials

Сообщение de-nos »

Не получается выставить динамическое втягивание нужного размера. В редакторе XML ставлю параметр inkscape:radius равным "-1", но в результате фигура уменьшает размер незначительно. Вводя "-1mm" происходит замена этого на "-3.5433071", что тоже неверно (края уменьшаются примерно на 0.1 мм). В настройках документа единицы измерения "mm". Как быть?
Аватара пользователя
Nick
Мастер
Сообщения: 22776
Зарегистрирован: 23 ноя 2009, 16:45
Репутация: 1735
Заслуга: Developer
Откуда: Gatchina, Saint-Petersburg distr., Russia
Контактная информация:

Re: Inkscape tutorials

Сообщение Nick »

В xml редакторе единицы измерения - px. Придется каждый раз переводить. Правда я когда-то читал, что их можно где-то поменять, но точно не помню где.
Получить формулу перевола просто сощдаешь прямоугльник нужной шириной и пернводишь его ширину в пикселы.


Есть еще вариант настроить шаги офсета в настройках inkscape и использовать не динамический оффсет а обычный (Alt+"(" и Alt+")").

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

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

Re: Inkscape tutorials

Сообщение Nick »

Совсе забыл, еще можно использовать функцию area из gcodetool. Она сама создаст необходимое количество офсетов с нужным отступом.
Аватара пользователя
Unikus
Опытный
Сообщения: 194
Зарегистрирован: 22 ноя 2010, 01:53
Репутация: 1
Настоящее имя: Николай
Откуда: Португалия,Порто
Контактная информация:

Re: Inkscape tutorials

Сообщение Unikus »

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

Re: Inkscape tutorials

Сообщение Nick »

Да, нужно математику штудировать.
Нужны периодические функции с хитрым периодом.

Если же мы захотим обрисовывать какие-то контуры... то нужна функция периодическая для длинного прямого участка. А потом ее можно будет загнуть в контур.

с математикой я разобраться смогу, но нужны примеры и закономерности. Т.е. примерное описание следования траектории (аля сначала вправо, потом петелька и т.д.).
Аватара пользователя
Unikus
Опытный
Сообщения: 194
Зарегистрирован: 22 ноя 2010, 01:53
Репутация: 1
Настоящее имя: Николай
Откуда: Португалия,Порто
Контактная информация:

Re: Inkscape tutorials

Сообщение Unikus »

Мне кажется здесь нужно плясать от обратного.Сделал примерный набросок узора по спальцавысосанной функции :roll: .Потом подцепил какой-нибудь из узлов,потащил мышом в сторону ,подкорректировал...Визуально,то есть.Ну и в окне автоматом выписывается по ходу полученная формула. :cheesy: Эт я так,по-ламерски рассуждаю.Как оно на самом деле ,с точки зрения разработчика,может оно так и не получится.Или много трудозатрат ...
Аватара пользователя
Unikus
Опытный
Сообщения: 194
Зарегистрирован: 22 ноя 2010, 01:53
Репутация: 1
Настоящее имя: Николай
Откуда: Португалия,Порто
Контактная информация:

Re: Inkscape tutorials

Сообщение Unikus »

И ещё,Коля,глянь здесь http://woodgears.ca/gear_cutting/template.html генератор зубчатых колёс.Как по, мне вещь классная.Всё делается кавалерийским наскоком и без спецподготовки. Единственная засада,только платная версия даёт возможность сохранять в формате DXF и больше функций.А бесплатная только в плоттере выдаёт.Замучился выцарапывать оттуда картинку :D . Если бы такой плугин в Инкскэйп прикрутить,цены бы не было.Насколько сложно создать такой же?
Аватара пользователя
Nick
Мастер
Сообщения: 22776
Зарегистрирован: 23 ноя 2009, 16:45
Репутация: 1735
Заслуга: Developer
Откуда: Gatchina, Saint-Petersburg distr., Russia
Контактная информация:

Re: Inkscape tutorials

Сообщение Nick »

Если бы такой плугин в Инкскэйп прикрутить,цены бы не было.Насколько сложно создать такой же?
А чего конкретно не хватает? В принципе, все предельно просто. Самая большая сложность - ГУИ для рисования сохранения и тому подобное, а это все реализовано в Inkscape.
Если нужны дополнительные параметры для шестеренок, то лучше дополнить уже существующее расширение для их создания.



По поводу гильошей:
Любая кривая, которую мы видим в инкскейпе задается параметрически по-сегментно :
x(t) = axt3 + bxt2 + cxt +dx
y(t) = ayt3 + byt2 + cyt +dy
меняются только параметры ax, bx, cx, dx и ay, by, cy, dy. Но проблема в том, что с такой функцией не так просто работать, например потому, что она параметрическая. Хотя все это решаемо. Почему я говорю о математическом задании функции, потому, что если мы зададим функцию аналитически, т.е. с помощью формул, то потом с ней можно будет делать все что угодно - увеличивать, уменьшать, поворачивать и т.п. не теряя гладкости.

Но начинать можно просто с красивого узора, не важно как заданного, с последующим его описанием.
Аватара пользователя
Unikus
Опытный
Сообщения: 194
Зарегистрирован: 22 ноя 2010, 01:53
Репутация: 1
Настоящее имя: Николай
Откуда: Португалия,Порто
Контактная информация:

Re: Inkscape tutorials

Сообщение Unikus »

А чего конкретно не хватает? В принципе, все предельно просто.
Дык не нужно будет заморачиваться с вырезами окошек и т.д. и т.п. Хотя,наверное уже привередничаю.Не от лени,а из экономии времени. :) В принципе,если бы существующий плуг подправить на манер той проги... ;)
Аватара пользователя
Nick
Мастер
Сообщения: 22776
Зарегистрирован: 23 ноя 2009, 16:45
Репутация: 1735
Заслуга: Developer
Откуда: Gatchina, Saint-Petersburg distr., Russia
Контактная информация:

Re: Inkscape tutorials

Сообщение Nick »

Т.е.:
  • окошки
  • дырка под вал
  • создание сразу нескольких шестеренок
Я бы еще пересмотрел форму зуба.

ЗЫ есть второй способ рисовать шестеренки: рисуешь при помощи инструмента Bezier кривую и добавляешь ей эффект Path->Path effect editor (Shift+Ctrl+7) добавить эффект шестеренки. Первые три узда задают первую шестеренку (центр, поворот, радиус), остальные узлы по одной шестеренке на узел (центр).

Но контурные эффекты на сколько я знаю прописываются в коде Inkscape и с ними будет сложнее что-то сделать.
Вложения
inkscape gears to gcode.png (17693 просмотра) <a class='original' href='./download/file.php?id=903&mode=view' target=_blank>Загрузить оригинал (145.85 КБ)</a>
V0id
Почётный участник
Почётный участник
Сообщения: 99
Зарегистрирован: 18 ноя 2010, 20:37
Репутация: 0
Контактная информация:

Re: Inkscape tutorials

Сообщение V0id »

А можно в Incscape каким нибудь способом вынести на кнопку плагин? Или на хоткей хотяб. Надоело по меню лазить каждый раз.
Аватара пользователя
Nick
Мастер
Сообщения: 22776
Зарегистрирован: 23 ноя 2009, 16:45
Репутация: 1735
Заслуга: Developer
Откуда: Gatchina, Saint-Petersburg distr., Russia
Контактная информация:

Re: Inkscape tutorials

Сообщение Nick »

Какой плагин?

Там есть две кнопки повторить выполнение и повторить с настройками.
И еще многие плагины можно просто не закрывать. ;)
Ответить

Вернуться в «LinuxCNC»