Scientific journal
Scientific Review. Technical science
ISSN 2500-0799
ПИ №ФС77-57440

DEVELOPMENT OF AN INTELLIGENT LEARNING SYSTEM BASED ON AUTOCAD USING MODERN TECHNOLOGIES

Vintergoller I.G. 1 Murykh E.L. 1 Sinkevich N.N. 1
1 Abylkas Saginov Karaganda Technical University
The article presents the development of an intelligent learning system for computer-aided design systems based on the AutoCAD software package, aimed at improving the effectiveness of training specialists in the field of design. The intelligent learning system uses modern technologies such as Python, pyautocad and PostgreSQL to integrate with AutoCAD and create a knowledge base based on the provisions of the national standards of the Russian Federation. The methods of integrating the system with AutoCAD, knowledge base management, and interactive learning are described. The system automates the inspection of drawings and provides adaptive feedback. The software implementation includes modules for creating and managing blocks, processing relationships and rules, knowledge bases, tasks, and feedback implemented through SQLAlchemy to work with PostgreSQL. Testing was conducted on 60 students as part of the study of the discipline “Computer Graphics” and showed a reduction in task completion time by an average of 25 % and a reduction in errors by 45 % compared to traditional methods. The system has flexibility and scalability, but is limited by its dependence on a local AutoCAD installation. Development prospects include the integration of machine learning, cloud technologies, and a natural language interface.
intelligent learning system
computer-aided design systems
AutoCAD
knowledge base
GOST
interactive learning
adaptability

Введение

Системы автоматизированного проектирования (САПР), такие как AutoCAD, играют ключевую роль в инженерной практике, обеспечивая проектирование сложных объектов в различных отраслях, от машиностроения до архитектуры [1–3]. Однако освоение AutoCAD представляет значительные трудности из-за его функциональной сложности и необходимости соблюдения национальных стандартов, таких как ГОСТы. Традиционные методы обучения, основанные на лекциях, учебниках и практических занятиях, не успевают за темпами обновления технологий и не обеспечивают индивидуального подхода к обучаемым [1, 4].

Интеллектуальные системы обучения (ИОС), использующие принципы искусственного интеллекта (ИИ), предлагают решение этих проблем [5–7]. ИОС способны имитировать роль преподавателя, адаптировать учебный процесс к уровню знаний пользователя и предоставлять обратную связь в реальном времени [4, 6]. Интеграция базы знаний, основанной на ГОСТах, позволяет автоматизировать проверку соответствия чертежей стандартам, что особенно важно для подготовки специалистов в странах с жесткими нормативными требованиями, таких как Россия, Казахстан [1, 5].

Разработка ИОС для AutoCAD с использованием современных технологий, таких как Python и PostgreSQL, представляет собой актуальную задачу [6, 8, 9]. Python обеспечивает гибкость и широкую поддержку библиотек, включая pyautocad для взаимодействия с AutoCAD, а PostgreSQL гарантирует надежное хранение и масштабируемость базы знаний. Данное исследование направлено на создание такой системы, ее программную реализацию и оценку эффективности в образовательном процессе [7, 10].

Цель исследования – разработка модели и программной реализации интеллектуальной системы обучения для САПР на базе AutoCAD, включающей базу знаний ГОСТов и правил проектирования, с использованием Python, PostgreSQL и интерактивных методов обучения, а также оценка ее эффективности в образовательной практике.

Материалы и методы исследования

Исследование опирается на принципы ИИ, включая модели представления знаний: продукционные модели, семантические сети и фреймы [11]. Продукционные модели вида «если – то» выбраны для базы знаний благодаря их модульности и способности к интеграции с правилами ГОСТов (например, ГОСТ Р 2.104-2023). ИОС классифицируется как экспертно-тренирующая система, формирующая навыки проектирования и предоставляющая адаптивную обратную связь [8, 12, 13].

ИОС включает три ключевые коллекции объектов:

1. Идентифицированные блоки: объекты AutoCAD (линии, окружности, полилинии) с уникальными идентификаторами, хранящимися в базе данных [6].

2. Отношения: логические или физические связи между блоками (например, расстояние, угол, параллельность), описывающие зависимости.

3. Правила: комбинации блоков и отношений, основанные на ГОСТах, определяющие допустимые конфигурации чертежа [1, 4].

База знаний реализована в PostgreSQL, что обеспечивает высокую производительность и масштабируемость [6, 8, 9]. Для управления данными используется ORM SQLAlchemy, упрощающая взаимодействие с базой и поддерживающая переносимость на другие СУБД.

Архитектура ИОС. Диаграмма включает четыре основных компонента (рис. 1): модуль интеграции с AutoCAD через pyautocad; модуль управления базой знаний, взаимодействующий с PostgreSQL через SQLAlchemy; модуль обработки заданий, формирующий каркас из блоков и правил; модуль обратной связи, анализирующий действия пользователя [6, 10]. Компоненты соединены стрелками, показывающими потоки данных.

База данных системы. Составлена ER-диаграмма с тремя таблицами (рис. 2): Blocks, Relations, Rules. Таблицы связаны через внешние ключи [8].

missing image file

Рис. 1. Архитектура интеллектуальной системы обучения Источник: составлено авторами по результатам данного исследования

missing image file

Рис. 2. ER-диаграмма Источник: составлено авторами по результатам данного исследования

missing image file

Рис. 3. UML-диаграмма процесса взаимодействия с AutoCAD Источник: составлено авторами по результатам данного исследования

Процесс взаимодействия с AutoCAD. На рис. 3 наглядно представлена последовательность UML-диаграммы, иллюстрирующая этапы: запрос пользователя через интерфейс; передача команды в pyautocad; выполнение операции в AutoCAD (например, вставка блока); сохранение результата в PostgreSQL; формирование обратной связи [6].

ИОС реализована на Python 3.10 с использованием библиотеки pyautocad для интеграции с AutoCAD [3]. Основные модули системы:

− модуль подключения к AutoCAD: взаимодействие с активным экземпляром AutoCAD через COM-интерфейс;

− модуль управления блоками: создание, вставка и модификация блоков в чертеже;

− модуль базы знаний: управление правилами и отношениями в PostgreSQL;

− модуль обратной связи: анализ действий обучаемого и предоставление рекомендаций;

− модуль тестирования: автоматизированная проверка чертежей на соответствие ГОСТам [14].

Система тестировалась на группе из 60 студентов инженерных специальностей, разделенных на две группы: экспериментальную (30 чел., использовали ИОС) и контрольную (30 чел., традиционное обучение). Задания включали создание чертежей (например, механических деталей и архитектурных планов) с учетом ГОСТ Р 2.104-2023 и ГОСТ Р 2.105-2019 [1]. Эффективность оценивалась по следующим параметрам: время выполнения заданий (в минутах); количество ошибок, связанных с нарушением стандартов; уровень удовлетворенности обучаемых, измеренный через анкетирование (шкала 1–10).

Подключение к AutoCAD

from pyautocad import Autocad, APoint

from comtypes import COMError

def connect_to_autocad(create_if_not_exists=True):

try:

acad = Autocad(create_if_not_exists=create_if_not_exists)

acad.app.Visible = True

print("Подключено к AutoCAD")

return acad

except COMError as e:

raise Exception(f"Ошибка подключения к AutoCAD: {e}")

if __name__ == "__main__":

acad = connect_to_autocad()

Подключение к базе данных

from sqlalchemy import create_engine, Column, Integer, String, Float, ForeignKey

from sqlalchemy.ext.declarative import declarative_base

from sqlalchemy.orm import sessionmaker, relationship

Base = declarative_base()

class Block(Base):

__tablename__ = 'blocks'

id = Column(Integer, primary_key=True)

name = Column(String, nullable=False)

x = Column(Float)

y = Column(Float)

z = Column(Float)

class Relation(Base):

__tablename__ = 'relations'

id = Column(Integer, primary_key=True)

type = Column(String, nullable=False) # e.g., 'distance', 'angle'

value = Column(Float)

block1_id = Column(Integer, ForeignKey('blocks.id'))

block2_id = Column(Integer, ForeignKey('blocks.id'))

block1 = relationship("Block", foreign_keys=[block1_id])

block2 = relationship("Block", foreign_keys=[block2_id])

class Rule(Base):

__tablename__ = 'rules'

id = Column(Integer, primary_key=True)

description = Column(String, nullable=False) # e.g., 'ГОСТ 2.104-2023'

relation_id = Column(Integer, ForeignKey('relations.id'))

relation = relationship("Relation")

def connect_to_db():

engine = create_engine('postgresql://user:password@localhost:5432/acad_db')

Base.metadata.create_all(engine)

Session = sessionmaker(bind=engine)

return Session()

if __name__ == "__main__":

session = connect_to_db()

Создание блока

def create_block(acad, block_name, points):

model_space = acad.model

for i in range(len(points) – 1):

model_space.AddLine(APoint(*points[i]), APoint(*points[i + 1]))

model_space.AddLine(APoint(*points[-1]), APoint(*points[0]))

print(f"Фигура '{block_name}' создана в ModelSpace")

Вставка блока

def insert_block(acad, insert_point, block_name):

doc = acad.doc

model_space = doc.ModelSpace

block_ref = model_space.InsertBlock(APoint(*insert_point), block_name, 1, 1, 1, 0)

block_ref.Update()

print(f"Блок '{block_name}' вставлен в точке {insert_point}")

return block_ref

if __name__ == "__main__":

acad = connect_to_autocad()

insert_block(acad=acad, block_name="NewBlock", insert_point=(20, 30, 0))

Проверка соответствия ГОСТам

def verify_gost_compliance(session, block1_id, block2_id, relation_type, expected_value):

relation = session.query(Relation).filter_by(

block1_id=block1_id,

block2_id=block2_id,

type=relation_type

).first()

if relation and abs(relation.value – expected_value) < 0.01:

print(f"Соответствие ГОСТу для {relation_type}: проверено")

return True

else:

print(f"Нарушение ГОСТа для {relation_type}: ожидалось {expected_value}, получено {relation.value}")

return False

Для обеспечения расширяемости отношения реализованы как отдельные Python-модули, регистрируемые в PostgreSQL через таблицу конфигурации. Это позволяет добавлять новые типы отношений (например, «ортогональность») без изменения ядра [6, 8]. SQLAlchemy поддерживает динамическое расширение модели данных, а использование Docker- для развертывания PostgreSQL упрощает масштабирование.

Результаты исследования и их обсуждение

Разработанная ИОС успешно интегрируется с AutoCAD через pyautocad, обеспечивая управление блоками и проверку чертежей в реальном времени. База данных PostgreSQL обрабатывает до 50,000 записей с временем отклика менее 0,03 с за запрос. SQLAlchemy сократило время разработки запросов на 25 % по сравнению с использованием raw SQL.

Экспериментальная группа, использующая ИОС, выполнила задания в среднем на 25 % быстрее, чем контрольная (среднее время: 90 мин против 120 мин). Количество ошибок, связанных с нарушением ГОСТов, сократилось на 45 % (среднее число ошибок: 3 против 1,5 на человека). Уровень удовлетворенности обучаемых составил 8,7/10 для экспериментальной группы против 6,2/10 для контрольной.

Сравнение с аналогичными системами (например, плагины AutoCAD или обучающие модули на C#) показало преимущества ИОС:

− гибкость: Python и pyautocad поддерживают кроссплатформенность и интеграцию с современными библиотеками;

− масштабируемость: PostgreSQL превосходит SQLite по производительности при больших объемах данных;

− адаптивность: обратная связь в реальном времени отсутствует в большинстве плагинов.

Однако ИОС имеет ограничения: зависимость от локальной установки AutoCAD ограничивает использование в облачных средах; отсутствие естественно-языкового интерфейса затрудняет взаимодействие для новичков; база знаний покрывает только основные ГОСТы (ГОСТ Р 2.104-2023, ГОСТ Р 2.105-2023), требуя расширения.

Результаты подтверждают гипотезу, что ИОС сокращает время обучения и повышает качество чертежей. Сравнение с исследованиями показывает, что использование современных технологий (Python, PostgreSQL) делает систему более устойчивой к устареванию по сравнению с VBA-based решениями [8, 10]. Однако для полной автоматизации требуется интеграция с машинным обучением, чтобы адаптировать задания под уровень знаний обучаемого.

Перспективы развития

Машинное обучение: использование алгоритмов (например, кластеризации) для персонализации обучения.

Облачные технологии: перенос базы знаний в облако (например, AWS RDS) для удаленного доступа.

Естественно-языковой интерфейс: интеграция с NLP-моделями для упрощения взаимодействия.

Расширение базы знаний: включение дополнительных ГОСТов и стандартов (ISO, ASME) [12, 15].

Заключение

Разработанная интеллектуальная система обучения для AutoCAD представляет собой эффективное решение для подготовки специалистов в области САПР. ИОС, включающая базу знаний ГОСТов, реализована с использованием Python, pyautocad и PostgreSQL, обеспечивая высокую производительность и соответствие стандартам. Программные модули успешно интегрируются с AutoCAD, предоставляя интерактивную поддержку и проверку чертежей в реальном времени.

Разработанная ИОС имеет потенциал стать стандартом для обучения САПР, способствуя повышению квалификации инженеров и архитекторов.