Научная статья на тему 'Алгоритм формирования объемной геометрической модели детали из чертежа проекций'

Алгоритм формирования объемной геометрической модели детали из чертежа проекций Текст научной статьи по специальности «Математика»

CC BY
384
44
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
THREE-DIMENSIONAL (3D) GEOMETRICAL MODEL / ТРЁХМЕРНАЯ ГЕОМЕТРИЧЕСКАЯ МОДЕЛЬ / АНАЛИЗ ПРОСТРАНСТВЕННЫХ СЦЕН / ANALYSIS OF SPATIAL SCENES

Аннотация научной статьи по математике, автор научной работы — Литовка Юрий Владимирович, Пэк Виктор Викторович, Попова Маргарита Александровна, Попов Александр Сергеевич

В САПР гальванических процессов важным этапом является ввод данных о геометрических параметрах обрабатываемой детали. Цель работы получение пространственных координат точек поверхности детали из их двумерного изображения на чертеже. Для решения задачи предложен алгоритм, включающий в себя следующие этапы: преобразование набора координат вершин в список отрезков с прослеживанием связности отрезков между собой определение проекций построение прямоугольников, описывающих каждый из трёх объектов нахождение начала координат трёх проекций для использования этой точки в дальнейшем при склейке трёхмерной модели построение трёхмерной модели на основе полученной двумерной. Для ускорения вычислений предложено распараллеливать вычисления. Библиогр. 3. Ил. 9.

i Надоели баннеры? Вы всегда можете отключить рекламу.

Похожие темы научных работ по математике , автор научной работы — Литовка Юрий Владимирович, Пэк Виктор Викторович, Попова Маргарита Александровна, Попов Александр Сергеевич

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

Data input about geometrical parameters of a processed detail is an important stage in CAD galvanic processes. The work objective is the reception of spatial co-ordinates of surface points of a detail from their two-dimensional image on the drawing. To solve the given task, the algorithm including the following stages: transformation of a set of coordinates of tops in the list of pieces, tracing connectivity of pieces among themselves definition of projections construction of rectangles describing each of three objects finding the beginning of coordinates of three projections for the use of this point further pasting this three-dimensional model construction of a three-dimensional model on the basis of the received two-dimensional one, is offered in the paper. It is offered to use the paralleling of calculations in order to speed up these calculations.

Текст научной работы на тему «Алгоритм формирования объемной геометрической модели детали из чертежа проекций»

УДК 004.932

Ю. В. Литовка, В. В. Пэк, М. А. Попова, А. С. Попов

АЛГОРИТМ ФОРМИРОВАНИЯ ОБЪЕМНОЙ ГЕОМЕТРИЧЕСКОЙ МОДЕЛИ ДЕТАЛИ ИЗ ЧЕРТЕЖА ПРОЕКЦИЙ

Введение

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

Как правило, для исходного описания детали используются 4 формата представления данных:

— трехмерный сканер;

— трехмерная модель (например, полученная с помощью программ трехмерного моделирования 3DMax, Blender, Maya, K-3d и т. п.);

— векторный чертеж системы AutoCad, nanoCAD и т. д.;

— отсканированный машиностроительный чертеж BMP, JPG, TIFF и т. д.

Наиболее сложным является последний случай, т. к. для получения трёхмерной модели детали необходимо удалить шумы, перевести информацию из растровой в векторную форму, распознать объекты, присутствующие на чертеже, убрать ненужную информацию и из трёх плоских проекций получить трёхмерное представление. Начальные этапы данного алгоритма описаны в [1, 2], поэтому рассмотрим подробно алгоритм восстановления трехмерной модели детали из векторного представления на плоскости. Цель - получение пространственных координат точек поверхности для последующего расчета равномерности получаемого покрытия, что является задачей анализа пространственных сцен по их двумерному изображению. Двумерная модель представлена набором векторов. Необходимо соотнести векторы по проекциям, определить начало координат и угол а поворота координат относительно ортогональных координат, вызванный неточностями сканирования.

На вход рассматриваемого алгоритма поступает файл векторного формата (например, с расширением .g2d), содержащий данные о масштабе изображения, количестве и координатах вершин и типах линий отрезков распознанного чертежа.

Пример изображения приведен на рис. 1.

3 9

2

1 4 7 10

6

5 11

15

12 13 14

16

X

Рис. 1. Пример чертежа детали

Векторный файл, соответствующий приведенному на рис. 1 чертежу детали, имеет следующее содержимое:

//начало файла

20 16 //- масштаб чертежа и количество отрезков на чертеже

//в следующих строках содержатся координаты начала и конца отрезков чертежа

1 3 12 9 12

1 9 12 9 18

1 9 18 12 18

1 12 18 12 9

1 12 9 3 9

1 3 9 3 12

1 18 9 18 18

1 21 9 21 18

1 18 18 21 18

1 18 12 21 12

1 18 921 9

1 3 0 3 3

1 9 0 9 3

1 12 0 12 3

1 3 3 12 3

1 3 0 12 0

//конец файла

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

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

Для этого строится табл. 1. Числа в заголовке таблицы соответствуют номерам отрезков. Второе число в строке означает количество отрезков, имеющих общие вершины с указанным в первом столбце отрезком. Остальные числа - номера связанных отрезков.

Таблица 1

Векторный файл и координаты вершин

0 1 2 3 4 5 6

1

1

0

1

2 5 6

3

4 5 6

5 2 4

6 2 4

Если строка содержит 0 - это означает особый случай, когда отрезки связаны не общими вершинами, хотя и относятся к одной проекции. Этот случай будет рассмотрен ниже.

2. На втором шаге алгоритма определяем связанные объекты - наборы связанных линий для определения проекций. Для этого из табл. 1 берём первый отрезок, помещаем его и все с ним связанные в табл. 3, после чего помечаем этот отрезок и все нами внесённые как уже рассмотренные. После этого рассматриваем второй отрезок в первой строке третьего массива на предмет связанных с ним (табл. 1) и вносим в третью таблицу не рассмотренные ещё отрезки (табл. 2). Потом рассматриваем третий отрезок и т. д., пока не закончатся все отрезки в первой строке. Когда заканчиваются отрезки в первой строке, ищем первый нерассмотренный отрезок и повторяем всё как для первой строки. После этого также проходим третью и т. д., пока не закончатся нерассмотренные отрезки. В табл. 2 показан массив на этапе рассмотрения отрезка 3.

Таблица 2

Массив на этапе рассмотрения отрезка

№ отрезка 0 1 2 3 4 5 6

Рассмотрен

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

Таблица 3

Три связанных объекта

1

0

2 5 6 4

3

Возможны следующие варианты пересечений (рис. 2).

Рис. 2. Возможные варианты пересечения объектов

Анализируя положение прямоугольников, определяем принадлежность отрезков: 10-го (см. рис. 1) - второму объекту, 13-го отрезка (см. рис. 1) - третьему объекту. Если прямоугольники не пересекаются, как в последнем варианте, то это означает, что объекты принадлежат разным проекциям.

Окончательная система связанных объектов показана в табл. 4. Как видно из количества строк этой таблицы, имеем три объекта, которые соответствуют трём проекциям чертежа.

Таблица 4

Три проекции чертежа

1 0

2 5 6 4 3

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

у = тах х = шт

<$■

у = тах х = тт

у = тах х = тт

х

Рис. 3. Определение принадлежности проекций

4. Четвертый шаг алгоритма заключается в нахождении начала координат трёх проекций для использования этой точки в дальнейшем при склейке трёхмерной модели. На рис. 4 показаны геометрические построения, необходимые для нахождения начала координат. Для этого на фронтальной проекции и на виде сбоку находятся точка А (на фронтальной проекции) и точка В (на виде сбоку), расстояние между которыми будет минимальным. Так же для фронтальной проекции и для вида сбоку находятся точка С (на фронтальной проекции) и точка В (на виде сверху), расстояние между которыми будет минимальным. В результате получаем два отрезка: АВ и СВ, перпендикуляры через центры которых будут пересекаться в начале координат. Точки Е и ^ являются центрами отрезков АВ и СВ соответственно.

Рис. 4. Поиск начала координат

Параметрическое уравнение линии, проходящей через точки А и В, имеет вид

Г Х(0 = (Хв - Ха у + Ха ,

1 У(() =(Ув - Уа У + Уа-Аналогично для линии, проходящей через точки С и В:

Г х^) = (хп - Хс ) + Хс ,

1 У(^) =(Ув - Ус У + Ус •

Уравнения перпендикуляров в точках Е и Е будут иметь вид:

Ха + Хв + Ув - Уа

х(ґ) = (Уа - Ув ) + ■ у(ґ) = (Хв - Ха )ґ +

2

Уа + Ув + ха - Хв 2

х(0 = (Ус - Ув ) +

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

У (0 = (Хв - хс У +

хс + Хв + Ув - Ус 2

Ус + Ув + хс - Хв 2 '

(1)

(2)

(3)

(4)

Задача нахождения точки начала координат сводится к нахождению точки пересечения линий, описанных системами (3) и (4). Для системы (3) параметр ґ вычисляется по следующей формуле:

(Ус -Ув)'(Уа + Ув + ха -Хв -Ус + Ув + хс -Хв) + (Хв -хсМхс + Хв + Ув -Ус -ха + Хв + Ув -Уа)

2((хв -хсМуа -Ув)-(Ус -Ув)ІХв -ха)

Для расчёта угла поворота осей координат используется следующая формула:

(

а = агС^

(Уа - Ув ^

V Хв - ха ,

Затем производится перерасчёт координат вершин отрезков относительно нового начала координат с учётом направления осей координат и поворот системы координат на угол - а .

5. Пятый шаг алгоритма - построение трёхмерной модели на основе полученной двумерной. Будем считать, что гальваническая ванна имеет форму параллелепипеда и в ней размещён

один плоский анод (наиболее распространённый на практике случай). Проецируем объём ванны в полученную систему координат с учётом расположения детали в ней (рис. 5).

Ванна

у

Анод

(0, 0, 0)

Ванна

Анод ^

Рис. 5. Проекции детали в гальванической ванне

Рассмотрим вначале вариант определения геометрического места точек поверхности катода, обращенной к аноду (вариант полной модели детали строится из трёх одинаковых этапов, аналогичных определению точек, обращённых к аноду, с добавлением этапа совмещения точек трёх полученных моделей).

5.1. Восстанавливаем перпендикуляры (нормали) от стенки ванны к детали (рис. 6).

У

(0, 0, 0)

Рис. 6. Восстановление нормалей к стенке ванны

Запишем теперь матрицу векторов в виде параметрических уравнений:

Му =

Xі = axijt + Ь%і} ,

уч

(5)

г,і = аі + ь2,і.

где Му - матрица векторов нормалей; су, сі - количество точек в сетке по у и г соответственно.

5.2. После получения матрицы векторов происходит поиск точек пересечения восстановленных нормалей с линиями проекций.

X

г

X

г

г

Для фронтальной проекции:

|хк = ах^ + Ьхк, IУк = аук( + Ьук •’

Для поиска координат точек пересечения необходимо определить параметр t1 для системы (5) и параметр t2 для системы (6) для всех /, ], к. При этом критерием внутреннего пересечения (пересечение отрезка между вершинами, его ограничивающими) будет приниматься, что

0 < t2 £ 1. Данное свойство основано на выборе коэффициентов а и Ь для отрезков фронтальной проекции (этот принцип лежит в основе построения всех параметрических систем уравнения прямой в данной работе).

ах = хк — хп Ьх = хп ,

ау = Ук - Уп ЬУ = Уп ,

где хп, Уп - координаты начала отрезка; Хк, Ук - координаты конца отрезка.

При этом пересечения, выходящие за границы отрезков, сразу отбрасываются.

* = ЬУУахк + ЬхкаУк — ЬхуаУк — ЬУкахк t1 = ,

ахцаУк — аУцахк

, ахуЧ + Ьху — Ьхк аУУ^1 + ЬУЧ — ЬУк

t2 = — ------ ----- или t2 = ------—-----— .

ахк аУк

Для вида сверху:

\хк = ахк‘ + Ък,

/V А /V А /V у

I гк = агк* + Ъ2к.’

Аналогично для систем (5) и (7):

Ъ11)ахк + Ъхка1к -Ъх1)а1к -Ъ1кахк

1 < к < Тк. (7)

ахі}аік -аіі}ахк

Для вида сбоку:

# ахі]Ч + Ъщ - Ъхк # а} + ЪИ] - Ъ1к

І 2 =---- --------- -------- ИЛИ І 2 =-------- -------- ---------

ахк аік

2к = а2кІ + Ъ2к

; 1 < к < ^. (8)

Ук = аук‘ + Ъук.

Аналогично для систем (5) и (8).

Ъ1уахк + Ъхка1к -Ъхуа1к -Ъ1кахк

І1 = ■

ахі}аік - аіі}ахк

, = Ъу1}а2к + Ъ2каук - ЪП}аук - Ъукахк ‘1 = , аіі}'аук ауі}'аік

аіі}4 + ЪИ} - Ъ1к . ауі}‘1 + Ъуі} - Ъук

І2 =------ --------- --------- ИЛИ І2 = -—-—

аік аук

Далее на трёх проекциях происходит определение точек с одинаковыми параметрами t1• Если параметры совпадают для всех трёх проекций, то это точка трёхмерного объекта. При этом, если попадаются варианты (как в данном случае) для вида сбоку, такие, что все отрезки

расположены перпендикулярно плоскости проекции, то параметры t1 для этой проекции не ищутся, а решается задача принадлежности точки многоугольнику для всех связанных отрезков данной проекции. Если точка принадлежит хотя бы одному многоугольнику, то сравниваются параметры двух оставшихся проекций. Для определения принадлежности точки полигону используется лучевой алгоритм [3] (рис. 7).

Рис. 7. Иллюстрация лучевого алгоритма

В качестве результатов работы алгоритма на рис. 8 показано окно программы с собранной объемной деталью, а на рис. 9 - с сеткой, покрывающей деталь.

\Ш йепЗс! (игле 0.062) ^п}*}

Файл Вид Помощь

Рис. 8. Объёмное представление детали

Рис. 9. Полигональное представление детали

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

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

Тестовая конфигурация Intel Core Quad 1.86Ghz, 2Gb, GeForce 8800GTS 320Mb, OS Windows XP.

Расчёт с сеткой 1000 x 1000 (для ванны 100 х 100 х 100 см шаг сетки - 1 мм).

— без разбиения - 41,391 с;

— для разбиения на две задачи системы - около 46 % экономии итогового времени - 19,04 с;

— для разбиения на три задачи - около 67 % экономии итогового времени - 13,9 с;

— для разбиения на четыре задачи - около 74 % экономии итогового времени - 9,5 с;

— для разбиения задачи на 96 подзадач (число вычислителей видеокарты GeForce 8800GTS) - около 96 % экономии итогового времени - 1,2 с. Для данной системы необходимо достаточно высокое дробление задачи, т. к. она имеет собственный аппаратно реализованный менеджер задач, который равномерно распределяет задачи по вычислителям в зависимости от загрузки вычислителей. Это позволяет достичь очень высокой производительности расчёта параллельно реализованных задач.

Заключение

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

СПИСОК ЛИТЕРАТУРЫ

1. Литовка Ю. В., Попова М. А. Алгоритм векторизации растрового чертежа в САПР гальванических процессов // Математические методы в технике и технологиях: тез. докл. 22 Междунар. конф. -Псков, 2009. - Т. 10. - С. 101-102.

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

2. САПР гальванических процессов / Ю. В. Литовка, Г. А. Кириченко, М. А. Попова, А. С. Попов. -Вестн. Тамбов. гос. техн. ун-та. - 2008. - Т. 14, № 4. - С. 882-891.

3. Никулин Е. А. Компьютерная геометрия и алгоритмы машинной графики. - СПб.: БХВ-Петербург, 2005. - 576 с.

Статья поступила в редакцию 14.10.2009

FORMATION ALGORITHM OF VOLUME GEOMETRICAL MODEL OF A DETAIL FROM PROJECTIVE DRAWING

Yu. В. Litovka, V. V. Pek, M. A. Popova, А. S. Popov

Data input about geometrical parameters of a processed detail is an important stage in CAD galvanic processes. The work objective is the reception of spatial co-ordinates of surface points of a detail from their two-dimensional image on the drawing. To solve the given task, the algorithm including the following stages: transformation of a set of coordinates of tops in the list of pieces, tracing connectivity of pieces among themselves; definition of projections; construction of rectangles describing each of three objects; finding the beginning of coordinates of three projections for the use of this point further pasting this threedimensional model; construction of a three-dimensional model on the basis of the received two-dimensional one, is offered in the paper. It is offered to use the paralleling of calculations in order to speed up these calculations.

Key words: three-dimensional (3D) geometrical model; analysis of spatial

scenes.

i Надоели баннеры? Вы всегда можете отключить рекламу.