Видео по проблематике макросов

Обновление 1.23 Исправление нескольких ошибок. Ближайшие планы.

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

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

Зачем я это делаю? Ответ просто — код первой версии стал настолько запутанным и мало редактируем, что вносить в него какие то изменения, не сломав по пути уже отлаженное, стало почти нереально. Любая мелочь о которой меня просят (например, перегородки в изделиях отличных от прямоугольных ящиков и шкатулок, или петлевые крышки для шкатулок), почти неизбежно вносит хаос в работу логики по уже отлаженным изделиям и вылавливание логических ошибок занимает времени на порядок больше, чем само нововведение. Почему так происходит? С одной стороны, когда писался код первой версии, то я очень плохо понимал как работает Корел, и не знал особенности языка VBA. Теперь, когда я вынужден в нём работать уже 6 лет, я не то чтобы стал экспертом (язык просто отвратительный!), но по крайней мере опыта стало достаточно, чтобы его учесть, и попытаться сделать что то более гибкое. нежели сейчас.

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

Вторым моментом, косвенно вытекающим из особенности работы нового ядра, будет режим, когда вместо готовой детали можно получить набор элементов, которые в дальнейшем можно использовать для самостоятельного рисования чертежа детали. То есть, можно например просто задать параметры шип-пазового соединения (длину всего соединения, число шипов, толщину материала и т.д.), и получить рисунки двух граней. Одной для шиповой и второй для пазовой части соединения. А потом использовать такие «пазлы», для отрисовки имеющегося чертежа, но с неподходящими значениями по толщине материала. Правда, это скорее всего будет отдельный макрос, так как включать его в параметрический конструктор считаю не очень практичным.

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

Независимая настройка компенсаторов. Обновление 1.22

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

Получаем такой чертёж у шипов и пазов:

Видно, что и протяженность, и «высота» выступов различна у шипа и паза. Кроме того, можно независимо выставлять режим микрошипа. Ну и конечно, можно вообще независимо отключать компенсацию (но это было и в прежнем варианте).

Помоимо этого, исправлена ошибка приводившая к невозможности использовать обновлённый макрос на версиях CorelDraw Х4 и Х5. Так же изменилась немного организация рисования псевдо3D внешнего вида. Теперь не должно появляться зависаний картинок.

Две новые коробки со склейкой. Обновление 0.43

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

Получаем такой вот чертёж:

Вторая коробка многим знакома по коробкам, в которых обычно продаются наборы офисной бумаги в пачках. Состоит из крышки, и коробки с клапанами:

И собственно чертёж:

Наклонные стенки. Обновление 1.21

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

Для создания отмечаем чекбокс «Конус» и задаём параметр смешения в мм. внутрь или наружу (в зависимости от знака перед параметром) . И получаем чертёж на выходе:

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

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

Наклон здесь только у передней и задней стенок. Левая и правые остаются вертикальными. Может быть, я смогу реализовать в дальнейшем и вариант с усечённой пирамидой. Величину наклона регулирует снова параметр смещение. Он так же как и в овальных стенках не в градусах наклона, а в миллиметрах на которые будет больше или меньше ширина ящика вверху или внизу (зависит от знака).


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

Новое изделие «Лист гибкой стенки». Обновление 1.19

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

Настраиваемые компенсаторы. Обновление 1.18

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

А вот так, когда можно настраивать:

Высота компенсатора 0.1 мм, длина — 50%
Высота компенсатора 0.3 мм, длина — 100%

Как видно, компенсаторы можно достаточно в больших пределах варьировать. Делается это просто:

Ну, и ещё исправлена ошибка, в которой микрошипы компенсаторов появлялись в прорезях под замки для книжки шкатулки.

Проба псевдо 3D в настройках размеров. Обновление 1.17

Многие, кто работает с конструктором шкатулок, конечно привыкают к тому, что макрос не имеет визуального представления, того, что пользователь вводит в виде параметров. До момента, пока не создаётся чертёж, порой трудно представить, что получится потом (а некоторые увы, не имеют хорошего пространственного мышления, не могут и по чертежу понять до конца). Проблема в том, что сама система в которой работают макросы (VBA), не позволяют напрямую использовать возможности в интерактивной отрисовке по мере ввода параметров, внешнего вида изделия. Очень давно хотел что-то такое попробовать, но вот как то не получалось. Сейчас сделал на пробу такую пусть и примитивную, и почти 3d отрисовку в самом макросе.

Обычный вид окна ввода параметров
Включен режим предпросмотра.

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

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

Ещё один макрос на заказ. Авто расстановка номеров и штрих кодов.

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

Демонстрация работы макроса BarCode Wizard

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

Вкладыши. Обновление 1.15 «Конструктор шкатулок»

Нынешнее обновление не слишком большое, но тем не менее, в нём содержится добавка, о которой меня давно просили, а так же небольшой момент, который может быть так же полезен в работе. Начну с последнего.
В коробках (а так же во всех прямоугольных шкатулках) есть самый примитивный тип крышки — накладная. Если надо, чтобы крышка плотно держалась на стенках, то есть расширенный варианта этой крышки — крышка со вкладышем. Вкладыш, по умолчанию, это довольно большой кусок фанеры площадью в весь внутренний размер изделия. Это и утяжеляет крышку, да и расходует материала впустую. Я добавил небольшой чекбокс, который превращает такой вкладыш в 4 уголка:

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

На сгенерированном чертеже появятся 2 вкладыша, который одеваются на выступы на крышке (желательно одевать на клей, чтобы они не выпали), и вставляются внутрь петли:

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

Разработка макроса на заказ. Генератор файлов для резки цветных пазлов

Иногда меня спрашивают о том, делаю ли я макросы на заказ? Да, иногда делаю. Но не всякие, и наверное увы для многих не за дёшево. В видео я описываю один из таких проектов на заказ, в котором кстати я увидел кое что , что смогу внести в свой макрос «Конструктор узоров».