Факультет: Вычислительной техники и информатики
Специальность: Программное обеспечение автоматизированных систем
Руководитель:
доцент Карабчевский В.В.
Исследование средств разработки систем геометрического моделирования
Введение
На данном этапе развития компьютерных технологий системы геометрического моделирования являются
незаменимым компонентом во многих отраслях производственной деятельности человека. В последние годы
в инженерной практике широко применяются вычислительные возможности персональных компьютеров для
выполнения расчетов, автоматизации проектирования, организации и планирования экспериментальных
исследований, для обработки результатов испытания машин, механизмов, аппаратов. Кроме того, сейчас
необходима комплексная компьютеризация инженерной деятельности на всех этапах жизненного цикла изделий.
Широкое признание получили такие системы как AutoCAD, 3D MAX, SolidWorks и т.д. Все они обладают
собственными достоинствами и недостатками, каждая система имеет огромный функционал, позволяющий решить
большинство задач в той или иной отрасли, но и за лицензионную копию такого продукта придется выложить
солидную сумму.
В большинстве случаев при покупке одной из перечисленных систем используется лишь малая часть огромного
функционала, предоставляемого разработчиками данной системы. И тогда на предприятии может быть принято
решение о написании собственной системы, обладающей весьма ограниченным набором функций, который, однако,
позволяет решить поставленную задачу.
Такая проблема также возникает в большинстве высших учебных заведений нашей страны. В настоящее время
для инженера любой специальности навыки и умения решения производственных и научных задач с помощью
вычислительных машин являются необходимыми. Однако покупка лицензионных копий большинства графических
систем учебным заведениям не по карману и тогда единственным выходом является создание собственных
систем геометрического моделирования.
В этом случае много времени уходит на разработку собственных классов и их связывание, написание функций
для работы с графическими объектами и т.д. За счет необходимости написания системы «с нуля» значительно
увеличивается время разработки системы и возникает необходимость иметь некоторую библиотеку классов и
функций, которая позволит легко и быстро создавать простые графические системы для решения конкретной
задачи. Кроме того, для быстрого и удобного использования этой библиотеки целесообразно создать некоторую
визуальную среду, которая позволит максимально ускорить и упростить работу программиста при создании
графической системы.
Актуальность темы
Актуальность данной работы заключается в необходимости сокращения временных затрат на разработку систем
геометрического моделирования.
Цель и задачи работы
Целью данной работы является создание визуальной среды проектирования, использование которой в
значительной степени ускорит процесс создания систем геометрического моделирования.
Основные задачи, которые необходимо решить в ходе работы:
- исследование существующих средств, предназначенных для разработки систем геометрического моделировании;
- анализ данных систем и выделение основных достоинств и недостатков каждой из них с целью выявления
оптимальной структуры разрабатываемой системы;
- разработка визуальной среды проектирования данной структуры.
Новизна работы
Новизна работы заключается в применении нового подхода в проектировании графических систем, который
заключается в использовании визуальной среды разработки. В этой среде наиболее распространенные блоки
программного кода представлены в виде графических объектов. На данный момент все средства разработки
систем геометрического моделирования представлены в виде некоторых графических ядер, что не всегда удобно.
Разрабатываемая система также представляет собой графическое ядро, однако его функции используются не напрямую,
а через визуальную среду.
Анализ достижений и публикаций
На данный момент средствам разработки систем геометрического моделирования уделяется огромное внимание.
Выделяют три типа ядер: лицензируемые ядра, частные и ядра, поставляемые в исходном коде [1].
Лицензируемые ядра геометрического моделирования разрабатываются одной компанией, которая лицензирует
их другим компаниям для их CAD-систем. К числу таких ядер относятся Parasolid (UGS) и ACIS 3D Geometric
Modeler (Spatial/Dassault Systemes). Использование таких ядер в данном случае является не целесообразным,
в виду их высокой стоимости.
Частные ядра геометрического моделирования разрабатываются исключительно в собственных целях, и
использование таких ядер не является возможным. Примером таких ядер служат Thinkdesign kernel (think3
Inc.) и VX Overdrive (Varimetrix Corp.).
Ядра, доступные в исходном коде также разрабатываются и поддерживаются одной компанией, после чего они
лицензируются другим компаниям для использования в CAD-приложениях. Однако разработчики таких ядер
обеспечивают их исходный код, что является очень удобным для пользователей, которые имеют группы разработки.
Использование таких ядер позволяет получить достаточно большой функционал для решения большинства задач,
поставленных перед программистом проектировщиком. Это такие ядра как Open CASCADE (Matra Datavision) и SMLib
(Solid Modeling Solutions).
В [2] были рассмотрены проблемы, связанные с построением обучающих систем геометрического моделирования.
Позднее было принято решение о создании системы, описанной в [3]. В ходе работы были сделаны выводы о
необходимости создания инструментария, позволяющего сократить временные затраты при построении схожих
систем, используя накопленные навыки и знания. В [4] был описан функционал разрабатываемого ядра,
сформулированы проблемы, возникающие при построении ядра. На основе данного ядра была разработана система,
описанная в [5]. Ее основной задачей являлось построение трехмерного представления по комплексному чертежу
в учебных целях для решения задач прикладной геометрии, а также демонстрация возможностей ядра. Визуальная
среда разработки систем геометрического моделирования предназначена для упрощения использования данного
ядра, а также для сокращения временных затрат на изучение возможностей ядра.
Постановка задачи
Целью данной работы является построение визуальной среды, удовлетворяющей вышеописанным требованиям.
Результатом работы данной среды проектирования является программный код разработанной пользователем
графической системы на языке С++.
Можно выделить две составные части данной среды проектирования: графическое ядро, содержащее основной
набор функций и классов и, собственно, сама визуальная среда, позволяющая использовать ядро для вставки
блоков кода в проект пользователя.
Создание визуальной среды
На данном этапе разработки реализовано графическое ядро, содержащее классы для работы с такими
геометрическими объектами как точка, линия, окружность, эллипс, сплайн, а также функции для работы с
этими объектами. К таким функциям относятся функции поворота объекта на произвольный угол относительно
произвольной точки, перенос объекта, для отрезков реализованы функции выравнивания (align) и удлинения
(lengthen), аналогичные одноименным функциям системы AutoCAD. При разработке данного ядра была
использована структура, приближенная к структуре ядра Open CASCADE, описанного в [6].
Сама визуальная среда в значительной мере напоминает среду Delphi. Данная среда содержит дизайнер форм,
редактора исходного текста, палитру компонентов и инспектор объектов.
Основой разрабатываемого в данной среде проекта является главная форма будущей системы геометрического
моделирования. На рисунке 1 показана главная форма в процессе разработки:
Рис.1 Главная форма будущей среды геометрического моделирования
Как видно из рисунка, на форму добавлены такие компоненты как рабочая область и главное меню.
За модификацию главной формы отвечает дизайнер форм. Программист проектировщик в ходе работы с проектом
может создавать на главной форме элементы управления из палитры компонентов, связывая их с
пользовательскими функциями. К основным элементам управления можно отнести такие компоненты, как рабочая
область, главное меню, командная строка, кнопка, поле для ввода, поле для отображения текста, строка
состояния.
Также в среде существуют невидимые для пользователя компоненты. К числу таких компонентов, например,
относится список графических объектов. Данный компонент виден на главной форме проекта в режиме
проектирования, но в режиме выполнения он, естественно, скрыт от глаз пользователя.
При создании нового проекта в рассматриваемой среде, создается файл проекта формата xml, который содержит
описание разрабатываемого приложения. В файле проекта хранятся основные свойства главной формы (например,
положение, цвет фона, тип рамки) и компонентов, добавленных проектировщиком на форму. Кроме того,
создается файл с кодом программы на языке С++, который отображается в редакторе исходного текста и может
быть при необходимости изменён пользователем. Редактор исходного текста и сгенерированный код для
обработчиков кнопок главного меню показаны на рисунке 2:
Рис.2 Редактор исходного текста
Палитра компонентов показана на рисунке 3. Пользователь может перетащить компонент из палитры на
главную форму. При этом на форме создается заданный компонент с
установленными по умолчанию значениями основных свойств. Программно это реализуется следующим образом:
класс с описанием диалогового окна, соответствующего главной форме проекта, содержит в качестве свойств
массивы основных компонент. При создании проекта вышеупомянутые массивы пусты и заполняются по мере
добавления пользователем компонент.
Рис.3 Палитра компонентов
Корректировать значения этих свойств пользователь может при помощи инспектора объектов. На рисунке 4
показаны инспектор объектов и свойства главной формы проектируемой системы, редактируемые с его помощью.
Рис.4 Использование инспектора объектов для редактирования свойств главной формы проекта
В дальнейшем можно установить обработчики для созданных компонент, используя стандартные функции ядра или
пользовательские функции.
Особенностью данной среды разработки является упрощенное связывание обработчиков элементов управления со
стандартными функциями ядра. Например, для таких элементов управления как кнопка и пункт меню можно
связать обработчик на нажатие со стандартной функцией создания одного из графических объектов. Кроме
того, в функции данного компонента входит сохранение и загрузка объектов из файлов формата dxf [7].
Данный формат поддерживается всеми достаточно мощными системами геометрического моделирования и таким
образом программист проектировщик может обеспечить переносимость проектов, создаваемых в разрабатываемой
им системе, в более крупные системы.
Для выполнения видовых операций, на главную форму проекта необходимо добавить компонент «система
координат». Данный компонент связывается с элементом управления «рабочая область». Любая рабочая область
может содержать только одну систему координат. При привязке стандартной функции ядра, отвечающей за
видовые операции (панорамирование, зуммирование) необходимо указать систему координат, для которой будет
выполняться данная операция [8]. При использовании стандартной функции ядра Make3D, которая по двумерным
проекциям объекта строит его трехмерное представление, необходимо указать и двумерную систему координат,
в которой находятся проекции объекта, и трехмерную систему координат, в которой будет построено трехмерное
представление этого объекта [9].
Применение разработанных средств
Для более наглядной демонстрации возможностей данной визуальной среды рассмотрим графическую систему для
построения трехмерного представления по комплексному чертежу.
На рисунке 5 показано решение задачи о нахождении перпендикуляра к плоскости, заданной тремя
точками, с помощью данной системы.
Рис.5 Нахождения горизонтали и фронтали плоскости, заданной треугольным отсеком
(анимированный рисунок состоит из 20 кадров задержка 100 мс. сделан в MP Gif Animator)
В данной системе использованы такие компоненты как главное меню, строка состояния, рабочая область,
список объектов и система координат.
Для работы с графическими объектами создается две рабочие области. Слева располагается область для
работы с двумерными объектами. С ней связывается двумерная система координат, для которой указывается
её центр и направление осей. Справа создается область для работы с трехмерными объектами, указывается
для нее трехмерная система координат. После этого на форму помещается скрытый компонент
«список объектов».
Для рисования вертикальных и горизонтальных линий используется режим Orto, который включается при нажатии
кнопки главного меню Settings->Orto. В данном обработчике изменяется системный флаг bIsOrto. В каждый
проект автоматически добавляется переменная SysSet структуры SystemFlags. Системные флаги предназначены
для фиксирования состояния системы в некоторый конкретный момент времени. Таким же образом происходит
перевод системы в режимы Snap и Grid. Стандартная функция рисования объектов определяет состояние системы
по системным флагам и в дальнейшем выполняет необходимые для данного режима операции.
Для создания трехмерного объекта используется функция Make3D, упомянутая ранее. Она использует первые
два выделенных объекта из списка объектов в качестве горизонтальной и фронтальной проекции создаваемого
трехмерного объекта. Для упрощения задания объектов используется режим привязок, с помощью которого можно
указывать концы отрезков и точки их пересечения при задании нового отрезка. Для этого используется
стандартная функция ядра, которая находит ближайшую привязку в некоторой области заданного радиуса.
В пункте меню Modify можно выбрать функцию для модификации множества выбранных объектов. Все эти функции
работают с компонентом «список объектов». Для списка объектов существуют стандартные функции поворота и
переноса объектов, реализованные на основе аффинных преобразований [10]. Для объектов типа «отрезок»
также предусмотрены функции выравнивания по образцу и удлинения.
Выводы
Использование сочетания визуальных компонентов и функций ядра позволит разработчику графической системы
избавиться от долгой рутинной работы при создании интерфейса графической системы и сократит временные
затраты на построение системы в целом. Разрабатываемая система имеет удобный интуитивно понятный интерфейс
и легко осваивается пользователем.
Система позволяет пользователю использовать стандартные функции для создания геометрических объектов,
выполнения модификации таких объектов, а также выполнения видовых операций над всеми объектами в целом.
Область применения разрабатываемой визуальной среды достаточно велика. Данная система может использоваться
как в учебных целях, для построения простых систем геометрического моделирования предназначенных для
демонстрации задач начертательной геометрии, так и на производстве, для создания узкоспециализированных
графических систем с минимальными временными затратами.
В ближайшем будущем планируется усовершенствование данной среды, наращивание её функциональных
возможностей, модификация интерфейса для максимального удобства пользователя среды. Построение
трехмерного представления на данном этапе возможно лишь в случае, когда проекциями являются отрезки.
В ближайшем будущем также планируется устранить этот недостаток, позволить пользователю создавать
поверхности большинством возможных средств, реализовать функции для работы с твердотельными объектами.
Литература
1. Обзор ядер геометрического моделирования // Сайт поддержки пользователей САПР под редакцией
Виктора Ткаченко [электронный ресурс]:
http://www.cad.dp.ua/obzors/karnel.php
2. Карабчевський В.В. Засоби розробки навчальних систем для курсу “Інженерна графіка”
// Прикладна геометрія та інженерна графіка. Міжвідомчий науково-технічний збірник. Випуск 71.
Київ: КНУБА. – 2002. – С. 195-200.
3. Карабчевский В.В., Хлепитько И.В. Графический редактор для работы с параметризованными двумерными
объектами // Матеріали III наукової конференції молодих учених та студентів «Інформатика та комп’ютерні
технології». Донецьк: ДонНТУ. – 2007. – С. 278-280.
4. Карабчевский В.В., Хлепитько И.В. Разработка проблемно-ориентированных систем геометрического
моделирования Наукові праці Донецького національного технічного університету. Серiя "Проблеми
моделювання та автоматизації проектування динамічних систем" (МАП-2007). Випуск: 6 (127) - Донецьк:
ДонНТУ. - 2007. – С. 234-239.
5. Карабчевський В.В., Хлепітько І.В. Засоби розробки систем геометричного моделювання. Наукові нотатки.
Міжвузівський збірник (за напрямом «Інженерна механіка»). Випуск 22. Частина 1. «Сучасні проблеми
геометричного моделювання (квітень, 2008). – Луцьк, 2008. – С. 133-137.
На момент написания данного автореферата магистерская работа не является оконченной. Окончательный
вариант работы может быть получен у автора или его руководителя после 1 января 2010 г.