Jump to content

Автоматизация рутины в КОМПАС-3D: как мы укротили импорт сборок из STEP


Recommended Posts

derishabl

Обмен 3D-моделями между разными САПР почти всегда идёт через формат STEP. Геометрию он переносит отлично, а вот про структуру изделия не знает почти ничего.

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

Чтобы не заниматься этим руками, мы сделали утилиту, которая разбирает сборку сама.

Что умеет утилита

Утилита берёт сборку из STEP и приводит её к нужной структуре по таблице, которую инженер готовит заранее. Из таблицы она понимает, каким должен быть результат: обозначения, наименования, материалы, разделы спецификации, вложенность дерева.

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

Сначала покажи, потом делай

Любая запись в реальные файлы необратима, поэтому сначала утилита всегда работает вхолостую, в режиме проверки (dry-run). Она строит подробный план и показывает его отчётом, не трогая ни одного файла. Исходники в это время открыты

только на чтение.

Оператор смотрит план и подтверждает его вручную. Только после этого запускается запись, причём ровно та, что была в плане. Результат пишется в отдельную папку, а от случайного второго запуска по той же папке стоит блокировка.

Как это выглядит на практике

1. Инженер кладёт рядом таблицу структуры и папку с импортом.search?source=serp&text=%D0%94%D0%B6%D0%
2. Запускает проверку. Утилита сканирует файлы, сопоставляет их с заданием и выдаёт план: какие детали уедут в какие папки и с какими обозначениями, какому крепежу проставиться единое обозначение, для какой строки задания файла не нашлось вовсе.
3. Инженер читает отчёт и убеждается, что всё размечено верно.
4. Запускает запись. Утилита сохраняет файлы, проставляет свойства и пересобирает корневую сборку так, чтобы она открывалась без окна «не удалось найти файл».
5. В конце отдельный проход перепроверяет результат и пишет итоговый отчёт.

Немного про устройство

Внутри это конвейер из независимых шагов: разбор таблицы, сканирование папки, связывание строк с файлами по набору правил, сборка плана. К самой сборке план применяется только в самом конце.

Логику разбора, сопоставления и планирования мы держим отдельно от САПР и покрываем тестами. Работа с КОМПАС вынесена в свой слой через COM/API, а самые тяжёлые по нагрузке операции отданы отдельному быстрому модулю.

Ограничения и открытые вопросы

Утилита заточена под согласованный формат таблицы, произвольные Excel она пока не понимает. Для реальной записи нужна Windows с установленным КОМПАС-3D и доступом к COM/API.

Часть операций API ведёт себя по-разному в зависимости от версии КОМПАС. Там, где операция не поддерживается, утилита честно пишет «пропущено» или «сделано частично», а не рисует зелёный статус поверх проблемы. Транзакционного отката после начала записи нет, и это ещё одна причина, по которой предварительный план так важен. Производительность упирается в размер сборки: самые дорогие шаги мы уже ускорили пакетной обработкой, но запас ещё остаётся.

Обратная связь

Если проект кажется полезным, расскажите, чего вам не хватает в работе с КОМПАС и какую рутину хотелось бы свалить на программу. Идеи и пожелания пишите в комментариях или на почту: support@svage.ru

Link to post
Share on other sites


Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Recently Browsing   0 members

    No registered users viewing this page.

  • Сообщения

    • Fedor
      Так и в воздухе и в воде частицы. Просто их больше :)
    • mannul
      Отчасти видел. Вакуум это просто отсутствие давления, но это не пустота, там есть элементарные частицы.
    • Capacit
      Станок токарный TCK56A.2025 г.в. Резцедержка sh801225r-340 сервопривод  Delta  asda b3.
    • Fedor
      Коль все квантовано, то это означает, что всего счетное множество и все можно занумеровать...  То есть иррациональные числа не имеют физических образов :)
    • Fedor
      Каждый видит вакуум глядя поздним вечеров на звездное небо. Все что не звезды, то вакуум :) Нет в предлагаемой теории всего современной парадигмы, физики не признают  :)
    • BSV1
      Не хватает одного пункта: наличие/отсутствие Творца.   Сказано же: завихрения вакуума. Вы когда-нибудь видели вакуум? 
    • jtok
      Посмотрел повторный анализ. Здорово. Попробовал даже все модули заменить на исправленные. Все заработало, удивительно. Но не до конца. Чет-то там все таки было не так. И всё исправленное работает только на API SW2024. Поэтому я решил вернуться. Итак, взята была опять версия 0.11, и переписана с учетом верной обработки списков вырезов для деталей с несколькими конфигурациями, причем должно работать в SW2018-2024 Получилась версия 1.02 Добавлен прогрессбар. CompTree v1.02.zip
    • andrey2147
      Нет, только те кто продал, могут помощь, через китайский Фанук,если нет связи то всё....учите инглишь.
    • mannul
      Если внутри черной дыры масса, то почему её не видно?
    • Fedor
      Физиков хлебом не корми, пивом не пои, дай что-нибудь заквантовать :) 
×
×
  • Create New...