Задаваемая средняя линия. Гильошь — бордюр. Обновление 0.64

Это обновление макроса Конструктор узоров, за номером 0.64, будет достаточно глобальным, и статья о нём вышла большой. Но, в ней я стараюсь пояснить многие тонкие моменты, которые нашёл в ходе работы и поэтому, надеюсь, она будет полезной!
Основные нововведения  это: линейный гильош, который иначе ещё называют «бордюр» и добавлена возможность задавать модулирующую среднюю линию в качестве независимой отдельной линии. Начну со второго.
Что делает модулирующая линия? Давайте рассмотрим на примере. Вот простейшая розетка, с такими вот параметрами и ортогональным притяжением (это означает, что модулирования заполняющей кривой не происходит!).
Если убрать галочку у пункта «Ортогональное притяжение к границами», то картинка изменится существенно!

Внешне выглядит очень хаотично, но главное, даёт понять наглядно, что происходит. А именно — направление заполняющей кривой теперь отклоняется дополнительно согласно нормали к кривой, которая образована как среднее между линиями образующими границу гильоша. Звучит сложно (и это и правда понять не легко!), но в целом разобраться можно. Ясное дело, нам такой узор не особо нужен, но и отрегулировать его сложно, так как центральная модулирующая линия напрямую зависит от амплитуды кривых (да и их частоты), обрамляющих гильош. А значит, тяжело что либо с этим поделать напрямую. Но, если задавать независимую центральную линию, то появляется возможность полностью контролировать модуляцию заполняющей линии:
Хорошо видно, что розетка преобразилась и стала и не скучной, и не хаотично выглядящей.
Чтобы добиться этого, надо поставить чекбокс «Задаваемая центральная линия», то разблокируется кнопка «Выбор централи», в которой появляется и задаётся требуемая линия.  При нажатии на неё, появляется форма «Узор»:

В принципе, она полностью повторяет задание линии обрамления (по существу используются те же самые алгоритмы и возможности). Но есть очень важный момент: надо очень аккуратно задавать значение параметров периода и главное — амплитуды! Период желательно задавать кратный периодам обрамляющих кривых. А амплитуда в очень редких случаях должна быть больше  1/5 или даже 1/10 максимальной амплитуды у любой из обрамляющих кривых! А наилучшие результаты выходят при значениях меньших 1 (иногда намного меньших)! Иначе, вместо модуляции алгоритм создаст хаотическое награмождение кривых!
Можно поэкспериментировать с разными типами кривых и их параметрами:

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

Бордюры.

Бордюры, по существу используют тот же алгоритм построения что и розетки, и отличаются тем, что вместо радиуса теперь используется два параметра: длина огибающей (и соответственно бордюра) и смещение. И есть два важных пункта в задании параметров огибающих линий:

    • Длина линий огибающих должна совпадать
    • Верхняя линия должна быть смещена выше нижней, причем желательно таким образом, чтобы форма огибающей кривой, с учётом заданной ей амплитуде, не пересекалась с формой нижней огибающей.

Иначе, алгоритм даст сбой!
В остальном, в принципе работа с кривыми повторяет работу с розетками:

Работа с централями так же повторяет (почти!) работу с таковыми у розеток:

Конечно, на этом возможности и особенности работы с бордюрами далеко не разобраны, но это будет лучше сделать в видеоуроках, которые я надеюсь скоро выйдут!

Гильошь-розетка. Обновление конструктора узоров 0.58

«Ударим работой по карантину!»

В.Шумаков

Данное обновление не совсем относится к обычной тематики моего софта для станков чпу, но с другой стороны, никто ведь не говорит, что гильошные узоры нельзя к примеру выгравировать, или например распечатать на бумаге как раскраску материала и потом порезать из бумажную коробку!
Итак, как понятно из названия заметки, новое обновление направлено на интересный тип оформления, которое применяется очень часто например на денежных купюрах — а именно гильошным сеткам. Почему они гильошные, и как были изобретены, можно посмотреть в той же Википедии.  Данное обновление (0.58), позволяет создавать как полноценную гильошную сетку на основе параметрических формул, так и не совсем честный гильош, основанный на перетекании форм, инструмента Blend CorelDraw. Скажу сразу, на текущий момент, правильные гильоши реализованы только на базовом уровне, но в принципе, достаточно полно, чтобы начать ими пользоваться в полной мере. Несомненно, я продолжу расширять функционал, до уровня более профессиональных инструментов, представленных на рынке (хотя понимаю что и не составлю им конкуренции, но и цели у меня не эти).

Итак, гильош как и все остальные типы паттернов, создаётся отдельной формой:
На текущий момент можно создавать две перетекающие розетки. Возможной я добавлю ещё, но пока не вижу надобности. Каждое заполнение розетки определяется двумя ограничительными контурами, которые я буду называть границами. На текущий момент, доступно три типа границ:

  • видоизмененные вершины у многоугольника по встроенным механизмам CorelDraw
  • многоугольники с различными кривыми на гранях
  • параметрические кривые заданные тригонометрическими формулами


Первые два типа будут хорошо знакомы пользователям Конструктора шкатулок, так как они в общем-то взяты оттуда. Третий это просто синусоида запущенная по окружности. Ограничений на использование сочетаний в качестве границ нет! И это позволяет создавать достаточно нетипичные узоры.

Внутреннее заполнение, между созданными контурами, как я уже писал выше, двух типов:

  • перетекание от одного контура к другому средствами CorelDraw
  • заполнение параметрически заданными кривыми

Причем, ограничений на совместное использование этих заполнений так же нет!

Или даже так:

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

Само собой,  что без ошибок в макросе не обошлось (нашел пару пока делал галерею примеров). Да и вообщем-то, достаточно сложно в понимании что как формируется. Например, некоторые сочетания параметров приводят к хаотическому нагромождению кривых, вместо красивой сетки. Так что, наверное придётся сделать несколько уроков. Но в целом, наверное можно признать что более менее работает.
Далее будет линейные гильоши, тангирные сетки и целый бланк (тангирное заполнение, гильошные границы и розетка в центре) . Но когда дойдут до этого руки — пока не знаю. Надеюсь, в долгий ящик не отложится.

Регулируемые смещения, буфер обмена и ещё кое-что. Обновление 0.47

Поскольку меня весьма активно спрашивают о третьем моём макросе «Конструктор узоров», а точнее, о том когда он будет доступен хотя бы для тестов, я активно стараюсь довести его до состояния, когда мне не будет стыдно отдать его в пользование! Поэтому, в данном обзоре описано довольно много нововведений в работе этого макроса.

Коэффициенты линейности.
Как я ни старался создать более равномерное распределение элементов в радиальных узорах при задании линейного типа изменения шага в радиальном направлении (от периметра к центру) или линейное изменение размера, всё равно, чаще всего, это приводит к сильной асимметрии в распределении элементов и эстетически это не очень красиво. Чтобы хоть как-то поправить это, я решил, что можно позволить задавать коэффициент изменения параметра линейности пользователю.



Причём, если элементов два, то коэффициенты линейности размеров у каждого элемента могут быть свои!

Подбирая параметры, теперь можно добиться вполне приемлемых результатов, с почти идеальной повторяемостью узора на разных расстояниях от центра. Или наоборот сделать интересный и необычный асимметричный узор!

Коэффициенты вариаций.
Я изначально отталкивался от идеи того, что коэффициенты в разных видах вариаций параметров просто идут по принципу процента от задаваемого параметра (размеров, углов). Например в поворотах 100% это полный поворот фигуры (360 градусов). Но очень быстро понял, что это глупо, потому что надо каждый раз прикидывать, как переводить углы в проценты!

Поэтому там где параметры по смыслу в углах, они теперь как и положено задаются в углах.

Вариация поворота по горизонтали, заданная от 0 до 360 градусов

А для вариации поворота снято в добавок ко всему и ограничение на один оборот. Можно задавать углы сколь угодно большие (на самом деле нет, но в принципе можно задать от -720 до 720 градусов, и  элемент вдоль направления совершит 4 полных оборота!). Но на вариации скосах, ограничение в 180 градусов действуют !

Авторасчёт для радиальных узоров.
Работает он правда пока ещё не всегда удовлетворительно, но в целом, для начальной прикидки с текущими размерами элемента номер один, пользоваться можно.

Параметры количества элементов вдоль радиуса и по окружности рассчитываются так, что-бы между соседними элементами вдоль окружности оставался зазор в 0.25 ширины элемента. Аналогично и для высоты, но тут уже всё слишком приблизительно так как по радиусу шаг в любом случае труднее отрегулировать через число элементов, нежели по окружности. Предполагаемая логика такова, что задаём размер первого элемента, задаём диаметр узора, и автокалькуляция предложит число элементов вдоль окружности и радиуса. Можно провести тестовую генерацию, и на её базе уже можно будет убрать автокалькуляцию и в ручную подобрать все необходимые для узора параметры. Чудес от режима ждать не надо.

Автокопирование в буфер обмена.
И напоследок, «вишенка на торте» для тех, кому макрос будет нужен не в дизайнерском деле, а для генерации узоров для последующей гравировки или резки на изделиях на станках ЧПУ. Без неё, смысл самого макроса для многих бы потерялся, так как сгенерированный  в макросе именно для резки узор, пришлось бы:

  1. разъединить (Ctrl+K), удалить внешний контур
  2. затем снова соединить оставшееся в группу (Ctrl+G) или один узор (Ctrl+L)
  3. скопировать это в буфер обмена (Ctrl+C)
  4.  потом только вставить в чертёж в нужное место(Ctrl+V)
  5. и только теперь объединить контур в один (выделить всё и  (Ctrl+G) или  (Ctrl+L)).

Не то чтобы очень много ручных операций, но на каждую надо потратить время, а главное — понимать и знать как это сделать! Поэтому я убрал этапы 1-3, и сделал возможность ограничиться только этапами 4 и 5. Для этого достаточно лишь в общих настройках макроса поставить галочку в пункте «Копировать в буфер обмена».

И после генерации любого узора, он будет скопирован в буфер обмена и достаточно будет только вставить в нужный документ. Причем, если узор не предназначен для резки (нет объединения в элементов в один узор (чекбокс  в параметрах настройки узора «&»  и не стоит в общих настройках чекбокс «Присоединённая граница узора»), то разъединения границы узора не происходит, и в буфер обмена копируется просто весь узор. Тоже какая никакая, а экономия времени для дизайнера.

 

Я ещё немного потестирую и наверное начну ещё до нового года распространять данный макрос! Может кому сгодится уже и в этом году в работе над подарками к Новому году!

Цветовые вариации в радиальных узорах из двух элементах (Конструктор узоров версия 0.37)

Поскольку я свой новый макрос ориентирую не только для создания узоров для последующей гравировки или вырезания, но и для дизайна, я стараюсь довольно тщательно работать с цветами. Радиальные узоры  применяются очень часто в различных дизайнерских работах, и как раз возможность автоматизировать создание цветовых вариаций однотипных элементов, составляющих геометрический узор, как мне кажется, будет экономить очень много времени!

Все радиальные узоры из двух элементов, я условно разделяю на 3 категории. Первая категория — это когда второй элемент (круги красного цвета) ложится внутри сетки распределения первого элемента (круги синего цвета).
Как видно, красные круги, смещены относительно синих на половину шага как вдоль радиуса, так и вдоль окружности.

Вторая категория:  элементы чередуются вдоль направления по окружности:
Видно, что элементы одного вида образуют лучи идущие от центра.

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

В таком виде, данные узоры мало интересны с точки зрения дизайна, и могут быть сравнительно быстро повторены любым знающим хоть немного CorelDraw, буквально за несколько секунд! Но всё начинает немного меняться. если вспомнить об основной фишке макроса «Конструктор узоров» — о вариациях. Причем, вариация цвета, неожиданно даже для меня оказалась очень гибкой, так как позволяет манипулировать цветами независимо для каждого элемента. Причем это касается как алгоритма изменения цветов (сейчас в версии 0.37 их 4 : линейный, синусоидальный, пилообразный и меандр), так и по направлению применения алгоритма (по кругу или вдоль радиуса). Это позволяет организовать весьма гибкие схемы изменения цвета каждого из элементов в узоре!
Все примеры. я сделал в виде трёх галерей, в которых показаны лишь одни из очень большого множества возможных вариантов использования цветовых вариаций. Они не очень красочные, но зато наглядно демонстрируют возможности макроса.
Вариация цвета двух элементов без чередования:

Вариация цвета двух элементов с чередованием по окружности:

Вариация цвета двух элементов с чередованием по радиусу:

Перечень примеров далеко не полный, но вполне даёт представление о гибкости макроса в этом вопросе! Вручную такие настройки будет сделать весьма непросто!

Новые типы паттернов сеточного узора:сдвиг по вертикали и горизонтали.

Продолжаю работать над макросом «Конструктор узоров». Следующей на очереди у меня была работа с сеточными паттернами, которые имеют сдвиг элементов на половину шага сетки в четных ядах или столбцах. Видео на сей раз делать не стал, просто привожу скриншоты, чтобы было понятнее о чём будет идти речь:

Паттерн из двух элементов чередующихся в строках, без сдвига
Паттерн из двух элементов чередующихся в строках, со сдвигом по столбцам
Паттерн из двух элементов чередующихся в строках, со сдвигом по строкам

Такие патерны могут быть удобны например, при создании узором из шестигранников.

Само собой разумеется, что вариации так же применяются к таким паттернам:
Как итог, можно получать разные и уникальные варианты, которые могут быть весьма интересны в работе

 

 

Конструктор узоров. Работа с цветом, градиентной заливкой. Обрезка по произвольному контуру (версия 0.24)

Очередные нововведения полезны скорее тем, кто будет работать с графическими вариантами узоров, нежели для удобства создания разных узоров для ЧПУ, но тем не менее, считаю что поскольку макрос имеет более широкую направленность чем просто для работы с ЧПУ, то такие возможности с точки зрения универсальности будут полезны.
Итак, сперва как обычно видео, затем пара слов о каждом новом свойстве макроса.

Первое, это более глубокая работа с цветом. Теперь например можно заливать цветом не только контурные элементы (у которых две границы — внутренняя и внешняя) но и обычные линейные. Но главное нововведение это конечно возможность заливать элементы градиентом! Да ещё и во всех 4 вариантах, которые предлагает CorelDraw! На мой взгляд, это весьма украшает получаемые узоры. В дальнейшем я ещё и расширю на них возможность варьировать цвет в зависимости от алгоритма вариации, и должно получиться вообще очень интересно!
Второе нововведение — это настраиваемая толщина линий. Причем, что важно, толщина может варьироваться вместе с масштабированием размера элемента, при вариациях масштаба! Тоже внешне весьма неплохо смотрится.
Третье — это обрезка или подгонка под овальные (на видео не показал, но это банально!) или вообще произвольно заданные замкнутые контуры! Например — под буквы! По мне так очень полезно будет для дизайнеров, так как получаемая заливка сразу векторная, а значит и будет масштабироваться без потери качества под любые размеры! К тому же, можно сразу задавать смещение обрезки узора от внешней границы. Тоже может быть весьма полезным!
Ну и несколько новых примеров напоследок:

Конструктор узоров. Вариации для двух элементов.

Продолжаю краткие обзоры на тему нового макроса «Конструктор узоров»

Следующим этапом, который я для себя поставил стал создание вариаций для узоров состоящих из двух паттернов. В представленном видео краткий обзор что это такое. Поясню вкратце:

    • Теперь вариации можно применять для узоров из двух элементов, как чередующихся в строках и столбцах, так и в двух сетках.
    • Вариации во втором случае (в двух стеках) как зависимые от параметров двух элементов, так и независимые.
    • Зависимые вариации второго элемента позволяют как использовать параметры вариации первого элемента автоматически к параметрам вариаций второго, так и просто копировать (вместо того чтобы делать это вручную), например для того, чтобы потом можно было слегка изменить рисунок второго элемента.

Вторым важным нововведением, стало добавление возможности делать узор из заданных пользователем элементов.
Ну, и немного примеров:

Паттерн шестигранного узора (обновление 0.94.8)

Дабавлен ещё один узор, состоящий из шестигранных ячеек. Сразу оговорюсь, сделано так, чтобы границы в случае прямоугольного варианта рисунка обрезались красиво. А поскольку очень трудно подогнать стенки под красивый узор, пришлось ввести растягивание ближайшей обрезанной стенки рисунка под исходный размер. Посему рекомендую не делать рисунок слишком крупным. Но и сильно мельчить не стоит.
Вот пример чертежа с новым паттерном:

Так же исправлена ошибка, внесённая мною при составлении прошлых двух паттернов, которая вообще не генерировала в итоге рисунок на стенки! Так что, это ОБЯЗАТЕЛЬНОЕ обновление, в случае если вы планируете использовать генератор паттернов.

Генератор случайных узоров (обновление 0.94.5)

Понравились мне в работах моего коллеги узор состоящий из случайных линий. Решил, что стоит добавить к себе в макрос.

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

Ну а дальше, как говорится, «понеслась!»:
Выбор этих паттернов вынесен в отдельную вкладку «Случайные»

Все параметры автоматические. Параметр «Число повторений по длинной стороне» определяет число элементов добавляемых в паттерн. Внешний вид очень сильно зависит от этого параметра, поэтому может быть понадобиться некоторый экспериментальный подбор в каждом индивидуальном случае.

Третий паттерн состоит из овалов. Не смотря, на то что 4 и 5 по счёту паттерны похожи, на самом деле они дают немного разный узор! Четвёртый составляется из квадратов, а пятый из прямоугольников. Это хорошо заметно, если задать не очень большое число элементов.

Новое в версии 0.94.3

Недавно добавил два паттерна. В них была жесткая привязка  ширины контуров к толщине материала стенок. Попробовав на практике я понял, что такая привязка не совсем верна. Поэтому подумал, и решил, что для некоторых автоматически рассчитываемых узоров, нужно ввести градацию толщины. Она теперь может варьироваться от 1/2 до 2 толщин материала. Ниже приведены некоторые из сгенерированных макросом узоров для разных толщин узоров.

Должен сразу заметить, что не для всех паттернов есть такой выбор! В некоторых шаг должен быть равен 0, и поэтому выбор не предоставляется.