Телефон: 8-800-350-22-65
Напишите нам:
MAX:
WhatsApp:
Telegram:
Прием заявок круглосуточно
График работы офиса: с 9:00 до 23:00 Нск (с 5:00 до 19:00 Мск)

Статья опубликована в рамках: Научного журнала «Студенческий» № 30(368)

Рубрика журнала: Информационные технологии

Скачать книгу(-и): Скачать книгу

Библиографическое описание:
Подгорных А.А. РАЗРАБОТКА ИНТЕЛЛЕКТУАЛЬНОГО МАКРОСА ДЛЯ АВТОМАТИЗАЦИИ ЗАПОЛНЕНИЯ ТЕХНИЧЕСКИХ ТРЕБОВАНИЙ И РЕКВИЗИТОВ ЧЕРТЕЖА В САПР КОМПАС-3D С ИСПОЛЬЗОВАНИЕМ ЯЗЫКА PYTHON // Студенческий: электрон. научн. журн. 2026. № 30(368). URL: https://sibac.info/journal/student/368/430424 (дата обращения: 13.10.2026).

РАЗРАБОТКА ИНТЕЛЛЕКТУАЛЬНОГО МАКРОСА ДЛЯ АВТОМАТИЗАЦИИ ЗАПОЛНЕНИЯ ТЕХНИЧЕСКИХ ТРЕБОВАНИЙ И РЕКВИЗИТОВ ЧЕРТЕЖА В САПР КОМПАС-3D С ИСПОЛЬЗОВАНИЕМ ЯЗЫКА PYTHON

Подгорных Андрей Алексеевич

студент, кафедра управления в технических системах, Санкт-Петербургский Государственный Университет Аэрокосмического Приборостроения,

РФ, г. Санкт-Петербург

DEVELOPMENT OF AN INTELLIGENT MACRO FOR AUTOMATING THE FILLING OF TECHNICAL REQUIREMENTS AND DRAWING DETAILS IN KOMPAS-3D CAD USING PYTHON

 

Podgornykh Andrey Alekseevich

Student, Department of Control in Technical Systems, Saint Petersburg State University of Aerospace Instrumentation (SUAI),

Russia, Saint Petersburg

 

АННОТАЦИЯ

Цель: Разработка программного средства для автоматизации заполнения текстовой части конструкторской документации (технических требований, материала, шероховатости) в САПР КОМПАС-3D с возможностью динамической фильтрации содержимого в зависимости от контекста документа.

Метод. Использован язык Python в связке с технологией COM (Component Object Model) для взаимодействия с программными интерфейсами САПР API 5 и API 7. Предложена декларативная система управления правилами, вынесенная во внешний конфигурационный файл с поддержкой логических операторов И (&), ИЛИ (;) и универсальных флагов (/all). Применён гибридный подход: обработка технических требований и шероховатости выполнена через API 7, запись материала в основную надпись — через API 5.

Результат. Разработан макрос, выполняющий анализ имени активного документа, фильтрацию пунктов технических требований и материалов по заданным правилам, автоматическую настройку шрифтов по ГОСТ и сохранение результата. Хронометраж показал экономию порядка 3 минут на одном чертеже; при пакетной обработке 100 чертежей экономия составляет около 5 часов труда инженера.

Вывод. Использование внешнего интерпретатора Python компенсирует громоздкость нативных COM-интерфейсов КОМПАС-3D и открывает перспективы создания переиспользуемых библиотек автоматизации с интеграцией в PDM/PLM-системы и пакетной обработкой больших массивов конструкторской документации.

ABSTRACT

Purpose. Development of a software tool for automating the filling of the text part of design documentation (technical requirements, material, roughness) in KOMPAS-3D CAD with the ability to dynamically filter content depending on the document context.

Method. The Python language was used in conjunction with COM (Component Object Model) technology to interact with the CAD software interfaces API 5 and API 7. A declarative rule management system is proposed, externalized to a configuration file with support for logical operators AND (&), OR (;) and universal flags (/all). A hybrid approach was applied: processing of technical requirements and roughness was performed via API 7, recording of the material into the title block — via API 5.

Result. A macro has been developed that performs analysis of the active document name, filtering of technical requirements and materials according to specified rules, automatic font configuration according to GOST, and saving of the result. Timing showed savings of about 3 minutes per drawing; when batch-processing 100 drawings, the savings amount to about 5 hours of engineer's labor.

Conclusion. The use of an external Python interpreter compensates for the verbosity of native COM interfaces of KOMPAS-3D and opens up prospects for creating reusable automation libraries with integration into PDM/PLM systems and batch processing of large arrays of design documentation.

 

Ключевые слова: КОМПАС-3D, автоматизация проектирования, Python, COM-интерфейс, API САПР, технические требования, макросы, стандартизация документации, пакетная обработка.

Keywords: KOMPAS-3D, design automation, Python, COM interface, CAD API, technical requirements, macros, documentation standardization, batch processing.

 

1. Введение

В современных условиях машиностроения и приборостроения скорость и точность выпуска конструкторской документации являются критическими факторами конкурентоспособности предприятия [5, с. 3]. Несмотря на высокий уровень автоматизации геометрического моделирования в САПР, текстовое наполнение чертежей (технические требования, указание материалов, параметров шероховатости) часто выполняется вручную. Это приводит к двум основным проблемам:

1. Затраты времени. Инженер тратит значительные ресурсы на набор повторяющихся текстовых блоков.

2. Человеческий фактор. Высока вероятность опечаток в обозначениях ГОСТ, марках материалов или параметрах шероховатости, что может привести к браку на производстве. [5, с. 5]

Система КОМПАС-3D предоставляет развитые средства автоматизации через программные интерфейсы (API) [1, с. 15].. Однако стандартные средства параметризации не всегда гибко адаптируются под специфические корпоративные стандарты [1], требующие динамического выбора текста в зависимости от контекста (например, типа детали, указанной в имени файла).

Целью данной работы является разработка интеллектуального макроса, который анализирует контекст документа и формирует состав технических требований динамически.

2. Теоретические основы и выбор инструментов

Взаимодействие внешних скриптов с КОМПАС-3D осуществляется через технологию COM (Component Object Model) [3]. Система предоставляет два основных программных интерфейса:

- API 5 (KOMPAS-3D API v5) — классический, стабильный интерфейс, хорошо зарекомендовавший себя для работы с геометрией и основными надписями (штампами).[1, с. 22]

- API 7 (KOMPAS-3D API v7) — современный объектно-ориентированный интерфейс, предоставляющий более удобный доступ к структуре документа, коллекциям объектов и специфическим элементам оформления, таким как блок технических требований (`TechnicalDemand`) и неуказанная шероховатость (`SpecRough`). [1, с. 45]

Для реализации логики макроса выбран язык Python благодаря его читаемости, мощным средствам работы со строками и наличию библиотеки `win32com.client`, обеспечивающей бесшовное взаимодействие с COM-объектами Windows. [2, с. 89]

3. Методология: алгоритм динамической фильтрации

Ядром разработанного решения является система управления правилами, вынесенная во внешний текстовый файл (`tt_config.txt`) в кодировке UTF-8. Это позволяет изменять корпоративные стандарты без перекомпиляции или редактирования исходного кода макроса.

3.1. Синтаксис конфигурационного файла

Файл состоит из блоков, привязанных к конкретным пунктам технических требований (`STRING_N`) или вариантам материалов (`MATERIAL_N`). Каждый блок содержит правила включения (`INCLUDE`) и исключения (`EXCLUDE`).

Для обеспечения гибкости введены специальные операторы:

- `;` (точка с запятой) — логическое **ИЛИ** между условиями.

- `&` (амперсанд) — логическое **И** внутри одного условия (все подстроки должны присутствовать в имени файла).

- `/all` — универсальный флаг, предписывающий применять данный пункт ко всем документам, если он не отфильтрован правилом `EXCLUDE`.

Пример конфигурации:

```

STRING_1 = "1. Неуказанные предельные отклонения размеров: H14, h14, ±t2/2"

block1

INCLUDE = /all

EXCLUDE = черновик; заготовка

STRING_2 = "2. Покрытие: Хим. Окс. прм."

block1

INCLUDE = корпус; кронштейн

EXCLUDE = нерж

MATERIAL_1 = "Алюминий АД1 ГОСТ 4784-97"

block1

INCLUDE = корпус & алюминий

```

3.2. Алгоритм принятия решений

При запуске макрос выполняет следующие шаги:

1. Считывает имя активного документа и очищает его от расширения.

2. Парсит конфигурационный файл, формируя в памяти структуры данных (словари), содержащие тексты и ассоциированные с ними правила.

3. Для каждого пункта (`STRING_N` или `MATERIAL_N`) последовательно проверяет его блоки (`block1`, `block2` и т. д.).

4. Если условие `INCLUDE` выполнено (найдено совпадение подстрок с учётом оператора `&`), проверяется условие `EXCLUDE`.

5. Если `EXCLUDE` не сработал, пункт считается активным, добавляется в итоговый список, и проверка остальных блоков для этого пункта прекращается (принцип «первого совпадения»).

4. Реализация и преодоление технических трудностей

В ходе итеративной разработки макроса был решён ряд нетривиальных технических задач, связанных со спецификой работы COM-интерфейсов.

4.1. Проблема сложности нативных интерфейсов

Необходимо отметить, что нативные интерфейсы КОМПАС-3D, унаследованные от архитектуры предыдущих поколений САПР, отличаются значительной многословностью. Даже такая относительно простая операция, как добавление одной строки текста в блок технических требований, требует последовательного создания и инициализации не менее пяти вложенных COM-объектов (`ksTextLineParam`, `ksTextItemParam`, `ksTextItemFont`, `ksTextItemArray` и самого текстового элемента), каждый из которых имеет собственный набор параметров, устанавливаемых через отдельные методы [1, с. 156]. Аналогичная ситуация наблюдается при работе со штампом: для записи значения в одну ячейку основной надписи необходимо открыть штамп, выбрать колонку, сформировать параметры текстовой строки, настроить шрифт и закрыть штамп.

Такая архитектура приводит к тому, что даже минимально полезный макрос на встроенном в КОМПАС языке Python занимает порядка 50–100 строк кода, значительная часть которых представляет собой «шаблонный» boilerplate-код, не несущий смысловой нагрузки. Это существенно затрудняет поддержку, отладку и модификацию макросов инженерами-конструкторами, не обладающими глубокой квалификацией в программировании.

Использование внешнего интерпретатора Python позволило инкапсулировать эту громоздкость в переиспользуемые функции-обёртки, вынеся бизнес-логику (фильтрацию, парсинг конфигурации) на уровень, свободный от специфики COM-интерфейсов.

4.2. Гибридное использование API 5 и API 7

Изначально предпринимались попытки реализовать весь функционал исключительно через API 7. Однако практика показала, что запись текста в ячейки основной надписи (штампа) через API 5 является более надёжной и предсказуемой. В итоге была применена гибридная архитектура:

- Технические требования и шероховатость обрабатываются через API 7 (`IDrawingDocument.TechnicalDemand.Text` и `IDrawingDocument.SpecRough`), что позволяет корректно управлять стилями абзацев, нумерацией и шрифтами [1, с. 48].

- Материал записывается в графу 3 основной надписи через API 5 с использованием методов `ksOpenStamp`, `ksColumnNumber` и `ksTextLine`

[1, с. 160].

4.3. Интеграция в пользовательский интерфейс

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

5. Функциональные возможности разработанного макроса

Итоговый программный продукт реализует следующий сценарий работы:

1. Анализ. Определение имени текущего файла чертежа.

2. Фильтрация ТТ. Очистка существующего блока технических требований и заполнение его только теми пунктами, которые прошли проверку конфигурационным файлом. При этом автоматически настраивается шрифт (GOST type A, высота 5 мм, курсив) и параметры абзаца [5, с. 12].

3. Заполнение материала. Поиск подходящей марки материала по тем же правилам фильтрации и запись её в основную надпись.

4. Шероховатость. Автоматическая простановка знака неуказанной шероховатости с заданными параметрами (например, «Ra 0.8») в правом верхнем углу чертежа.

5. Сохранение. Автоматическое сохранение изменений в документе.

6. Оценка эффективности и результаты

Внедрение данного макроса в процесс подготовки конструкторской документации позволяет достичь следующих результатов.

6.1. Экономия времени на единичном чертеже

Для количественной оценки эффективности был проведён хронометраж типовых операций при оформлении чертежа детали средней сложности (5–7 пунктов технических требований, одна марка материала, одна неуказанная шероховатость).

Ручной режим работы инженера:

- Открытие диалога технических требований и ввод каждого пункта: ~15–20 секунд на пункт.

- Заполнение графы 3 основной надписи (материал): ~20–30 секунд.

- Простановка знака неуказанной шероховатости и настройка его параметров: ~15–20 секунд.

- (в среднем 2 минуты 15 секунд).

Автоматизированный режим (разработанный макрос):

- Запуск макроса и выполнение всех операций: 2–3 секунды

- Экономия на одном чертеже: ~2 минуты (120 секунд).

При типовой рабочей нагрузке конструктора, выпускающего 15–20 чертежей в день, экономия составляет около 40 минут ежедневно.

6.2. Перспективы пакетной обработки через внешний Python

Особую ценность представляет использование внешнего интерпретатора Python (не встроенного в КОМПАС), поскольку это открывает доступ к богатой экосистеме библиотек языка:

- Перебор файловой системы. С помощью стандартного модуля `os.walk` или библиотеки `pathlib` можно рекурсивно обходить каталоги с сотнями и тысячами файлов `.cdw`, `.m3d`, `.a3d`.

- Пакетная обработка. Один запуск скрипта способен последовательно открыть, обработать и сохранить десятки чертежей без участия инженера.

- Интеграция с PDM/PLM-системами. Через библиотеки `pandas`, `requests` или прямые SQL-запросы макрос может получать метаданные из систем управления инженерными данными (например, ЛОЦМАН:PLC или Teamcenter) и использовать их для более точной фильтрации [2, с. 210].

- Расширенная аналитика. Применение регулярных выражений (`re`), машинного обучения или анализа текстовых отчётов позволяет создавать адаптивные системы, самостоятельно извлекающие правила оформления из существующей документации.

Ориентировочный расчёт для пакетного режима: при обработке 100 чертежей, экономия составляет 100 × 2 мин = 200 минут ≈ 3 часа непрерывной работы инженера. С учётом того, что пакетный скрипт выполняется в фоновом режиме, фактические трудозатраты инженера сводятся к нескольким минутам на запуск и проверку результата.

6.3. Перспективы интеграции в библиотеку

Архитектура разработанного решения предполагает его дальнейшее развитие в виде переиспользуемой Python-библиотеки для автоматизации КОМПАС-3D. Функции работы с техническими требованиями, штампом и шероховатостью, инкапсулированные в отдельные модули, могут быть вынесены в открытый репозиторий и использованы в других проектах. Это особенно актуально в контексте перехода многих предприятий на импортозамещающие САПР, где потребность в скриптах автоматизации резко возрастает, а штатные средства макросирования часто уступают по гибкости внешним языкам программирования.

7. Заключение

В работе представлен успешный опыт разработки интеллектуального инструмента автоматизации для САПР КОМПАС-3D. Использование языка Python в связке с гибридным подходом к API 5 и API 7 позволило создать стабильное и гибкое решение, компенсирующее громоздкость нативных COM-интерфейсов системы за счёт выноса бизнес-логики на уровень переиспользуемых функций-обёрток [1, с. 15].

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

Ключевой стратегической перспективой развития является переход от единичных макросов к библиотечному подходу с использованием внешнего интерпретатора Python. Это открывает путь к созданию комплексных систем автоматизации, сочетающих перебор файловой системы, интеграцию с PDM/PLM-системами и расширенную аналитику данных, что особенно востребовано в условиях массового выпуска конструкторской документации на предприятиях машиностроительного комплекса.

 

Список литературы:

  1. Руководство пользователя. Система автоматизированного проектирования КОМПАС-3D. API. Документация для разработчиков. — СПб.: АСКОН, 2023.
  2. Пирогов В. Ю. Python на практике. — СПб.: Питер, 2022. — 384 с.
  3. Microsoft Corporation. Component Object Model (COM) Technology Overview [Электронный ресурс]. — URL: https://docs.microsoft.com/en-us/windows/win32/com/component-object-model--com--portal (дата обращения: 04.09.2026).
  4. Лутц М. Изучаем Python. — 4-е изд. — СПб.: Символ-Плюс, 2021. — 1280 с.
  5. ГОСТ 2.105-2019. Единая система конструкторской документации. Общие требования к текстовым документам. — М.: Стандартинформ, 2020. — 38 с.