Что есть макрос «Конструктор шкатулок», и как я вижу его правильное использование, как разработчик?

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

Ещё  в самом начале работы над макросом «Конструктор коробок», в начале 2016 года, я чётко очертил и озвучил чем планируется быть макрос. Поскольку, далеко не все знакомы, и хотят знакомиться с перепиской тех лет, на форуме cnc.userforum.ru, а вопросы возникают постоянно, то хотел бы этой статьёй, тем кому интересно, объяснить свою позицию, чтобы упредить и вопросы ко мне, и внести ясность на будущее.

Итак, что собой представляет макрос конкретно для программы CorelDraw начиная с версии Х3? Это программа на скриптовом языке программирования VisualBasic  так называемой подверсии for Applications (для приложений).  Сейчас появилась возможность программировать на куда более быстром и продвинутом языке C#, но пока для него версия не готова. Да и буду ли я на нём писать — вопрос!

Итак VBA (так сокращенно обычно называют VisualBasic for Applications), является скриптовым языком, что в свою очередь значит, что выполняемая программа использует внутренние возможности материнского кода (Corel Draw) через так называемой предоставляемое разработчиком API (Application Programm Interface — Программный Интерфейс Приложения). Если кратко пояснить на нормальном языке: всё что посчитала нужным предоставить сторонним разработчикам корпорация Corel, в тех масштабах и может работать программист. Ну и плюс то, что даёт VBA для построения интерфейса, со стороны  уже Microsoft. Сказать честно — на VBA можно «подтянуть» очень многое! Но работать это будет кое как, очень не стабильно, и всё сильно будет зависеть от версии Windows.

К чему такая длинная преамбула? К тому, что полноценного интерфейса для работы с чертежом в CorelDraw нет! Я не могу почти ничего использовать из имеющихся у меня возможностей, чтобы интерактивно править чертёж из под макроса! Как следствие, я могу лишь предложить пользователям заранее сформированные мною предположения о том, что они могут сделать. Иначе говоря:  сделать не творческий инструмент, типа полноценной проектировочной системы (CAD), а лишь параметрический  «конструктор», в котором из типов-кубиков можно сложить ограниченное (но не малое) число комбинаций. Но, самое главное для чего и создавался такой проект: это расчётная часть сочленений между деталями! Макрос помогает, прежде всего, создать геометрически точное и выверенное соединение, с учётом геометрических размеров конечного изделия, типов соединений между собой, а главное — толщины материала! Можно сказать, что всё остальное — это всего лишь дополнительные фишки, которые конечно приятны, но на деле не столь уж и важны в 99% случаев. Те кто пробовал подогнать чьи то чертежи под имеющийся в наличии материал, наверняка понимают о чём я говорю!
Конечно, я постарался добавить много чего полезного в качестве сервиса: внешние контуры стенок, разные паттерны для гибких стенок, разные генерируемые узоры и т.д. Но, по большому счёту, это всё не главное и более того — на вот эти функции, я вообще не имею обратной связи! Почему? Потому что они большинству и не нужны. Или же не важны! Главное большинству пользователей —  создать каркас изделия, имея при этом точные сочленения. А контуры, внутренние узоры, это можно добавить и руками после! Хотя, конечно, даже я работая на практике весьма редко с макросом, сам то весьма ценю именно эти дополнительные функции! Но всё же понимаю, что они более утилитарны, нежели необходимы.

Итак, макрос всего лишь вспомогательный инструмент, в котором есть много много  (и будет ещё больше!) дополнительных настроек и фитч для удобства быстрого проектирования 12 видов объемных изделий. Могу ли я учесть все пожелания пользователей? Нет! Потому что они если и не бесконечны, но могут продолжаться очень долго! А поскольку я не могу сделать универсальным такой инструмент как макрос (см. выше почему), я не могу постоянно усложнять интерфейс пользователя, добавляя всё новые и новые настройки! В них уже и я сам порой путаюсь при использовании. Не говоря про то, что программировать все взаимосвязи становится всё сложнее а главное — новые добавляют ошибки в логику работы старых, и зачастую больше вредят, нежели облегчают жизнь. Что то несомненно будет добавляться, но это не прибавит особых преференций подавляющему большинству тех кто уже работает в макросе. или будет работать. А вот ошибки в часто используемых режимах, привнесённых в ходе добавок могут сильно испортить многим жизнь. Другим путем конечно пойти можно, разделив макрос на кучу узкоспецализированных. В итоге наверное к этому и придет в ходе развития макроса. Но на текущем этапе надо уметь остановиться, и поэтому я довольно жестко фильтрую новые функции, вносимые по просьбам пользователей.

В заключении что я хочу с казать? Избавляет ли макрос от необходимости хоть как-то знать CorelDraw? Скорее всего нет! Макрос хорошее подспорье (и наверное без ложной скромности — отличное!), но он никогда не сможет заменить творческую идею! Он даёт хороший базис в виде подогнанных чертежей, в которые можно внести свои творческие идеи.  Многие используют макрос как хороший вспомогательный инструмент в своём творчестве, а не ждут что он будет за них творить! Учитесь обязательно работе с CorelDraw, даже если сейчас вас возможности моего макроса, или любого другого, вполне устраивают! Это не так сложно, как может показаться! В  связке с макросами, владение самой программой редактирование  даёт очень широкое поле создавать и может быть успешно продавать, именно своё, индивидуальное изделие!