×

Вы используете устаревший браузер Internet Explorer. Некоторые функции сайта им не поддерживаются.

Рекомендуем установить один из следующих браузеров: Firefox, Opera или Chrome.

Контактная информация

+7-863-218-40-00 доб.200-80
ivdon3@bk.ru

Алгоритм построения развертки поверхностей

Аннотация

А.В. Замятин, Е.А. Замятина

В статье описан алгоритм построения развертки не линейчатых поверхно-стей. Алгоритм реализован по технологии ObjectARX для AutoCAD. Это позволило интегрировать алгоритм в AutoCAD. Разработанные алгоритмы могут быть использованы в различных технических задачах, где существует необходимость построения разверток поверхностей.

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

05.13.18 - Математическое моделирование, численные методы и комплексы программ

Многие поверхности, применяемые при проектировании современных зданий и сооружений, изготавливаются из плоских материалов (металл, пластик, фанера и т.д.). Для изготовления таких поверхностей необходимо выполнить их развертку. В статье приведен алгоритм построения условной развертки поверхностей методом триангуляции [1, 2]. Алгоритм реализован в среде ObjectARX для AutoCAD[3] на языке С++[4].

Рассмотрим построение условной развертки нелинейчатой поверхности методом триангуляции. Пусть задана нелинейчатая поверхность сетью, представляющей собой два пересекающихся набора линий li и mj(рис. 1).

Рис. 1 Развертка поверхности методом триангуляции

Возьмем отсек поверхности, ограниченны криволинейным четырехугольником ABCD. Заменим отрезки кривых, ограничивающих заданный отсек, на отрезки прямых. Так как отрезки линий имеют небольшую длину, погрешность будет не велика. Построим диагональ AC четырехугольника. Найдем натуральную величину треугольника ABC – треугольник A' B' C' (на рис. 1 эта натуральная величина обозначена н.в. ΔABC). К общей стороне A'B' достроим натуральную величину треугольника ADC – треугольник A'D'C'(на рис. 1 – н.в. ΔADC). Построенный таким образом плоский четырехугольник A'B'C'D', является условной разверткой отсека поверхности ABCD. Выполняя данную операцию для всего отсека заданной поверхности, получи его условную развертку.

Рассмотрим вопрос определения натуральных величин треугольников. Для этого необходимо привести плоскость треугольника в положение плоскости уровня, т.е. сделать ее параллельной одной из плоскостей проекций. Алгоритм решения данной задачи, основанный на двух поворотах вокруг осей координат, приведен в [5]. В рассматриваемом алгоритме плоскости треугольников совмещались с координатной плоскостью xOy поворотом вокруг горизонтального следа плоскости. Данный метод в начертательной геометрии называется методом совмещения [2]. Пусть в пространстве задан треугольник ABC (рис. 2). Координаты вершин треугольника обозначим A (xAyAzA), B (xByBzB), C (xCyCzC).

Рис. 2 Совмещение плоскости треугольника с плоскостью xOy

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

(x' y' z')=(x y z)- (xA yA zA).                                                                                            (1)

Уравнение плоскости треугольника имеет вид [6]

                                                                                                           (2)

Запишем уравнение (2) в виде

 Ax + Bx + Cx = 0,                                                                                                       (3)

где

           

Уравнение горизонтального следа плоскости h0 определяется следующей системой уравнений

                                                                                  (4)

Координаты направляющего вектора горизонтального следа плоскости, с учетом (4), равны . Обозначим направляющий единичный вектор следа и его координаты через . k, l, m – направляющие косинусы h0, равные

                                                        (5)

Определим угол, который составляет вектор нормали плоскости (3)  с осью Oz

                                                                                       (6)

Повернем заданный треугольник вокруг горизонтального следа плоскости h0 на угол φ. Плоскость треугольника ABCсовместится с координатной плоскостью xOy. Точка A'', останется в начале координат, координаты точек B'' и C'' найдем по формуле [7]

,                                        (7)

где

             .

Пусть в пространстве заданы два треугольника ABCи DEF, имеющие общие стороны DF. Описанным выше способом, преобразуем их таким образом, чтобы они находились в координатной плоскости xOy (рис. 3).

Рис. 3 Совмещение треугольников

Совместим эти треугольники вдоль общих сторон A''C'' иD''F'', причем,, чтобы вершины B'' и E''  располагались по разные стороны относительно совпадающих сторон. Определим угол между векторами  и

            .

Повернем треугольник D''E''F'', вокруг оси Oz. Новые координаты точек этого треугольника, получим по соотношению

            .  

Проверим, находятся ли вершины треугольников по разные стороны, относительно общих сторон. Запишем уравнение прямой A''C'' на плоскости xOy, учитывая, что точка A'' находится в начале координат

           

или

,

где , . Если

,

то вершины находятся по одну сторону относительно общих сторон, поэтому повернем  треугольник  D''E''F'' вокруг совпадающих сторон на угол равный π. При данном преобразовании изменятся только координаты точки D'', найдем их по формуле

,

где k1, l1, m1 – направляющие косинусы совпавших сторон, вычисляемые по соотношениям, аналогичным (5).

            Выполняя приведенные операции для всего заданного отсека поверхности, построим его условную развертку.

            Пример работы алгоритма, приведен на рис. 4 и 5. На рис. 4 представлена заданная поверхность. Поверхность строилась по алгоритму, описанному [8]. На рис. 5 – построенная развертка данной поверхности.

Рис. 4 Заданная поверхность

Рис. 5 Развертка поверхности

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

 

Литература

 

1.      Бубенников А.В., Громов М.Я. Начертательная геометрия [Текст] / А.В. Бубенников, М.Я. Громов. – М.: Высшая школа, 1973. – 436 с.

2.      Фролов, С.А. Начертательная геометрия [Текст] / С.А. Фролов. – М.: Машиностроение, 1983. – 240 с.

3.      Полищук, Н.Н. AutoCAD: разработка приложений, настройка и адаптация [Текст]  / Н.Н. Полищук. – СПб.: БХВ – Петербург, 2006. – 992 с.

4.      Секунов, Н.Ю. Visual C++ Визуальная среда программирования [Текст] / Н.Ю.Секунов. – СПб.: БХВ – Петербург, 1999. – 960 c.

5.      Замятин, А.В. Алгоритм построения точек пересечения нелинейчатых поверхностей [Электронный ресурс] // «Инженерный вестник Дона», 2010, №3. – Режим доступа: http://www.ivdon.ru/magazine/issue/95/ (доступ свободный) – Загл. с экрана. – Яз. рус.

6.      Александров, П.С. Лекции по аналитическая геометрии [Текст] / П.С. Александров. – М.: Наука, 1968. – 912 с.

7.      Фокс А. Пратт М. Вычислительная геометрия [Текст] / А. Фокс, М. Пратт. –М.: Мир, 1982. – 304 с.

8.      Замятин А.В., Сухомлинова В.В. Алгоритмы визуализации нелинейчатых поверхностей // Известия вузов. Северокавказский регион. Технические науки, 2010.  – №6. – С. 30-39.