Обновления макросов. Оптимизация скорости создания чертежей.

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

В макросе Конструктор шкатулок так же исправлена небольшая ошибка неверной блокировки параметров шип-пазового соединения в пеналах с накладными направляющими. Более наглядно я показываю в небольшом видео:

Обновление руководств пользователя

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

Руководство пользователя «Конструктор узоров»

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

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

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

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

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

Бордюры.

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

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

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

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

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

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

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

В.Шумаков

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

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

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


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

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

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

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

Или даже так:

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

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

Делаем подарочную коробочку к 8 марта. Обновления макроса Конструктор бумажных коробок 0.39

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

Итак, преступим. Перво-наперво, открываем в кореле макрос «Конструктор бумажных коробок» версии 0.39 и в разделе «Декоративные коробки» выбираем новый тип коробок:

Поскольку, мой плоттер может резать не слишком большие листы, я изначально выбрал габариты коробочки как 80 на 80 на 80мм (правда, потом я понял что ошибся, так как развертка вышла больше стандартной ширины листа А 4, а скрапбумаги с размерами 30.22мм не оказалось, но я покажу как я выкрутился чуть ниже). В доп. настройках надо ещё указать что число внутренних вкладышей 1 (то есть внешняя стенка, плюс ещё одна внутренняя).

Так же, задаём высоту крышки в 20 мм. Это оказалось довольно много , но это я понял уже после сборки. Но вообще, чем больше, тем надёжнее будут фиксироваться клапаны стенок в собранном состоянии!
Делаем чертёж:

В целом всё просто, и если есть красивая скрап бумага в тему подарка, или же будут делаться наклейки на клапаны коробки и крышку, то на этом можно было бы и закончить с чертежами. Но у меня под рукой только обычная плотная цветная бумага, поэтому призову в помощь свой второй макрос  «Конструктор узоров»
Я хочу создать накладную розетку из сердечек на крышку, и такую же прорезку, (в инверсном виде), для стенок.
Замеряю размер крышки и стенок, и записываю что ширина крышки 82 мм а стенок- 80мм (крышка больше, так как должна вместить внутри после склейки толщину клапанов вклейки и сами стенки коробки).
Захожу в макрос узоров, выбираю радиальные узоры. Сразу ставлю размер по размеру стенок (проще так, чем дважды подбирать ещё и для крышки, тем более что разница в размерах не такая и большая) и выбираю элементом узора сердечко. Размер сердечка и число элементов по окружности и вдоль радиуса придётся подобрать вручную, с учётом того, что слишком мелкие элементы плоттер не сможет вырезать а просто помнёт и порвёт стенки.

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

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

Ближе к цели, но всё равно мало! Значит поставлю -3 (с запасом!) и этого должно хватить, поэтому сразу сделаю и объединение в один узор:

То что надо! Но я получил узор только для разетки на крышку, а я хочу аналогичные добавить и на стенки! Значит, надо задать параметр присоединенной стенки, и задать отступ  в 3 мм (узор сместился от исходного размера  на -3мм  для получения слитности внутреннего ряда, и  значит надо компенсировать это смещение) :

Снова делаю чертёж:

То что он имеет такие большие границы — не важно, это специальная фича, дабы учитывать возможный разброс при вариациях, но это не про сейчас, поэтому просто не обращаем внимание! Тем более, я выделил чекбокс «копировать в буфер обмена» и нужный мне внутренний рисунок уже скопирован туда! Значит,я могу  перейти в исходный чертёж коробки и просто сделать вставку:

Дальше рутинно ровняю, дублирую 3 раза и снова  ровняю. Пока не выходит такой вот чертёж:
Дальше я начал по-детально переносить в программу с которой работает мой плоттер и как раз только тут понял, что я ошибся с размерами! Можно конечно по новой всё прогнать через макросы, но зачем? Я знаю, что мне надо получить размер детали с клапанами не более 200 мм. А у меня вышло 240. Значит, я могу изменить на какой то процент (благо Корел это позволяет), а затем этот процент применить ко всем остальным деталям. В итоге, я пропорционально уменьшу исходный чертёж. Попробовал 80% и получил 192 мм. Отлично! Хоть коробка и стала меньше на 20%, но в принципе для урока это не критично!
Дальше последовала резка и склейка:

А итог  я показал в начале!

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

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

Конструктор узоров (0.50) теперь открыт для пользования!

В свете того, что макрос «Конструктор узоров» достиг достаточной на мой взгляд зрелости, чтобы его можно было эксплуатировать в полной мере, я решил что пора его открыть миру. По вопросам приобретения обращайтесь через форму обратной связи!
Теперь об новшествах в версии 0.50
Самое главное, помимо легкого изменения дизайна и добавления пары небольших элементов, это раздельные вариации для разных направлений! В чём суть изменения? И прежде вариации можно было применить и по горизонтали (окружности) и(или) по вертикали (радиусу). Но, вариации всегда были одни и те же для обоих направлений! Даже параметры в них нельзя было сменить. Я подумал за время вынужденной паузы на ремонт в офисе, что это слишком сужает возможности в использовании вариаций. И решил, что сделаю ещё возможным и использование вариаций раздельно, для каждого направления. Впрочем, первый вариант работы я оставил возможным как выбираемую опцию, так как иногда такие сложности с раздельными вариациями будут излишни, а то и вредны, так как могут приводит к ошибкам в копировании параметров.
Приведу пример использования, чтобы стало понятнее:

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

Смотрим что выходит:

По горизонтали — линейное смещение, а по вертикали — синусоида!
Более того, вариации можно делать независимым у второго элемента (при условии что оба элемента не чередуются по вертикали или горизонтали), что может приводить в очень интересным узорам:

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

Видео конструирования шкатулки «Сердечко» к 8 марта, с использованием Конструктора шкатулок и Конструктора узоров

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

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

Регулируемые смещения, буфер обмена и ещё кое-что. Обновление 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.43)

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

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

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

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

Конструктор узоров. Вариация смещения и узор смещения вдоль радиуса в обновлении 0.41

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

Смещение вдоль радиуса (линейное в данном примере)

Смещение вдоль окружности (так же линейное)

Можно применять все алгоритмы. Иногда получаются интересные эффекты:

Эффект туннеля (синусоидальный алгоритм смещения вдоль окружности)

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

Вариация красных элементов по цвету вдоль окружности (по синусоиде), синие элементы — вдоль радиуса (тоже синусоида)

Вариация красных и синих элементов по цвету вдоль окружности (по синусоиде).

3)Радиальный узор со смещением столбцов вдоль радиуса. Аналогичный режим есть в линейных узорах.

Такой режим узоров позволяет создавать более разряженные у внешнего края узоры:


Кроме дизайнерского использования, само собой разумеется, что весьма интересные результаты можно получать и для создание узоров для прорезки на станках ЧПУ: