В современном мире компьютерное проектирование стало неотъемлемой частью инженерной деятельности. Механические системы и изделия проектируются с использованием мощных инструментов CAD (Computer-Aided Design), которые успешно помогают воплощать даже самые сложные задачи в реальность. Тем не менее, существуют серьезные вызовы в использовании традиционных систем механического CAD, связанных с обменом данными, совместной работой, отслеживанием версий и автоматизацией. Предлагаемый новый подход, ориентированный на GUI-первую разработку в сочетании с текстовым форматом исходных данных, вдохновлен методологиями программной инженерии и предлагает сделать революцию в области механического проектирования. Современные CAD-системы, такие как SolidWorks, Fusion 360 и FreeCAD, часто сохраняют свои проекты в бинарных файлах либо сложных форматах, которые затрудняют доступность, отладку и контроль версий.
Это становится настоящей проблемой в тех случаях, когда нескольким инженерам необходимо одновременно работать над одним проектом или вести историю изменений с высоким уровнем детализации. Отсутствие удобных средств для слияния изменений, автоматического тестирования моделей и возможности делать быстрые правки вне среды разработки существенно сдерживает производительность и гибкость. Новый подход, получивший рабочее название SplitCAD, предлагает адаптировать привычные для программистов принципы разработки к миру механического моделирования. Главная идея — изначально делать упор на графический интерфейс пользователя (GUI), чтобы инженеры могли интуитивно и визуально создавать, изменять и просматривать модели. Такой дизайн интерфейса обеспечивает удобство и снижает кривую обучения для визуальных аспектов работы.
Однако ключевым элементом концепции является хранение исходных данных проекта в форматах, которые легко читаются, сравниваются и редактируются в текстовой форме. JSON или YAML, уже привычные в мире программирования, становятся новыми языками описания деталей и параметров механических компонентов. Такой подход открывает возможности для использования популярных систем управления версиями, таких как Git, что позволяет вести параллельную работу над проектом, отслеживать каждое изменение, внедрять автоматические тесты и сборки. Отделение исходного кода от полученных артефактов (таких как STEP, STL или визуальные превью) усиливает контроль над процессом разработки. Подобно тому, как в программировании скомпилированный код отличается от исходных файлов, в SplitCAD визуализированные и итоговые модели считаются производными, которые можно пересобрать из основного источника.
Это устраняет необходимость хранить двоичные файлы с вытеснением версий, снижает пространство на сервере и упрощает обмен. Отдельное внимание уделяется параметризации и явному описанию логики взаимодействия параметров, к примеру, «ширина паза равна ширине выступа плюс зазоры». Такой метод обеспечивает прозрачность и легкость изменения ключевых переменных изделия без риска непреднамеренных последствий. Параметрический подход давно знаком инженерам в CAD-системах, но интеграция этой концепции в текстовые конфигурации расширяет возможности для скриптовых изменений, анализа и автоматизации. Одним из серьезных барьеров на пути внедрения подобного подхода является сложность слияния визуальных изменений.
Классические инструменты редактирования графических проектов плохо адаптированы под Git-подобное версионирование, так как даже мелкие правки обычно приводят к значительному перестроению файлов. Чтобы обойти эти ограничения, SplitCAD ориентируется на то, чтобы хранить и передавать именно структурированный текст, который легче разбивать, сравнивать и интегрировать. Это открывает путь для улучшенных алгоритмов слияния и разрешения конфликтов. Текущая общепринятая практика также сдерживается недостаточной стандартизацией форматов файлов и специфической видимостью параметров для конечного пользователя. Некоторые CAD-системы, например FreeCAD, хоть и имеют текстовые элементы (XML внутри архивов), страдают от того, что эти форматы нестабильны и не стандартизированы.
SplitCAD аккумулирует подобные наработки, но стремится к полному контролю над форматом и предоставляет его как открытый стандарт, упрощающий разработку сторонних инструментов и скриптов. Параллельно с пользователем-инженером текстовое ядро SplitCAD позволяет упростить интеграцию с CI/CD процессами, автоматизированным тестированием моделей и даже с различными сценариями Scripting и API. Это значит, что можно создавать более сложные пайплайны проектирования, например, автоматически проверять соответствие модели требованиям, генерировать документацию или тестовые данные без непосредственного участия человека. Отдельным достоинством выступает открытость формата и связанная с ней независимость пользователей от производительских замков. Это освобождает инженеров и компании от ограничений и зависимостей, построенных на закрытых платформах и проприетарных решениях, где вектор развития фиксируется одной компанией, а возможность совместной работы — сдерживается лицензионными соглашениями и закрытыми форматами.
Область применения такой системы не ограничивается только сложным оборудованием или промышленным дизайном. Small batch-производители, хоббисты, образовательные учреждения и стартапы получат эффективный инструмент, совмещающий простоту визуальной работы с мощью программного контроля версий и параметризации. Это обеспечит более быстрый цикл разработки, прозрачность документации и многообразие вариантов анализа и обучения. Второй важной задачей для команды разработчиков SplitCAD является решение проблемы геометрического ядра — ключевого компонента для построения сложных моделей. Лидирующие решения на рынке, такие как Parasolid, обладают огромным опытом и потенциалом для обработки редких и сложных случаев геометрии, однако они являются закрытыми и очень сложными для повторения в открытых проектах.
В связи с этим разработка собственного ядра с применением современных методов, включая машинное обучение и генерацию тестовых кейсов, приобретает стратегическое значение. Планируется собирать большие объемы данных с разнообразными сценариями строения геометрии и поведением операций, чтобы использовать их для «обучения» новых моделей и повышения стабильности и точности работы ядра. Такая методология напоминает процессы компиляторных исследований в программировании и кажется многообещающей для автоматической обработки даже сложных случающейся ошибок и крайних случаев в модели. MusoraCAD представляет один из взглядов на то, как будущее механического моделирования может стать более доступным и понятным за счет объединения визуальных интерфейсов с гибкостью текстового представления, органично взаимодействующего с современными методами разработки и контроля качества софта. Все перечисленные концепции способствуют общей эволюции подхода к проектированию, приближая механический CAD к тем же стандартам и удобствам, что сегодня имеют программисты и разработчики.