FXTD (From XLS to DWG) - это не сложный скрипт-проект на VBA-Excel основе, представлет из себя файл xlsm.
Основноая задача его создания - доказать универсальнойсть подхода, при котором чертёж воспринимается как информационная модель графических свойств, параметров и атрибутов, которые легко могут обрабатывать простые в освоении внешние инструменты работы с таблицами.
Всё началось на Хабре.
Уже само собой это показатель, ведь Хабр - это прежде всего сообщество объединившееся для обмена знаниями, идеями и интерсностями.
В далёком 2015 году на Хабре появилась статья >>> от камрада zvyagaaa, по специальности инженера-проектировщика ОВиК. Ключевым в введении к ней была фраза "..покажу, как можно без особых забот сделать самому то, за что серьезные ребята берут не плохие денежки..."
В статье описывалась, как простой проектировщик вентиляции с помощью Экселя, VBA и упорства сделал себе вполне рабочий инструмент по автоматизации проектной рутины.
В основе была идея, что в таблице эксель, в котором 99% проектировщиков выполняют рутинные расчётные задачи, не подготовленный по кодингу специалист может формировать параметры и атрибуты, транслируемые в чертежи дае ещё и с посылом что обратный процесс тоже возможен.
Естественно сырой опубликованный код был слабо применим широкими массами людей, всё таки не слишком он был юзер-френдли.
Но вот идея, которую эта статья зародила и дальнейшее доведение кода дали вполне ощутимую перспективу автоматизации вообще любых процессов проектирования силами... проектировщиков.
Представим обычного проектировщика в вакууме, пожелавшего самостоятельно автоматизировать свои процессы и методы и недовольного вертикальными решениями крупных САПР-холдингов, разбирающихся в инженерии чуть больше чем на нулевом уровне. Чему учат на всех курсах по САПР - чертим линию, потом кружок, потом тело. Вот сделали командой блок или семейство, вот даже научили парметризовать это. И следующий шаг - универсальный обмен между расчётными методами и чертежами - уже осваивай сам, как хочешь.
После этого нужен более высокий уровень управления графическими данными, нужна аналитика, расчётная часть коллективного применения. И каждый новый инструмент, каждая новая задача требуют времени, на анализ, разработку, освоение, применение, а пока проектировщик занят несвойственным ему делом, программированием, он уже может забыть что и как реализовывал ранее, да и по своей специальности отстать может. На выходе нужны проекты, а не сложные коды.
Вывод - надо научиться использовать тот low-code инструмент, который всегда под рукой, которым умеешь в совершенстве пользоваться, который может твои универсальные расчёты в промышленных масштабах и удобно перегонять в чертежи и получать обратно.
Но главное. Надо все свои наработки бережно сохранять, надо подсматривать кто чего достиг, делиться своими успехами, да и объединять усилия важно.
Вот на такие мысли натолкнула эта старенькая статейка и было решено доработать этот небольшой, но страшно полезный, кусочек кода до такого состояния, способного продемонстрировать здравость подхода.
Вот так и родился FXTD, а следом и сам проект LoVo KB.
Скрипт умеет считывать содержимое свойств динамических блоков и важные системные характеристики, определенные стартовой таблицей.
В том числе может считать:
- системные характеристики (имя, поворот, координаты, масштаб, слой, Handle)
- "выбор динамического блока" (видимость, параметр выбора или таблицы выбора)
- атрибут (текстовая строка)
- геометрический динамический параметр (длина, угол).
Скрипт умеет формировать массивы динамических блоков с заданными в таблице Excel значениями параметров и атрибутов, присваивать блокам нужные системные параметры.
После обработки массивов информации средствами формул Excel, PowerQuery или PowerPivot результаты вычерчиваются в чертеже.
Скрипт умеет менять существующие объекты на чертеже, считывать адрес Handle из таблицы, находить в чертеже соответствующий динамический блок и присваивать параметрам, атрибутам и характеристикам заданные в таблице Excel значения.
После обработки массивов информации средствами формул Excel, PowerQuery или PowerPivot результаты корректируются в чертеже или чертёж дополняется.
Есть выбор, добавлять новые блоки, если блок с таким Handle не найден, или работать только с существующими.
Скрипт умеет собирать данные о свойствах имеющихся у выбранных динамических блоков и определять каждое из них:
- это "выбор" (например видимость);
- это атрибут;
- это параметр.
Причем параметр определяется с типом единиц измерения (угол или расстояние), свойство "выбор" с определением вариантов выбора, заложенных в блоке.
Считанные данные о имеющихся у блоков параметрах и атрибутах формируются в отдельный лист таблиц, им присваиваются именованные диапазоны для простоты дальнейшей обработки средствами Excel.
На данный момент идёт работа над версией 1.0.0.4 скрипта.
Составлен план работ и коллектив доводит некоторые имеющиеся функции до совершенства и добавляет новые фичи.
Каждый может ознакомиться с планом текущих работ.
В будущем, предположительно, данный файл будет стандартным элементом выгрузки из пользовательской базы данных, он уже будет иметь все необходимые информационные связи и настройки для прямого обращения к чертежным средам даже в офлайн режимах или для передачи коллекций, проектов сторонним специалистам, заказчикам, не имеющим доступа к серверу и клиенту LoVo.
Наш скрипт-проект FXTD распространяется абсолютно бесплатно и каждый может взять его в неограниеченное пользование и делиться со всеми остальными, т.к. прежде всего он необходим для распространения идеи нашего проекта среди множества проектировщиков и привлечения их в наше сообщество.
Правда, иногда он будет выдавать ссылку на нашу группу, а также первоначально его можно скачать только Донам нашего сообщества.
Всё дело в том, что информационная поддержка и распространение идеи в социальных сетях не бесплатные и требуют вложений в рекламу. Все средства от донатов попадают в оплату услуг распространения.
Прошу и вас поддержать, если идея вам близка или вы чувствуете, что наш скрипт окажется вам очень полезен.