УДК 681.5.001.63: 519.711
С.В. ЧОПОРОВ, зав. лаб. геоинформационных систем Запорожского национального университета, Запорожье,
С.И. ГОМЕНЮК, д.т.н., проф. Запорожского национального
университета, Запорожье
ПРОБЛЕМНО-ОРИЕНТИРОВАННЫЙ ЯЗЫК ГЕОМЕТРИЧЕСКОГО МОДЕЛИРОВАНИЯ НА БАЗЕ ТЕОРИИ Я-ФУНКЦИЙ
В работе рассмотрена проблема геометрического моделирования сложных объектов на базе теории R-функций. Предложен подход к формализации описания геометрической модели на основе проблемно-ориентированного языка. Ил.: 2. Библиогр.: 9 назв.
Ключевые слова: геометрическая модель, R-функция, проблемно-ориентированный
язык.
Постановка проблемы. Развитие современного производства требует качественной эволюции системы технологического анализа. Высокая конкуренция на рынке машиностроения и инженерных технологий ведет украинских разработчиков к необходимости проектирования все более сложных и неординарных решений. Дороговизна ошибки при реализации таких решений на практике делает все более актуальным и значимым их компьютерное моделирование и внесение оптимизационных изменений по результатам моделирования.
В современной технике одним из наиболее трудоемких является этап анализа функциональных характеристик, механических свойств, прочности и долговечности проектируемых конструкций, сооружений, машин и механизмов. В современных САПР данный этап, как правило, связывают с решением двух групп проблем: 1) автоматизация подготовки геометрической модели объекта и 2) автоматизация вычислений физических характеристик исследуемого объекта. Исследование второй группы показывает, что большое количество возникающих на практике задач (в частности анализ напряженно-деформированного состояния) связано с необходимостью решения систем дифференциальных или интегральных уравнений. Для их решения современные САПР используют различные вычислительные методы, основанные на идеи перехода от непрерывной задачи к дискретной, например, метод конечных элементов [1 - 3]. При этом необходимо построение различных математических моделей, в составляющие части которых, как правило, входят сложные геометрические модели исследуемых объектов. Следовательно, актуальной является проблема автоматизации процесса построения геометрических моделей сложной формы, которая может
быть условно разделена на две составляющие: 1) формализация описания геометрической модели сложного объекта; 2) автоматизация построения на ее базе адекватной дискретной модели.
Анализ литературы. Анализ современных САПР в машиностроении показывает, что наиболее распространенными подходами к геометрическому моделированию сложных тел являются:
- инженерные чертежи;
- граничное представление;
- конструктивная блочная геометрия;
- функциональное представление.
Первый подход выглядит наиболее привлекательно в глазах инженера, позволяя ему строить привычные чертежи геометрических проекций, и получил свое развитие в таких системах как AutoCAD, КОМПАС и т.д. Однако, при проектировании нестандартных решений не всегда имеется возможность выделить геометрические проекции, использование которых будет в полной мере отображать все особенности конструкции.
Возможность представлять тело совокупностью ограничивающих его объем оболочек и логических операций над ними, универсальность используемых структур делают второй подход одним из наиболее применимых в компьютерной графике [4, 5]. Граничное представление лежит в основе ядра геометрического моделирования Parasolid и системы Romulus. Однако необходимо отметить, что получение системы оболочек, описывающих сложное тело, является весьма трудоемкой задачей.
Конструктивная блочная геометрия (Constructive Solid Geometry, CSG) - подход, позволяющий создать геометрическую модель сложного объекта с помощью булевых операций над элементами некоторого множества более простых объектов, формирующих библиотеку примитивов. Недостатком подхода является относительная сложность получения границы, адекватно отражающей моделируемый объект. Также ограниченность набора базовых примитивов делает ограниченной область определения такого подхода.
Функциональное представление - подход, который основан на идее моделирования геометрической структуры тела с помощью математических функций или соотношений. Одним из наиболее распространенных тут является использование неявных функций, которые (как правило) больше нуля внутри области, равны нулю на границе и меньше нуля вне области. Использование теории R-функций, разработанной В.Л. Рвачевым [6 - 8], позволяет получать сложные неявные функции, соответствующие сложным областям, конструктивно. Теоретически такой подход, сочетая в себе богатство аппарата
математических функций, является наиболее универсальным. Однако, на практике его применение затрудняется сложностью умозрительного восприятия и верификации получаемых в итоге формул.
Цель статьи - разработка проблемно-ориентированного языка геометрического моделирования, позволяющего упростить процесс построения и верификации функциональных геометрических моделей на базе теории R-функций.
Основы метода R-функций. Пусть Q - сложное тело, геометрическую модель которого необходимо получить. Наиболее общим методом определения множества точек X, образующих объект Q, является определение предиката A, который может быть вычислен для каждой точки p пространства [13]:
X = {pA(p) = true} . (1)
Таким образом, X определено неявно и состоит из всех точек, удовлетворяющих условию, определенному предикатом A. Простейшей формой предиката является ограничение на знак некоторой действительной функции. Например, если f (x,y) = Ax + By + C, тогда f (x,y) = 0 , f (x,y) > 0 и f (x,y) < 0 определяют прямую, закрытую полуплоскость и открытую полуплоскость, соответственно.
Для определения более сложных областей могут быть использованы R-функции в качестве логических операций над более простыми функциями. Наиболее распространенной на практике системой R-функций является:
—x = —x x Л y = x+y ~yj x2 +y2, x v y = x+y+^x2 +y2. (2)
Словарь проблемно-ориентированного языка. Естественным решением проблемы автоматизации геометрического моделирования на базе функционального подхода и теории R-функций является разработка проблемно-ориентированного языка, позволяющего описывать математические формулы. Такой подход сочетает в себе гибкость описания и компактность хранения модельных данных. Однако, в работе [5] отмечается, что порядка 60% механических деталей могут быть представлены с помощью системы конструктивной блочной геометрии, в основе которой только прямоугольные балки и цилиндрические примитивы. Следовательно, разумным является формирование библиотеки R-функций наиболее распространенных объектов с последующей интеграцией этой библиотеки в словарь проблемного
языка, что позволит моделировать ряд стандартных деталей в терминах конструктивной блочной геометрии, а для моделирования элементов с нестандартной формой использовать определяемые пользователем функции.
Геометрическое моделирование многих инженерных деталей и конструкций может быть сведено к последовательным логическим операциям объединения и пересечения полуплоскостей или полупространств.
Полуплоскость заданная упорядоченной парой точек А1 (х1, у1) и А2 (х2, у2), и расположенная по правую сторону при движении от первой ко второй точке, может быть представлена формулой
FA]A2 у, , у!, X2, У2) = (x - x1)(Уз - у{) - (у - У!>(X2 - X1). (3)
Аналогично, полупространство, заданное с помощью точки Р (хр, ур, хр), принадлежащей граничной плоскости, и внешней нормалью п = (хп, уп, хЩ) можно определить формулой
Р'рп (x,У,z,Xp,Уp,zp,Xn,Уn,zn ) = -xй (x - xp ) - Уп (У - Уp ) - zn (- - zp ). (4)
Область, ограниченная эллипсом с центром в точке (х0, уо), большая полуось которого равна а, малая полуось - Ь, может быть представлена формулой
Ellipse(x,y,x0 ,у0 ,и,Ь) = 1- -^———У0 ) , (5)
a Ь
частным случаем которой является круг радиуса г с центром в точке
(хо, Уо)
Ш^У,^ ,Уо )=г 2 (x - x0 )2 -(у - Уо )2. (6)
Аналогично, в трехмерном пространстве функция, описывающая область, ограниченную эллипсоидом, центр которого находится в точке (х0, у0, х0), а полуоси равны а, Ь и с, может быть представлена формулой
Ellipsoid(x, у, -, x0, уо ,20 ,и,Ь,c) = 1 - (----------——У°)-------- -----
2 .2 2 ' (7) и Ь с
частным случаем которой является шар радиуса г с центром в точке (х0, У0, Х0):
Bиll(x,yz,r,xо,У0,-0) = г2 -(x-^ -(У-У0)2 -(-- —0)2. (8)
Выпуклый многоугольник, заданный упорядоченной последовательностью из п > 3 вершин V = {(х,, у,)}, при условии обхода вершин по часовой стрелке, может быть представлен конъюнкцией п полуплоскостей, последовательно образуемых парами вершин:
ConvexPolygon( x, у,У = {(xi; у1)}, п) =
= FAlA2 (X,У^ ,У1, X2 ,У2) Л ^А2 (X,У,X2 ,У2 ,X3 ,Уз) Л ...Л (9)
Л ^А2 (X, У, Xn-1, Уп-1 ^п^п ) Л ^А2 (X, У^п^^^ , У0 ).
Частным случаем выпуклого многоугольника является правильный п-угольник, вписанный в окружность радиуса г с центром в точке С (х0, у0), первая вершина которого расположена на пересечении оси ординат и окружности:
V = -Ц;п): £• = Xо +rsin«i, п = У0 +rcos«i, а = —(/' -1), i = М},
[ п \ (10)
RegulиrPolygon(x,y,r,xV),yV),n) = ConvexPolygon(x,y,V,n).
Я-функция, которая представляет параллелограмм с координатами нижнего левого угла А (х0, у0), длиной основания а, высотой к и углом 0 < а < п в точке А, может быть представлена формулой
V = {А(.Г0, У0 ) ^ + АX, У0 + к\ с((0 + и + АX, У0 + к\ ^0 + и,У0 )} ^
Pиrиllelogrиm(x, у, x0, у0, и, к, а)= ConvexPolygon(x, у, V, 4),
где А ж = к^ (а),
частым случаем которой при а = п / 2 будет прямоугольник. Однако, с вычислительной точки зрения прямоугольник рационально представить в виде логического пересечения двух полос:
где (х0, у0) - координаты нижнего левого угла, w - ширина, к - высота.
Параллелепипед, определенный вершиной А (х0, у0, х0), шириной а, высотой к, глубиной ё, углами аир, можно рассматривать как пересечение двух полос пространства с сечением в форме параллелограмма: в плоскости хОу и плоскости хОу, может быть представлен формулой
Parallelepiped(x,у, z,x0,у0,z0,a,h,d,a,$) =
- Parallelogram(x,у,x0,у0,a,h,а)лParallelogram(z,yz0,у0,d,h,p).
Используя рассуждения аналогичные (12), прямоугольный параллелепипед можно представить формулой:
Box(;
x^^o ,у0 ,Zow
h,d ) =
wj2-Гx-x -w'2 2 J 1 0 2
Г h 12 Г h 12 Г d 12 Г _ _d12
л .Г1 і 1J2 і 0 1 л .Г * Г vZ Z0 21
(14)
л
Таким образом, взяв за основу язык на базе ECMAScript [9], можно определить в нем библиотеку глобальных объектов и функций для описания геометрической модели. В частности, в процессе разработки системы геометрического моделирования qMesher был определен глобальный объект Geom, поля которого хранят метаинфорацию о свойствах геометрической модели (область определения, плотность начальной сетки, имя результирующей функции, степень оптимизации), и глобальные функции инкапсулирующие R-функции (3) - (14) и другие популярные на практике геометрические формы (например, сектор круга, прямоугольник со скругленными углами и прочие).
Например, на рис. 1 изображены описание на проблемно -ориентированном языке и визуализация геометрической модели, в форме объединения семи шаров.
16 war rl = 0,7; Н радиус центрального шара
17 var г2 = 0,3; // радиус окружающих шаров
18 var balll = Ball (к, у, г, rl, 0, 0, 0);// центральный шар
25 return Union(balll, ball2, ball3, ball4, ball5, b a 116, ball7);
Рис. 1. Определение объекта на проблемно-ориентированном языке
Для построения объектов с элементами нестандартной формы могут быть использованы определенные пользователем R-функции (пример на рис. 2).
1 Geo гл. dimension = 3; // размерность пространства
2 Geom.xjnin = -3,0; // мин идам по оси Ох
3 Geom.K_max - 3,0; // максимум по оси Ох
5 Geom.yjnax - 3,0; // максимум по оси Оу
6 Geom.z_min — -3.0; // минимум по оси Oz
7 Geom.z_max = 3.0; Н максимум по оси Oz
8 Geom.nx = 40; // іустота сетки вдоль оси Ох
9 Geom.ny = 40; // густота сетки вдоль оси Оу
10 Geom.nz = 40; // густота сетки вдоль оси Oz
11 Geom.optlterations = 5; //количество итераций оптимизации
14 return Con ( Math.sin(x + y)-z+l,z - Math.sintx + у) );
Рис. 2. Определение объекта с помощью функций пользователя
Выводы. В результате проделанной работы предложен подход к формализации описания геометрических модей, соединяющих общность и универсальность функционального представления на базе теории R-функций с простой и наглядностью методов конструктивной блочной геометрии.
Список литературы: 1. ГородецкийА.С. Информационные технологии расчета и
проектирования строительных конструкций. Учебное пособие / А.С. Городецкий,
B.С. Шмуклер, А.В. Бондарев. - Харьков: НТУ "ХПИ", 2003. - 889 с. 2. ТолокВ.А. Метод конечных элементов: теория, алгоритмы, реализация / В.А. Толок, В.В. Киричевский,
C.И. Гоменюк, С.Н. Гребенюк, Д.П. Бувайло. - К.: Наукова думка, 2003. - 316 с. 3. Smith I.M. Programming the finite element method I I.M. Smith, D. V Griffiths. - England, Chichester: Wiley, 2004. - б4б p. 4. ГоловановН.Н. Геометрическое моделирование / Н.Н. Голованов. - М.: Изд-во физ.-мат. лит., 2002. - 472 с. 5. Agoston M.K. Computer graphics and geometric modeling: implementation and algorithms I M.K. Agoston. - London: Springer-Verlag, 2005. - 959 p. б. Рвачев В.Л. Введение в теорию R-функций / В.Л. Рвачев, Т.И. Шейко // Проблемы машиностроения. - 2001. - Т. 4. - № 1-2. - С. 46-58. 7. Рвачев В.Л. Проблемноориентированные языки и системы для инженерных расчетов / В.Л. Рвачев, А.Н. Шевченко. - К.: Техніка, 1988. - 198 с. S. Рвачев В.Л. Теория R-функций и некоторые ее приложения I В.Л. Рвачев. - К.: Наукова думка, 1982. - 552 с. 9. Standard ECMA-262. ECMAScript Language Specification [Електронний ресурс] - 2009. - 252 p. Режим доступу: http:IIwww.ecma-intemational.orgIpublicationsIfilesIECMA-STIECMA-262.pdf
УДК 681.5.001.63: 519.711
Проблемно-орієнтована мова геометричного моделювання на базі теорії R-функцій / Чопоров С.В., Гоменюк С.І. II Вісник НТУ "ХПГ. Тематичний випуск: Інформатика і моделювання. - Харків: НТУ "ХПІ". - 2011. - N° 17. - С. 181 - 188.
В роботі розглянута проблема геометричного моделювання складних об’єктів на базі теорії R-функцій. Запропоновано підхід до формалізації описання геометричної моделі на основі проблемно-орієнтованої мови. Іл.: 2. Бібліогр.: 9 назв.
UDC 681.5.001.63: 519.711
A domain-specific language for geometrical modeling on the basis of R-functions / Choporov S.V., Gomenyuk S.I. // Herald of the National Technical University "KhPI". Subject issue: Information Science and Modelling. - Kharkov: NTU "KhPI". - 2011. - №. 17. - P. 181 -188.
The problem of geometrical modeling of complex objects on the basis of R-functions is described in the article. Authors propose a domain-specific language approach to formalization of description of geometrical models. Figs.: 2. Refs.: 9 titles.
Keywords: geometrical model, R-function, domain-specific language.