employee from 01.01.2006 until now
Omsk, Russian Federation
The paper presents a method for automating a portion of a drafter’s work during the parametric 3D model design phase, by using a developed application for KOMPAS-3D. Designing repetitive parts consumes a significant amount of time; therefore, the author has developed a program that enables applying parameterization mechanisms for the automatic creation of a 3D model of a prototype blank. The automation process involves using the created KOMPAS-3D application, which allows parameters that form the 3D model to be manipulated through a variable input window. The developed program aims to eliminate the user’s interaction with Boolean operations and sketches, and to create an application library for standard parts. The developed application, which automates the 3D model creation process, is implemented using the Python programming language and the KOMPAS-Macro application. The paper demonstrates the proposed method for automating the design of parametric 3D models of prototype blanks, through automated creation of the parametric 3D model, using the example of designing a “glass” part. To evaluate the effectiveness of this method, the author conducts a comparative analysis of the time spent modelling this part using the traditional method with Boolean operations, and using the developed program. The results show that the drafter’s time spent creating the 3D model of the proposed part is reduced several times over using the automated method. Modelling the process of automated design of a parametric 3D model of a prototype blank, based on the proposed algorithm, is implemented using the graph theory. This method can be useful for a programmer-engineer with experience in Python programming and skills in developing design documentation using the mechanical engineering configuration of KOMPAS-3D for creating their own embedded application library, as well as for a design engineer who solves problems to ensure the technological sovereignty of the country.
design automation, parametric modelling, KOMPAS-Macro, Python programming language
Введение
Применение автоматизированного проектирования изделий приводит к значительному повышению эффективности проектировщика, конструктора и других специалистов, участвующих в разработке проектов. Интенсивное развитие отечественных САПР для обеспечения технологического суверенитета нашей страны привело к совершенствованию их функциональных возможностей и стимулирование интереса к инженерной деятельности. Повышение эффективности труда в современных реалиях требует от инженера глубоких знаний САПР для автоматизированной разработки конструкторской документации и проведения инженерных расчетов. Владение механизмами автоматизации действий конструктора при проектировании с применением технологии реверс-инжинирига должно стать привилегией при проектировании изделий. Параметрическое моделирование является актуальной составляющей моделирования при использовании программ для разработки конструкторской документации. Однако и при использовании параметрического моделирования конструктор затрачивает огромное количество времени на выполнение повторяющихся действий при проектировании однотипных по форме деталей. Опыт применения интегрированной связки конструкторских программ и макросов показал, что применение параметрического 3D моделирования с использованием программы КОМПАС‑3D позволяет проектировщику в несколько раз повысить производительность труда и, что самое важное улучшить качество, и достоверность принимаемых решений [1, 2]. Механизмы параметризации позволяют выполнять множество итераций по нахождению оптимального конструктивного решения за минимальное время, а единая среда – производить расчет для всех этих вариантов.
Как известно, параметризацию, возможно, осуществлять как с использованием 2D, так и 3D графики [3, 4]. При оценке преимуществ параметрического 3D моделирования следует выделить то, что с его помощью выполняется достаточно большой объем проектных работ. Однако использование параметрического 3D моделирования при проектировании изделий с одинаковой геометрией приводит к изменению размеров детали и повторению одних и тех же действий [5, 6]. В связи с этим предложено разработать программное обеспечение, которое позволяет пользователю использовать прототип параметрической 3D модели и изменять ее геометрию вводом значения переменных в окна запроса и не тратить время на создание новой модели, повторяя весь цикл создания тел с использованием графического пакета КОМПА-3D.
Цель работы – создание программного обеспечения для автоматизации опытно-конструкторских работ с применением САПР, при проектировании однотипных деталей. Задача исследования заключается в снижении трудоемкости разработки 3D модели для повторяющихся деталей типа «фланец» или «стакан».
Материалы, модели, эксперименты и методы
Целесообразно автоматизировать часть работы конструктора на примере проектирования детали «стакан» для повышения эффективности работы и выполнения задач по технологическому суверенитету [7]. Автоматизация процесса проектирования однотипных деталей с одинаковой геометрией осуществляется за счет применения разработанного программного математического обеспечение реализованного с использованием Python. Для создания данного типа деталей рассмотрен один из алгоритмов ее проектирования с использованием КОМПАС-3D. Автоматизация работы конструктора осуществляется за счет использования макроса. На первоначальном этапе создается 3D модель детали заготовки-прототипа с использованием макроса. Определенный набор действий, который необходим для создания заготовки-прототипа стакана, записана через КОМПАС-Макрос, а далее программа дорабатывается под требуемый алгоритм для создания детали «стакан» на основе заготовки-прототипа с помощью языка Python.
Компас макро – это программа, позволяющая выполнять алгоритм действий в программе КОМПАС-3D автоматизируя часть работы конструктора при проектировании деталей.
Алгоритм создания макроса в КОМПАС-3D представлен блок-схемой на рис. 1.
Запуск программы КОМПАС-3D |
Создание документа «Деталь» |
Запуск приложения КОМПАС-Макро |
Выбор команды «Начать запись» |
Формирование 3D модели по заданным геометрическим параметрам |
Выбор команды «Остановить запись» |
Сохранение макроса |
Рис. 1. Алгоритм записи макроса в КОМПАС-3D
Fig. 1. Algorithm for recording a macro in KOMPAS-3D
С помощью данного макроса создается заготовка-прототип детали. С использованием записанного макроса создается программы с применением языка программирования Python, которая позволяет создать приложение для формирования параметрической 3D модели «стакан» и базы данных геометрических параметров изделия. При запуске разработанного приложения в КОМПАС-3D пользователь получал доступ к переменным, формирующим параметрическую 3D модель и через окно ввода параметров, вводит значения переменных, формирующих изделие. На рис. 2 представлено окно ввода геометрических параметров изделия для создания 3D модели.
Рис. 2. Окно ввода переменных, формирующих 3D модель стакана
Fig. 2. Window for entering variables that form a 3D model of a glass
Процесс автоматизированного проектирования заготовки-прототипа с использованием разработанного приложения выполняется в следующей последовательности:
– копирование папки с приложением, которое позволяет в программе КОМПАС-3D моделировать данные детали;
– запуск программы КОМПАС-3D;
– вызов приложения КОМПАС-Макро;
– ввод значений переменных, которые формируют заготовку-прототип;
– создание дополнительных элементов, формирующих окончательную 3D модель изделия.
Если проектируемая детали по наличию элементов не отличается от заготовки-прототипа, то последний этап не используется, а конструктор переходит к проведению инженерного анализа или созданию чертежа детали, на основе ассоциативных видов. Применение данного макроса дает предпосылки создания библиотеки с заготовками-прототипами деталей «стакан».
Для моделирования процесса проектирования детали «стакан» на основе заготовки-прототипа с использованием КОМПАС-Макро и установления взаимосвязей используется теория графов [8, 9].
Граф представляет собой совокупность вершин (Q1, Q2, …) и дуг (ребер) (e1, e2, …), которые соединяют вершины. Вершины графа определяют конечные дискретные множества, а дуги отражают взаимосвязи между этими множествами. К основным характеристикам графа и его элементам можно отнести следующие понятия. Две вершины (Q1, Q2), образующие ребро, называют его концами. Ребро соединяет вершины Q1 и Q2. Две вершины называются смежными, если они соединены одной дугой. Если вершина соединена с ребром его концом, то они называются инцидентными. На рис. 3, а вершины Q1 и Q2 смежны. Ребра e1 и e6 смежны, а e5 и e3 не смежны. Вершина Q5 и ребро е5 инцидентны. Число ребер, инцидентных вершине Q, определяется степенью вершины и обозначается deg Q. Так, на рис. 3, а deg Q1 = 2, deg Q4 = 3 [10]. На рис. 3, б представлен пример простого неориентированного графа.
а) б)
Рис. 3. Примеры изображений графов:
а – ориентированный граф; б – полный граф
Fig. 3. Examples of graph images:
a – directed graph; b – complete graph
На основе установления взаимосвязей между конечными дискретными множествами с помощью теории графов возможно моделирование процесса проектирования детали «стакан» с использованием макроса. На рис. 4 представлен граф, отражающий данный процесс, где P1, P2…P6 этапы проектирования детали.
Разработанный граф имеет простой путь, который модулирует процесс проектирования детали с использованием КОМПАС-Макро, позволяющий автоматизировать часть действий конструктора и описывается следующим выражением:
, (1)
где последовательные вершины, разработанного графа.
Рис. 4. Граф, отражающий процесс проектирования детали с использованием разработанного приложения
Fig. 4. Graph reflecting the process of designing a part using the developed application
На основе разработанного графа создана блок-схема, которая описывает процесс проектирования изделия на основе разработанного приложения (рис. 5)
Начало |
Запуск разработанного приложения через КОМПАС-Макро |
Ввод значение геометрических параметров, формирующих деталь |
Создание приложением документа «Деталь» |
Формирование 3D модели |
Создание ассоциативных видов и разрезов |
Соответствие детали техническому заданию |
Сохранение в базе данных значений параметров, формирующих деталь |
да |
нет |
Конец |
Рис. 5. Блок-схема, поясняющая алгоритм работы с разработанным приложением
Fig. 5. Block diagram explaining the algorithm for working with the developed application
Далее представлена часть разработанной программы, которая используется для работы приложения.
from tkinter import *
from tkinter import Tk, StringVar
try:
f = open('cldr_v01.txt', 'r+')
except:
f = open('cldr_v01.txt', 'w+')
f.write("30\n")
f.write("10\n")
f.seek(0, 0)
finally:
lines = f.readlines()
f.close()
def clicked():
window.destroy()
def is_valid_float(newval):
if newval not in '0123456789.':
return False
return True
window = Tk()
window.title("Ввод параметров стакана")
window.geometry('400x250')
# Радиус детали R1
lbl_r1 = Label(window, text="Радиус R1:")
lbl_r1.grid(row=0, column=0)
check = (window.register(is_valid_float), "%S")
var_r1 = StringVar()
var_r1.set(lines[0])
ent_r1 = Entry(window, width=10, validate="key", validatecommand=check, textvariable=var_r1)
ent_r1.grid(row=0, column=1)
# Высота детали H1
lbl_h1 = Label(window, text="Высота H1:")
lbl_h1.grid(row=1, column=0)
check = (window.register(is_valid_float), "%S")
var_h1 = StringVar()
var_h1.set(lines[1])
ent_h1 = Entry(window, width=10, validate="key", validatecommand=check, textvariable=var_h1)
ent_h1.grid(row=1, column=1)
btn_OK = Button(window, width=10, text="ОК", command=clicked)
btn_OK.grid(row=3, column=3, pady=10, padx=10)
window.mainloop()
f = open('cldr_v01.txt', 'w')
………………………
На рис. 6 представлена 3D модель, которая создана с использование разработанного приложения.
Рис.6. 3D модель детали, созданная с использованием разработанной программы
Fig.6. 3D model of the part created using the developed program
Для проверки функционирования данной методики и эффективности практического применения разработанного приложения проведены экспериментальные исследования на примере проектирования деталей фланец в компании ООО «ПромИнтеллект». Инженер компании осуществлял проектирование параметрических 3D моделей деталей фланец с применением данного приложения. Для оценки эффективности работы проведен расчет трудоемкости моделирования параметрической 3D модели с использованием созданной программы и при создании традиционным способом, применяя булевые операции. В результате установлено, что время, затраченное на проектирование данной 3D модели с использование предложенной программы в 2 раза ниже, по сравнению со временем проектирования традиционным способом.
Также в процессе проектирования создана база данных, в которой сохраняются значения переменных при формировании прототипа-заготовки деталей «стакан», и которая в дальнейшем может служить для создания библиотеки.
Заключение
В результате проделанной работы достигнута автоматизация части процесса проектирования однотипных деталей. Данная автоматизация достигается за счет применения программы, которая позволяет формировать параметрические 3D модели на основе заготовки-прототипа, путем ввода переменных. Разработанная программа интегрируется в систему автоматизированного проектирования КОМПАС-3D, совершенствуя механизм параметрического моделирования, исключая работу по созданию тел через булевые операции вручную. Предложенный алгоритм параметрического моделирования реализован с использованием языка программирования Python, который позволяет проектировщику или конструктору автоматизировать процесс проектирования конструкторской документации. Применение предложенной методики по созданию однотипных деталей позволяет повысить эффективность работы конструктора за счет снижения трудоемкость разработки однотипных деталей.
1. Unified System for Design Documentation. Basic Requirements for Drawing. Moscow: Standards; 1988.
2. Kuznetsov E, Kurochkin K, et al. Features of Three-Dimensional Modelling on the Example of Designing a Turning and Milling Machining Centre. CAD and Graphics. 2006;5:71-76.
3. Parameterization – KOMPAS-3D – Ascon: [Internet] [cited 2024 Jul 17]. Available from: https://help.ascon.ru/KOMPAS/22/ru-RU/dlg_parametric_setup.html
4. Gubich L.V., Prokhorova A.A. Automation of Standard Structure Design Based on Parametrization Tools of CAD Systems. Informatics. 2007;4:67-76.
5. Butorov V.V. Automation of Parametric Modelling in Mechanical Engineering Production. Actual Problems of Aviation and Aerospace Systems. Technical Sciences. 2012:140-141.
6. Gumunyuk P.V., Shurpo A.N. Using Automatic Programming Technology in the Application Development for Programming With Tools. Automation and Modelling in Design and Management. 2023;3:4-12.
7. Bitkina E.E. Product Design Stages in the T-Flex System. In: Proceedings of the International Research Conference Dedicated to the 70th Anniversary of Creating the Faculty of Technical Means of the Agro-Industrial Complex (Mechanical Faculty); Omsk: 2020. p. 662-665.
8. Dunaev P.F., Lelikov O.P. Construction of Machine Components and Parts. 5th ed. Moscow: Vysshaya Shkola; 1998.
9. Christofides N. Graph Theory Algorithmic Approach. Moscow; 1978.
10. Rogers D. Procedural Elements for Computer Graphics. Moscow: Mir; 1989.
11. Shmulenkova E.E. Automated Development System for Metal-Cutting Tool Drawings Using Parametric Three-Dimensional Modelling Methods. Candidate of Technical Sciences Thesis. Omsk; 2012.