Тип работы:
Предмет:
Язык работы:


Трехмерное моделирование для программного комплекса ELCUT

Работа №132804

Тип работы

Бакалаврская работа

Предмет

программирование

Объем работы38
Год сдачи2017
Стоимость4700 руб.
ПУБЛИКУЕТСЯ ВПЕРВЫЕ
Просмотрено
28
Не подходит работа?

Узнай цену на написание


1. Цель работы и актуальность темы 5
1.1. Цель и задачи бакалаврской работы 5
1.2. Причины возникновения проблемы и ее актуальность 5
1.3. Исследование текущего состояния изучаемой проблемы 7
1.3.1. Параметрическое моделирование 7
1.3.2. Обзор существующих систем графического проек­тирования 9
1.3.3. Решатель геометрических ограничений 14
1.4. Выбор инструментов разработки 16
1.4.1. Direct3D 16
1.4.2. OpenGL 17
1.4.3. Qt и Visual C++ 17
2. Проектирование системы 19
2.1. Геометрические объекты 19
2.2. Функциональные возможности редактора 20
2.3. Связи между объектами 20
2.4. Параметрические возможности системы 21
3. Реализация прототипа графического редактора 23
3.1. Главное окно. Начало работы 24
3.2. Добавление объекта 24
3.3. Поворот камеры и изменение масштаба 24
3.4. Изменение размера и местоположения объекта 25
3.5. Копирование объекта 26
3.6. Поворот простого объекта 26
3.7. Запрет и разрешение изменения размера объекта 28
3.8. Задание размеров простого объекта 28
3.9. Сложные объекты 28
3.9.1. Соединение объектов 28
3.9.2. Отсоединение частей сложного объекта 30
3.10. Группы объектов 30
3.10.1. Объединение объектов в группу 31
3.10.2. Работа с группой объектов 31
3.10.3. Задание размеров группы 32
3.10.4. Удаление объекта из группы 32
3.11. Объекты на линии 33
3.11.1. Закрепление объектов на линии 33
3.11.2. Отмена закрепление объекта на линии 34
3.12. Удаление объекта 34
3.13. Сохранение объекта в отдельный файл 34
3.14. Загрузка объекта из файла 34
3.15. Выход из программы 35
Заключение 36
Список литературы 37

1.1. Цель и задачи бакалаврской работы
Целью данной бакалаврской работы является разработка прототипа трехмерного параметрического редактора для системы инженерного моделирования ELCUT [3]. Для достижения этой цели были поставле­ны следующие задачи:
• изучение существующих параметрических редакторов и отбор воз­можностей, которые будут реализованы в прототипе редактора;
• выбор средств для реализации прототипа;
• проектирование прототипа системы;
• реализация прототипа;
• тестирование системы и анализ удобства ее использования.
1.2. Причины возникновения проблемы и ее акту­альность
Система инженерного моделирования ELCUT - это программный продукт, созданный для инженерного моделирования механических, тепловых и других физических задач. Этот продукт широко использу­ется в науке, промышленности и образовании для изучения различных физических процессов и разработки приборов и устройств.
Пример работы в системе ELCUT представлен на рис. 1.
ELCUT является мощным инструментом двухмерного моделирова­ния, тогда как возможности трехмерного моделирования ограничены: существует возможность загрузки моделей из других систем моделиро­вания, но редактора на данный момент нет.
В связи с этим была поставлена задача разработки прототипа трех­мерного редактора с простыми возможностями параметризации.
Рис. 1: Пример работы в системе ELCUT
Целью разработки прототипа является:
• исследование удобства различных функциональных возможностей редактора;
• отработка возможностей параметрического проектирования моде­лей.
Рассмотрим кратко требования к параметризации в системе ELCUT и актуальность задачи поддержки параметризации. При параметриче­ском проектировании [12] модель строится с использованием парамет­ров частей модели и соотношений между этими параметрами. Пара­метризация позволяет быстро изменять модель, получая таким образом различные версии построения и позволяя избежать возможных ошибок.
В прототипе геометрического редактора системы ELCUT должны присутствовать наиболее используемые и простые функциональные воз­можности параметрического проектирования, так как данная система инженерного проектирования ориентирована на простоту использова­ния. Более подробно о параметрическом проектировании будет сказано в п. 1.3.1.
1.3. Исследование текущего состояния изучаемой про­блемы
1.3.1. Параметрическое моделирование
Параметрическое моделирование [12] - это одна из разновидностей двухмерного или трехмерного инженерного моделирования. Рассмот­рим кратко его основные принципы и понятия.
Его идея состоит в том, что сложный геометрический объект стро­ится с помощью простых элементов и параметров, которые задают их форму и соотношения между ними. Параметрами могут быть, напри­мер:
• координаты точек;
• соотношения между какими-либо величинами;
• радиусы окружностей;
• величины углов.
Таким образом, создается математическая модель объекта, которую можно модифицировать путем изменения параметров, связывающих части объекта. Под модификацией понимается, например, взаимное пе­ремещение деталей объекта, изменение размеров и прочее.
Рассмотрим преимущества параметрического моделирования. Ос­новным преимуществом является простота модификации объектов. Дру­гое важное преимущество параметрического моделирования состоит в том, что при построении объекта не нужно точно определять координа­ты всех его составных частей, достаточно лишь указать геометрические отношения между ними. В этом случае результирующие координаты определит решатель геометрических ограничений, который будет рас­смотрен в п. 1.3.3.
Существует несколько типов параметризации [12]. Рассмотрим их.
1) Табличная параметризация
Этот тип параметризации подразумевает наличие таблицы парамет­ров типовых деталей. Для создания нового объекта нужно выбрать его размеры в таблице. При данном типе параметризации нельзя задавать произвольные параметры объекта, что весьма ограничивает возможно­сти системы.
Тем не менее, табличная параметризация широко применяется во всех параметрических системах автоматизированного проектирования, так как благодаря ей существенно упрощается создание библиотек стан­дартных и типовых деталей, а также их применение при проектирова­нии.
2) Иерархическая параметризация
Другой термин, который применяют, говоря о данном типе парамет­ризации - параметризация на основе истории построений. Суть иерар­хической параметризации заключается в наличии “дерева построений”, в котором в ходе работы отображается вся последовательность постро­ения объекта. Также в нем перечислены все существующие в объекте вспомогательные эскизы и все операции в порядке их выполнения. По­мимо этого, система запоминает иерархию между элементами объекта.
Иерархическая параметризация применяется во всех системах авто­матизированного проектирования, использующих твердотельное пара­метрическое моделирование. Обычно этот тип параметризации бывает реализован совместно с вариационной, геометрической или обоими эти­ми типами параметризации, о которых будет сказано далее.
3) Вариационная параметризация
Данный тип еще называют размерной параметризацией. При рабо­те с системой, в которой присутствует данный тип параметризации, на первом этапе создается эскиз объекта, который необходимо построить. Далее уточняются отдельные размеры эскиза, которые можно обозна­чить в виде переменных и с помощью формул задать зависимости от них других размеров. Затем с помощью какой-либо операции, напри­мер, выдавливания либо перемещения плоской фигуры с сохранением ее следа, производится построение трехмерного объекта. После этого, если необходимо, объект добавляется в сборку путем указания взаим­ного положения ее компонентов (например, какие-то из их ребер могут быть параллельны).
Размерная параметризация дает возможность легко изменять фор­му объекта путем изменения формы эскиза, что очень удобно в работе.
4) Геометрическая параметризация
При данном типе моделирования геометрия каждого параметриче­ского объекта пересчитывается при изменении положения его родитель­ских объектов.
Параметрическая модель в данном случае состоит из элементов по­строения и элементов изображения. Элементы построения, к которым относятся линии изображения, а также элементы оформления, такие как размеры, надписи и прочее, задают параметрические связи в объ­екте. Они могут зависеть от других элементов построения и содержать параметры (например, угол наклона прямой). При изменении одного из элементов все остальные перестраиваются согласно заданным меж­ду ними зависимостям.
На первом этапе создания модели конструктор задает геометрию профиля, проставляет размеры и зависимости с помощью линий по­строения. После этого линии построения обводятся линиями изображе­ния, образующими профиль, с которым впоследствии можно работать в трехмерном пространстве. Далее с объектом работают в целом ана­логично работе с ним при вариационном типе параметризации.
Преимущество геометрической параметризации состоит в возмож­ности более гибкого редактирования модели. В случае необходимости изменить модель достаточно провести новую линию построения и пе­ренести на нее линию изображения, не потеряв таким образом связей между элементами модели, что могло бы произойти в случае удаления исходной линии построения.
1.3.2. Обзор существующих систем графического проектиро­вания
Рассмотрим наиболее распространенные системы графического про­ектирования. Первые известные графические редакторы с возможно­стью параметрического моделирования появились в конце 80-х годов: фирма Parametric Technology Corporation выпустила программный ком­плекс Pro/Engineer [6], специализирующийся на твердотельном трех­мерном моделировании, а Топ Системы создали свой редактор T-FLEX CAD [8], о котором еще будет сказано ниже.
На сегодняшний день существует множество программных продук­тов, позволяющих строить трехмерные модели с использованием пара­метрического моделирования. Рассмотрим некоторые из них.
1) Компас-3D
Дадим краткий обзор возможностей системы.
Компас-3D [11] - это система трехмерного проектирования, исполь­зуемая в промышленности. Данный программный комплекс позволяет строить трехмерные модели деталей и сборочных единиц как стандарт­ных, так и уникальных форм. Полученные модели можно импорти­ровать в различные расчетные пакеты или пакеты управляющих про­грамм. Кроме того, в системе есть возможность создания документации на разработанную модель.
Рассмотрим, как в системе можно создавать объемные объекты.
Объемные детали в программе образуются путем перемещения плос­кой фигуры в пространстве так, что след образует объемный объект.
Сложные трехмерные модели создаются путем соединения отдель­ных деталей и подмоделей. Каждая новая деталь моделируется на ос­нове существующих с использованием параметрических взаимосвязей. Детали и подмодели могут как создаваться непосредственно в редак­торе, так и импортироваться из файла. Присутствует библиотека стан­дартных объектов, наиболее часто используемых при построении моде­лей.
Остановимся подробнее на возможностях параметризации.
Взаимное положение деталей в модели задается путем указания свя­зи между ними. В системе присутствуют различные возможности, на­пример:
• параллельное или перпендикулярное расположение ребер и гра­ней;
• совпадение граней;
• расположение объектов под углом друг к другу;
• расположение объектов на заданном расстоянии;
• расположение объектов так, чтобы объекты касались поверхно­стями.
Пример работы в системе Компас-3D представлен на рис. 2.
Рис. 2: Пример работы в системе Компас-3D
2) T-FLEX
Система T-FLEX [8] разработана в России для параметрического проектирования и различных расчетов на основе построенных моделей, а также создания документации для деталей.
Опишем интересующую нас функциональность данной системы.
Трехмерные детали могут строиться как на основе чертежа на плос­кости, так и в редакторе трехмерных моделей. При проектировании си­стема хранит иерархическую структуру модели, а также всю историю ее создания, что позволяет упростить редактирование.
С помощью трехмерных элементов построения возможно создание трехмерных контуров, определение направлений, задание ориентации и прочих особенностей модели. Проектирование осуществляется с помо­щью рабочих плоскостей и рабочих поверхностей, которые служат для построения вспомогательных объектов - профилей, путей, узлов. Узлы служат точками привязки и помогают задавать векторы и оси. Профи­ли и пути используются для проектирования сложных трехмерных объ­ектов и работы с ними, а также для создания траекторий. С помощью сечений есть возможность получить проекцию детали на плоскость.
В системе T-FLEX телами называются постоянные элементы струк­туры трехмерной модели, с которыми пользователь имеет возможность работать на протяжении всего процесса проектирования. Тело присут­ствует в структуре модели, пока существует его трехмерный объект - фигура или поверхность, и хранит в себе такие параметры, как имя, цвет, материал, способ представления, а также полную историю созда­ния трехмерного объекта.
Для построения трехмерных моделей в системе присутствует мно­жество операций, таких как вращение, “выдавливание” с различными опциями, построение поверхности по сечениям.
Рассмотрим возможности параметризации.
При изменении местоположения или размеров базового объекта из­менения распространяются на все остальные части модели. Есть воз­можность задать связь между любыми объектами в системе с помощью параметров. Параметры моделей можно задавать численными, тексто­выми значениями либо переменными, которые могут быть связаны ма­тематическими или логическими выражениями. Основные возможно­сти изменения чертежа:
• непосредственное изменение его в редакторе;
• задание значений переменных в редакторе переменных;
• считывание значений переменных из внешних источников данных.
На рис. 3 представлен пример разработки детали в T-FLEX.
Рис. 3: Пример работы в системе T-FLEX
Кроме многочисленных возможностей построения моделей, система T-FLEX предлагает возможность целого ряда различных математиче­ских вычислений по построенным моделям, что используется на произ­водстве при моделировании всевозможных прототипов деталей.
3) SolidWorks
Система SolidWorks [14] разработана компанией SolidWorks (США) и представляет собой приложение для автоматизированного конструи­рования, использующее при работе принципы параметрического проек­тирования. С помощью данной программы можно строить трехмерные модели на основе плоскостных эскизов, а также создавать поверхност­ные параметрические модели.
Рассмотрим кратко возможности данного программного комплекса.
Создание трехмерной модели начинается с создания эскиза и нане­сения на него размеров. Между элементами эскиза автоматически, ли­бо вручную устанавливаются геометрические взаимосвязи (например, параллельность или касание). После установки достаточного количе­ства непротиворечивых взаимосвязей происходит построение трехмер­ной модели.
Для задания математических отношений между размерами эскиза или элемента детали можно использовать уравнения, что позволяет со­здавать параметрически заданные детали с возможностью их быстрого изменения и ускоряет проектирование однотипных деталей.
Рис. 4: Пример работы в программе SolidWorks
Объект, состоящий из нескольких деталей, в приложении SolidWorks называется сборка. Внутри сборки детали связаны между собой с по­мощью параметрических соотношений. При проектировании сборки мо­жет как происходить создание отдельных деталей и соединение их за­висимостями после этого, так и создание деталей одновременно с созда­нием сборки. При изменении местоположения и размера сборки пара­метры всех входящих в нее деталей также меняются в соответствии с заданными соотношениями между ними.
Кроме прочего, в системе имеется возможность формирования тех­нической документации в виде чертежей деталей. Пример работы в про­грамме SolidWorks представлен на рис. 4.
1.3.3. Решатель геометрических ограничений
Геометрическое ядро, или решатель геометрических ограничений [15] - это набор библиотек с программным интерфейсом, часто исполь­зуемый в системах автоматизированного проектирования. Данный ком­плекс решает задачу определения расположения объекта и связанных с ним деталей на основе наложенных геометрических ограничений. Гео­метрическое ядро значительно упрощает разработку систем автомати­ческого проектирования.
При разработке геометрических редакторов многие компании ис­пользовали готовые геометрические ядра, встраивая их в свои про­дукты и используя реализованную в них функциональность. В насто­ящий момент на рынке в этой области доминируют компании ACIS [1] и Parasolid [5]. Геометрическое ядро последней, в частности, встроено в программный комплекс T-FLEX российской компании Top Systems. Рассмотрим некоторые распространенные ядра. Мы рассматривали в основном отечественные решатели геометрических ограничений, посколь­ку использование зарубежных геометрических ядер требует значитель­ных материальных затрат.
1) Ядро G3D
Программный комплекс КОМПАС-3D был разработан на основе гео­метрического ядра C3D [10], разработанного компанией АСКОН. В на­стоящее время С3D является конкурентоспособным программным мо­дулем и может использоваться при разработке систем, в которых требу­ется обработка трехмерных и двумерных моделей. Главная особенность ядра АСКОН заключается в том, что в нем объединены все компонен­ты, необходимые для разработки прикладных решений: модуль геомет­рического моделирования, модуль параметризации и модуль трансля­ции данных. Таким образом, с помощью ядра C3D можно:
• создавать твердотельные и гибридные модели;
• решать параметрические двумерные и трехмерные ограничения;
• считывать и записывать геометрические модели в основные ис­пользуемые в этой сфере форматы данных.
2) Russian Geometric Kernel
В 2013 году российские компании Топ Системы и LEDAS под руко­водством МГТУ «СТАНКИН» выпустили собственный решатель гео­метрических ограничений [13]. Разработка данного продукта была про­изведена в рамках программы по развитию национальной технической базы и в связи с необходимостью создания конкурентоспособных на ми­ровом рынке изделий. Архитектура ядра позволяет использовать мно­гоядерные платформы, а также обеспечивает возможность прикладной разработки на основе данного ядра для различных платформ и систем.
При проектировании редактора ELCUT рассматривался вопрос об использовании геометрического ядра. Однако покупка лицензии для ис­пользования решателя геометрических ограничений требует ощутимых материальных затрат. Некоторые компании, занимающиеся разработ­кой систем с возможностью графического проектирования, используют собственные программные ядра, но в компании ELCUT оно на данный момент отсутствует.
1.4. Выбор инструментов разработки
Для реализации прототипа редактора необходимо было выбрать API для работы с трехмерной графикой. Наиболее часто используемые для данной цели продукты - Direct3D [2] и OpenGL [4]. Рассмотрим немного подробнее каждый из них.
1.4.1. Direct3D
Direct3D [2] - часть программного продукта DirectX, позволяющая работать с трехмерной графикой. Direct3D был создан компанией Microsoft специально для работы на операционной системе Windows, а позже стал использоваться на некоторых других продуктах фирмы. При разработ­ке данного API использовались различные технологии, специфичные именно для операционной системы Windows.
В приложении, созданном на Direct3D, используются указатели на интерфейсы объектов. Создание и работа с объектом осуществляется через вызов методов его интерфейса.
Direct3D в настоящее время активно совершенствуется и развивает­ся, периодически выпускаются новые версии данного продукта.
1.4.2. OpenGL
OpenGL [4] - открытый стандарт, разработку которого ведет неком­мерческая организация Khronos Group при участии IT-сообщества. Су­ществует множество библиотек, реализующих данный стандарт для различных платформ и являющихся основным API для работы с гра­фикой на Linux и Mac OS.
OpenGL в процессе работы представляет собой конечный автомат. Вызов функций изменяет внутреннее состояние программы. Чтобы по­лучить доступ к конкретному объекту, нужно вызовом функции вы­брать его в качестве текущего, а потом уже влиять на него также вы­зовом функций.
В OpenGL значительную часть функционала представляют расши­рения к основной спецификации. Как только расширение появляется, приложения имеют возможность использовать его, не дожидаясь вы­хода новой версии спецификации. После интегрирования расширений в стандарт новые функции продолжают быть доступными как расши­рения, что дает возможность не модифицировать программы, которые их используют.
Сейчас OpenGL также развивается и совершенствуется, что позво­ляет ему в полной мере отвечать требованиям, предъявляемым к API для работы с графикой.
Нужно добавить, что оба рассмотренных программных продукта специализируются на работе с графикой, а функции создания окон и работы с вводом с клавиатуры или мыши в них отсутствуют.
Исходя из рассмотренных выше преимуществ и недостатков продук­тов, для работы в данном проекте был выбран OpenGL, в частности, как открытый и кроссплатформенный стандарт.
1.4.3. Qt и Visual C++
Для работы с OpenGL в свободном доступе имеются библиотеки, которые позволяют вести разработку в различных средах. В частности, в начале работы над проектом разработка велась в интегрированной среде Visual C++ [9].
Однако в OpenGL, как было сказано выше, отсутствуют средства для работы с окнами, поэтому было принято решение вести разработку в среде Qt [7]. Данный инструментарий содержит дизайнер оконных интерфейсов. Кроме того, Qt имеет поддержку OpenGL, то есть уже содержит все необходимые библиотеки и облегчает их подключение к проекту, а также содержит удобный интерфейс для интеграции окон OpenGL и окон, созданных средствами Qt.

Возникли сложности?

Нужна помощь преподавателя?

Помощь в написании работ!


В рамках данной работы были получены следующие результаты:
1) Реализован прототип трехмерного редактора для программно­го комплекса ELCUT с возможностями добавлять, изменять, удалять трехмерные объекты.
2) Разработан формат хранения объектов, спроектированных в про­тотипе, реализовано сохранение проектов и отдельных объектов в файл и загрузка из файла.
3) Выбран и реализован набор функциональности, который позволя­ет отработать основные элементы пользовательского взаимодействия.
4) Проанализирован интерфейс программы. Сделан вывод, что ин­терфейс удобен, но в случае расширения функциональности требует дальнейшей доработки.
5) Проведен анализ реализованной функциональности, в результа­те которого были выделены возможности приложения, которые может быть полезно реализовать в следующей версии програмы. Среди них такие возможности, как:
• задание явных параметров объектов;
• поддержка более сложных связей и отношений между объектами (например, касание объектов).


[1] ACIS.— URL: https://www.acis.com/ (дата обращения: 20.04.2017).
[2] Direct3D Performance.— URL: http://www.nvidia.ru/object/ gdc_d3dperf.html (дата обращения: 19.04.2017).
[3] ELCUT.— URL: http://elcut.ru (дата обращения: 24.04.2017).
[4] The Industry’s Foundation for High Performance Graphics. — URL: https://www.opengl.org/ (дата обращения: 19.04.2017).
[5] Parasolid.— URL: http://www.plm.automation.siemens.com/en_ us/products/open/parasolid/ (дата обращения: 19.04.2017).
[6] Pro/ENGINEER.— URL: http://seniga.ru/index.php/sapr/ tsapr/61-proengineer.html (дата обращения: 20.04.2017).
[7] Qt. — URL: https://www.qt.io/ru/ (дата обращения: 24.04.2017).
[8] T-FLEX CAD: пользователи работают, конкуренты отдыхают.— URL: http://www.tflex.ru/pdf/public/1226.pdf (дата обраще­ния: 14.04.2017).
[9] Visual C++ в Visual Studio 2015. — URL: https://msdn.microsoft. com/ru-ru/library/60k1461a.aspx (дата обращения: 24.04.2017).
[10] АСКОН выводит на рынок PLM-компонентов собственное 3D- ядро.— URL: http://isicad.ru/ru/press_releases.php7press_ num=15210 (дата обращения: 19.04.2017).
[11] K0MHAC-3D.— URL: http://www.rdmk.ru/com_tech/dk/compas_ 3d.htm (дата обращения: 14.04.2017).
[12] Параметрическое моделирование.— URL: http://dic.academic. ru/dic.nsf/ruwiki/475559 (дата обращения: 20.04.2017).
[13] Создана первая версия российского ядра геометрического моде­лирования.— URL: http://isicad.ru/ru/press_releases.php? press_num=16011 (дата обращения: 19.04.2017).
[14] ТРЕХМЕРНОЕ ГЕОМЕТРИЧЕСКОЕ МОДЕЛИРОВАНИЕ. URL: http://www.niism-kb.narod.ru/Download/Posobie_3D.pdf (дата обращения: 14.04.2017).
[15] Ядро геометрического моделирования.— URL: http://plmpedia. ru/wiki/Ядро_геометрического_моделирования (дата обращения: 14.04.2017).


Работу высылаем на протяжении 30 минут после оплаты.



Подобные работы


©2025 Cервис помощи студентам в выполнении работ