Обновить

ИИ‑агент внутри КОМПАС-3D: пишет код, строит деталь и проверяет результат

Уровень сложностиСредний
Время на прочтение13 мин
Охват и читатели83K
Всего голосов 39: ↑37 и ↓2+42
Комментарии48

Комментарии 48

ну не бывать конструктору вайб-конструктором)) далеко от этого, по крайней мере.

Но MCP в компасе это очень хорошо

Почему? Бывать. Вопрос что страшнее, когда вайб-код выдаёт ошибку, или когда вайб-деталь не подходит к конструкции. Особенно если уже произвели первую партию.

Новое поколение моделей как будто отдельно затачивали под 3д - попробуйте для сравнения тот же кими к3, скорее всего будет сильно лучше.

все куда то сюда двинулись, но этот пока в процессе
все куда то сюда двинулись, но этот пока в процессе

правда у меня принцип другой - все на алгоритмах, а строить может хоть гемма е4б. немного другая задача и реализация

Это Ревит или Компас?

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

как этот опыт в него впихнуть ?

Оцифровать этот опыт.

это вопрос будущего,

Уже вот-вот - и будет настоящее.

Современные технологии позволяют реализовать подобное на весьма достойном уровне.

Только надо поэтапно двигаться, начинать с небольших задач - и далее по нарастающей.

Оцифровать этот опыт.

"Сова не тактик, сова стратег!"

Современные технологии позволяют реализовать подобное на весьма достойном уровне.

Не позволяют. Даже с обычной кодовой базой глубокое погружение в контекст не реализовано. Правки в русле бизнес-логики тоже из разряда фантастики. А ведь это всего лишь текст. А конструкторская документация, скажем на стойку шасси для Боинга, это сотни чертежей и схем, и я не представляю как нейронка что-то будет здесь делать

А как новоприбывший стажер узнает все это? Ему кто-то рассказывает? Ну так оформите все эти рассказы в скилы. Они ведь буквально для этого и созданы. Банально на каждую деталь по скилу. Не очень экономно мб, но работать будет

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

Часть таких правил можно оцифровать как RAG по внутренним стандартам, часть — зашить в саму обёртку как дефолты для класса деталей.

ИИ агенты для кодинга уже начали повсеместно применять в больших командах и им смогли переложить знания о стандартах

Мне было бы интересно узнать больше про такие нюансы — если есть желание, можете написать (контакты в профиле), было бы полезно для развития проекта.

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

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

И ТКонтр проверяет именно это - оптимально ли спроектировано изделие с точки зрения его изготовления, можно ли его упростить с допустимой потерей прочих характеристик.

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

— Ну, как, босс? Как она вам?

— Отлично, — отвечает босс. — Осталось только соорудить на каждом зубце пропускник для вала, иначе ваша шестерня вращаться не сможет.

У этого деятеля главная ось вращения проходила в аккурат между зубцами!

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

© «Вы, конечно, шутите, мистер Фейнман!»

А есть ли какое-нибудь рабочее решение для генерации чертежей из модели? Скажем, есть созданная человеком выверенная модель, и нужно по ней сделать набор чертежей для производства... Сейчас это отнимает у человека немало времени. Как оптимизировать?

Решения есть - просто они в основном коммерческие и пока не идеальные. Полноценного "нажал кнопку и получил готовый производственный чертёж с умной размерностью и ГОСТ/ISO" в открытом коде почти нет. И сами чертежи бывают разными: строительные или машиностроительные, схемы, сборки, детали. Поэтому если смотреть строго на open-source - полноценных рабочих решений мало, если брать рынок в целом - они уже работают и активно внедряются.

В компасе есть такая функция, с немалым участием человека правда или вы имеете ввиду что то другое?

А это проблема? Вроде же есть Autodesk Inventor и проч.?

Можно же не в 2D - а напрямую в 3D модель информацию загружать (допуски и проч) и отдавать ее уже готовую в ЧПУ?

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

А вот на этапе расстановки размеров уже начнутся проблемы. В чертеже ведь не номинальные размеры ставятся, а с допусками, а понять из геометрии, где какой допуск нужен, невозможно: так, какой-нибудь цилиндр может быть валом, от которого нужен точный диаметр и не важна длина (14 квалитета хватит), или проставкой, где диаметр не важен, а на длину нужен точный допуск. С допусками формы и расположения то же самое будет.

валом, от которого нужен точный диаметр и не важна длина

Как это «не важна длина»??? От длины прогиб вала зависит!

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

Вы ещё скажите, что шестерня посередине вала длиной 50 мм работает точно так же, как и шестерня посередине вала длиной 500 мм.

Думаю задача модель→чертёж вполне решаема, и VLM тут отлично подходят — выбор видов, сечений и подобное это как раз их сильная сторона.

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

Мне хотелось бы интересно узнать про эту задачу больше нюансов для развития проекта — контакты в профиле, пишите.

Интересно замечать что кто-то ещё работает над той же задачей.

VLM пока слабы в понимании пространственной геометрии и часто возвращают ложноположительный результат в задаче верификации детали.

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

По сути, сейчас (на момент комментария) возможности агента опережают возможности VLM.

Модель по тексту во FreeCAD.GenCAD
Модель по тексту во FreeCAD.GenCAD

VLM пока слабы в понимании точной пространственной геометрии

Пока только переводить все в текст/координаты - и работать так.

Семантика у мощных моделей кстати уже на достойном уровне.

Это круто

А модель во freecad строится через cadquery скрипты или через api создается дерево операций?

Я изучал первый вариант, но как понимаю из cadquery экспортировать дерево для работы руками пока нельзя

Используется генерация Python скрипта вызывающего методы стандартного API FreeCAD.

Факт. Писал пайп для перевода ручных эскизов в 3д. Перепробовал кучу методов, но проблемы начинаются именно при построении. Пространственное мышление - это стопор пока для БЯМ

Отлавливать ошибки даже в своих построениях бывает непросто, с продукцией ИИ это может быть гораздо веселее

Думаю для развития такой темы CAD программам не хватает механик быстрого просмотра параметров и изменений

Как например при заливе кода в гит можно видеть по строкам что исчезло, а что добавилось

Осталось дождаться такого же агента во FreeCAD. Или его можно перепарсить теми же ИИ в любую программу для CAD?

Похожий там уже 4 месяца присутствует.

https://github.com/drfenixion/freecad.gencad

Но LLM пока только на пороге таких построений и более-менее приемлемый результат дают только топ тир модели, а текущее поколение VLM довольно слабо в проверке точной пространственной геометрии детали и часто выдаëт ложноположительный результат.

Под применение с LLM хорошо вписался OpenSCAD, поскольку в нём вообще отсутствует визуальный UI редактирования, а есть только исходный код (текст) и в UI предоставлен просмотр готовой детали. То есть там схема изначально была подходящей для перерабатывающих текст нейросетей. Я не много работал с таким софтом, у меня это как хобби для 3D-печати, но сам концепт выглядит верным: 3D-модель как исходный код на некоем языке программирования. Вот здесь в Компасе автор пришел к этом же, задействовав язык COM API, а если изначально как в OpenSCAD и подобных сделать язык программирования основным методом построения модели, то проще будет увязать это с LLM.

Согласен, OpenSCAD решает главную проблему "закрытости" форматов у CAD программ, но для ии систем проектирования ОЧЕНЬ важно чтобы они внедрялись в Компас, Solid и другие уже используемые системы

Потому что сменить cad в масштабах предприятия это намного сложнее чем сменить редактор кода

Может быть конечно появится Cursor в мире CAD, но пока к сожалению не слышал о таком

А получилось завернуть визуальный фидбэк для модели? Опыт показывает, что если какие-то несложные вещи модель делает по описанию неплохо, то когда у неё референс - картинка, получается довольно криво, во всяком случае с первого раза.

Пока конкретных цифр назвать не могу, но на глаз модель хорошо подмечает различия между моделью и чертежом через визуальный фидбек

Подскажите сколько токенов и денег за шестеренку?

В деньгах примерно 2-3руб, токенов суммарно порядка 20-30к уходит, но думаю можно оптимизировать и меньше тратить, если поработать над инструкциями

На текущий момент ScanToNeutral ML v0.2.22 — это система автоматизированного анализа машиностроительных чертежей с подготовкой данных для последующего построения 3D-моделей и автоматической генерации CAD-документов.

Основные возможности:

1. Разметка и анализ чертежей

  • Загрузка и ведение базы чертежей с сохранением истории.

  • Работа с группами чертежей, DRW-ID и контроль уникальности.

  • Исключение ошибочно попавших документов (например, страниц спецификаций).

  • Поддержка массовой разметки новых партий чертежей.

2. Распознавание и классификация видов

Поддерживаются типы рабочих видов:

  • основной рабочий вид;

  • продольный вид;

  • продольный разрез;

  • поперечный разрез;

  • торцевой вид;

  • выносной элемент;

  • локальный разрез/сечение;

  • продольный профиль;

  • изометрический вид;

  • схемы строповки.

Для каждого вида хранится:

  • роль в построении 3D;

  • использование/неиспользование для 3D;

  • охват геометрии;

  • масштаб;

  • ось/центр;

  • связь с дополнительными обозначениями.

3. Анализ областей листа (Sheet Regions)

Автоматически и вручную размечаются:

  • основная надпись;

  • рамка чертежа;

  • технические требования;

  • общая шероховатость;

  • примечания;

  • печати и согласования;

  • дублирующее обозначение чертежа;

  • обозначения видов и разрезов.

Для обозначений видов добавлена связь:

А-А ↓WorkingView V5 ↓масштаб 2:1

WorkingView V5

масштаб 2:1

4. Работа с масштабами по ЕСКД

Поддерживается стандартный ряд ГОСТ 2.302-68:

  • 1:2 … 1:1000;

  • 1:1;

  • 2:1 … 100:1.

Есть режим:

  • «По масштабу листа»;

  • индивидуальный масштаб дополнительного вида.

Масштаб может автоматически связываться с конкретным видом.

5. Подготовка ML-датасета

Создана инфраструктура обучения:

  • COCO-совместимый экспорт;

  • разделение train/val/test;

  • контроль неизменности split;

  • визуальные контактные листы;

  • диагностика ошибок.

Текущие ML-модули:

  • WorkingView Detector;

  • Candidate Recall Diagnostic;

  • Proposal BBox Refiner;

  • Axial Extent Refiner;

  • Primary Working View Selector.

6. Аудиты качества разметки

Есть отдельные режимы:

  • Isometric Audit — поиск и исключение изометрии;

  • Rigging Scheme Audit — схемы строповки;

  • Longitudinal Profile Audit;

  • Detail / Local Section / Profile Audit;

  • View Designation Audit.

Они позволяют постепенно очищать старую базу без переразметки с нуля.

Если кому интересно то тоже готов пообщаться

Очень интересный и перспективный проект!

Это опенсорс или закрытая разработка?

Мне было бы интересно обсудить как это можно встроить в ИИ для CAD, как с Вами связаться?

Ответил в ЛС

с подготовкой данных для последующего построения 3D-моделей и автоматической генерации CAD-документов

Геометрию еще не делали?

на простых да, проверял (Компас и Inventor). Строится все

Из 2D в 3D сложная задача, там с геометрией много будет работы КМВ.

Тоже работаем в этом направлении по строительным чертежам:

Детекция полигонов помещений v0.0.1
Детекция полигонов помещений v0.0.1

Я, конечно, "не настоящий сварщик", но замечу: имена переменным агент выбирает осмысленные, а что насчёт имён операций, проекций и прочего? Повлияет ли это на качество работы?

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

А вот про это и вопрос: может, агент будет меньше путаться в своей же работе, если будет всё называть по-человечески? Было бы интересно увидеть сравнение в следующей статье.

А кто-то пробовал библиотеку Build123d? Тут все дерево дерево построения хранится в коде, визуальная верификация через любой STEP file Viewer. А чертежи можно и в SolidWorks отправить через MCP.

Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации