Алгоритмы сборки 3D-моделей объектов машиностроения

В.А. Ромакин
с.н.с., к.т.н., insight.ru@gmail.com,
ИПУ РАН, г. Москва

Аннотация

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

В лаборатории 18 Института проблем управления РАН ведутся исследования принципов построения интерактивных электронных учебных пособий на основе средств виртуальной реальности (ИУП ВР), разрабатывается пример ИУП ВР для обучения устройству, ремонту и техническому обслуживанию автомобилей [1, 2].

В настоящей работе рассмотрены различные алгоритмы сборки 3D-моделей объектов машиностроения, которые использовались при разработке ИУП ВР для обучения устройству, ремонту и техническому обслуживанию автомобилей.

 

Abstract

Recently the process of computer technologies adoption in education is rapidly going on, and the as a part of this process, the different educational software is invented. Such software often lacks for visual aids based on virtual reality means.

In earlier articles [1,2] there were described features of development of interactive computer educational systems based on virtual reality means and an example of such system that intended for teaching vehicles assembling, service and repair operations.

This article presents different algorithms of performing 3D models assembling, used in development of interactive educational system, based on virtual reality means.

Введение

Среди отличительных функций программного обеспечения ИУП ВР для обучения устройству, ремонту и техническому обслуживанию автомобилей следует отметить возможность демонстрации трехмерных анимированных изображений операций сборки и разборки узлов автомобиля, а также возможность самостоятельного выполнения пользователем указанных операций путем манипулирования трехмерными моделями элементов соответствующих узлов. Далее описан геометрический аппарат и алгоритмы, разработанные для реализации этих функций.

Основные понятия

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

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

Положение L объекта O в пространстве сцены задается матрицей поворота R и вектором переноса : L = {R, }. Следовательно, матрица преобразований объекта в пространстве сцены будет равна , где MT – матрица переноса на вектор T, MC – матрица переноса на вектор C, C – центр поворота объекта, заданный в системе координат объекта.

Для каждого объекта задаётся множество узлов стыковки {D}, которые описываются пятью параметрами: D = {A, ,, t, }, где A — начальная точка стыковки,  вектор стыковки,  вектор ориентации объектов друг относительно друга, tтип соединения, — вектор параметров соединений (длина вала, диаметр резьбы и пр.). Параметры A, ,  задаются в системе координат объекта (см. рис. 1).

Стыковка двух объектов

Сборка сложного объекта — это заданная последовательность операций стыковки его составляющих, при этом под стыковкой двух объектов O1 и O2 понимается последовательность, включающая три основных этапа:

1. Движение объекта O1 из исходного положения L в промежуточное положение L', в котором координаты начальных точек стыковки объектов совпадают, вектора стыковки являются противоположно направленными, а вектора ориентации — сонаправленными: A'1 = A'2, , ;

2. Движение объекта O1 из промежуточного положения L' в конечное положение L'', вдоль вектора стыковки ;

3. Объединение объекта O1 и O2 в группу объектов G(O1, O2). Группа объектов представляет собой множество объектов G={Oi}, положение в пространстве и ориентация которых определяется матрицей Mgi = MgMi, где Mg – общая матрица преобразований группы, а Mi – матрица преобразований объекта Oi (до включения в группу).

02

starter01

а)

б)

рис. 1. Установка реле при сборке стартера

Основной алгоритм стыковки

Шаг 1. Переместить O1 на вектор  (для выполнения условия A'1 = A'2).

Шаг 2. Повернуть O1 на угол j1 вокруг вектора r1 (для выполнения условия ), где , .

Шаг 3. Повернуть O1 на угол j2 вокруг вектора r2 (для выполнения условия ), где , , R1 – матрица поворота на угол j1 вокруг вектора r1.

Шаг 4. Переместить O1 на вектор .

 

Матрица преобразований объекта O1 на первом этапе (шаги 1 - 3) равняется , где R2 – матрица поворота на угол j2 вокруг вектора r2,  – матрица переноса на вектор ).

Матрица преобразований объекта O1 на втором этапе равняется , где  – матрица переноса на вектор T''.

Операции с группами объектов

Добавление объекта в группу

Пусть имеется объект O с матрицей преобразования  и группа объектов G={Oi}, 1£i£N с матрицей преобразования .

При добавлении объекта О в группу G новая матрица преобразований объекта будет рассчитываться по формуле , где знаком ~ обозначены матрицы преобразований после группировки. При этом положение объектов О и Оi не должно измениться:

,

.

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

,

.

Извлечение объекта из группы

При извлечении объекта O из группы G необходимо вычислить параметры преобразований извлеченного объекта: матрицу поворота и . Для вычислений  учтем, что . Далее потребуется

Алгоритм извлечения матрицы поворота R из общей матрицы преобразований M

Зададим Ox = (1, 0, 0), Oy = (1, 0, 0), Z = (0, 0, 0).

Вычислим , .

Найдем матрицу поворота R1 для совмещения векторов  и .

Вычислим .

Найдем матрицу поворота R2 для совмещения векторов  и .

Вычислим искомую матрицу .

С помощью этого алгоритма, можно вычислить матрицы поворота RG и RO, зная общие матрицы преобразований MG и MO.

Алгоритм стыковки для винтов и гаек

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

Шаг 1. Выполнить шаги 1-3 основного алгоритма стыковки винта (гайки) и посадочного места (см. рис. 2а, 2б).

Шаг 2. Выбрать необходимый инструмент.

Шаг 3. Выполнить стыковку инструмента и винта (гайки), в результате образуется группа «Инструмент+Винт» (см. рис. 2в).

Шаг 4. Выполнить шаг 4 основного алгоритма стыковки группы «Инструмент+Винт» и посадочного места. При перемещении группы на вектор стыковки  необходимо сделать  оборотов группы вокруг оси винта, где P - шаг метрической резьбы винта.

Шаг 5. Извлечь инструмент и винт из группы «Инструмент+Винт».

Шаг 6. Скрыть инструмент.

Шаг 7. Выполнить шаг 5 основного алгоритма стыковки (группировку) винта (гайки) и посадочного места (рис. 2г).

tools2

tools3

а)

б)

       tools4

   tools6

в)

г)

рис. 2. Закручивание гайки

Алгоритм разборки

Последовательность операций при разборке сложного объекта противоположна последовательности операций при сборке этого объекта.

Заключение

Предложенные алгоритмы для выполнения операций сборки и разборки 3D-моделей узлов автомобиля реализованы на языке C++ и используются в составе программного обеспечения ИУП ВР для обучения устройству, ремонту и техническому обслуживанию автомобилей.

Литература

1.    Артамонов Е.И., Балабанов А.В., Ромакин В.А. Операции на виртуальных моделях объектов машиностроения // Материалы XXXVI междунар. конф. «Информационные технологии в науке, образовании, телекоммуникации и бизнесе (IT+SE'09)». — Открытое образование. — 2009. — Прил. — С. 70-72.

2.     Артамонов Е.И., Балабанов А.В., Ромакин В.А. Технология создания специализированных систем на основе средств виртуальной реальности // Материалы 9-й междунар. конф. и выставки «CAD/CAM/PDM». М.: ИПУ РАН, 2009. С.19-24.