Mechanics Editor.NET 2.0 Курсовая работа магистра: Система моделирования пространственных механизмовСистема моделирования пространственных механизмов Работу.

Презентация:



Advertisements
Похожие презентации
Mechanics Editor.NET Презентация проекта: Система моделирования пространственных механизмовСистема моделирования пространственных механизмов Автор проекта:
Advertisements

Языки и методы программирования Преподаватель – доцент каф. ИТиМПИ Кузнецова Е.М. Лекция 7.
Типы документов. Деталь – это документ КОМПАС-3D, содержащий трехмерное изображение (3D-модель) определенного объекта или изделия, сформированного путем.
Базы данных: назначение и основные возможности Разработка учителя информатики и ИКТ МОУ СОШ с. Тербуны Болговой Н.А.
Даталогическое проектирование. 1. Представление концептуальной модели средствами модели данных СУБД Общие представления о моделях данных СУБД С одной.
Модуль 1. Математические основы баз данных и знаний.
ParaCon Система параллельного программирования на основе типовых алгоритмических структур Истомин Тимофей Научный руководитель: д.ф-м.н. Берзигияров П.К.
Основы объектно-ориентированного программирования (ООП)
Выполнила студентка 5 курса группы МДМ-111 Казанчева А.
ПРОЕКТНЫЙ ПРАКТИКУМ Романов Сергей Михайлович pi.simply.name
ООП Лекция 1. Основные понятия. Литература Шилдт Г. С#: полное руководтво.-М.:ООО Вильямс, с. Культин Н.Б. Microsoft Visual C# в задачах и.
1 Тема 1.7. Алгоритмизация и программирование Информатика.
Декомпозиция сложных дискретных систем, формализованных в виде вероятностных МП-автоматов. квалификационная работа Выполнил: Шляпенко Д.А., гр. ИУ7-83.
База данных (БД) – Совокупность определённым образом организованной информации на определённую тему (в рамках определённой предметной деятельности); Организованная.
Основы информатики Классы Заикин Олег Сергеевич zaikin.all24.org
Технология хранения, поиска и сортировки информации в базах данных
Система программ «1 С: ПРЕДПРИЯТИЕ» Структура Элементы Средства.
Распределение памяти. Динамическое выделение памяти.
MS Access Основные элементы
Алгоритмизация и блок-схемы Практическое занятие 1.
Транксрипт:

Mechanics Editor.NET 2.0 Курсовая работа магистра: Система моделирования пространственных механизмовСистема моделирования пространственных механизмов Работу выполнил: Магистр 1-го года обучения, 859 группы Городецкий Евгений Станиславович Научный руководитель: Профессор каф. МО ЭВМ, д.т.н. Турлапов Вадим Евгеньевич Нижний Новгород Май 2006г.

Задачи и требования к работе Задачи решённые на предыдущем этапе Изучены основы теории пространственных механизмов; Изучена библиотека программирования 3D графики Managed Direct 3D; Спроектированы структуры данных, отвечающих за: представление модели пространственного механизма; выполнение операций редактирования механизма; визуализация геометрических объектов, структурной схемы; Разработана графическая программа, решающая задачу синтеза механизма – создан набор инструментальных средств, реализованных в интерфейсе, для создания и редактирования механизмов: Визуализация 3-х мерного образа структурной схемы механизма; Представление структуры механизма в виде иерархического дерева и её редактирование; Последовательная сборка механизма из 3-х типов звеньев и элементов 4-х кинематических пар; Параметрическое редактирование объектов структуры механизма;

Задачи и требования к работе Постановки новых задач Рефакторинг программного кода при переходе с платформы.NET 1.1 на новую версию платформы.NET Framework 2.0; Реализация методов сохранения и загрузки механизмов; Исследование методов решения задачи о положении механизма; Решение задач о положениях некоторых основных структурных групп различными подходами; Разработка структур данных выполнения расчётов положений механизма и методов проверки структуры механизма перед выполнением расчётов; Реализация в программе автоматического решения задачи о положениях механизма;

Рефакторинг программы Переход к платформе.NET Framework 2.0 Синтаксис языка Managed C++.NET кардинально изменился: Использование неуправляемых и управляемых типов в общем программном коде – разделение указателей и ссылок на неуправляемые (*, &, __gc new) и управляемые (^, %, gcnew); Упрощение синтаксиса управляемых расширений: __gc [clas | struct] [ref | value] [class | struct] – ссылочные и размерные типы; __property int Amount_get(); property int Amount{ int get() } – свойства; array ^ A = gcnew array (5);– массивы; int A __gc[] = __gc new int[5] array ^ A = gcnew array (5); – массивы; ;– Generic типы, позволяющие избегать множественных операций упаковки и распаковки; ArrayList * L = __gc new ArrayList(5) ArrayList ^ L = gcew ArrayList (5); – Generic типы, позволяющие избегать множественных операций упаковки и распаковки; Расширение инструментария Visual Studio 2005: Инструменты выполнения рефакторинга; Улучшенные инструменты для отладки; Новый IntelliSense, Code Snippets, Object Test Bench, … Расширение библиотеки классов и компонент FCL.

Рефакторинг программы Реструктуризация программы Программа под.NET 1.1 была написана полностью на Managed C++.NET и представляла 1 исполняемый файл; Программа под.NET 2.0 разбита на модули: Название ФайлаИзменениеЯзыкОписание MechEditor.exeПереписанC#Формы и логика интерфейса Viewport.dllНовыйC#Визуальная компонента вида TabSplitPan.dllНовыйC# Визуальная компонента настраиваемой самомасштабирующейся сетки контейнеров MDXUtility.dllДополненC# Вспомогательные классы для анимации и хранящий 3D модели в своих ресурсах MechModel.dllОбновлёнC++/CLIКлассы моделирования механизмов

Рефакторинг программы Произведённые изменения Код на C++.NET, вынесен в отдельную DLL и может использоваться как отдельная библиотека для программ моделирования механизмов. Программа мигрирована на новый синтаксис C++/CLI; Программа, реализующая интерфейс написана заново на С# с использованием новых визуальных компонент и разделена на главный модуль с формами и 2 модуля компонент; Все файлы 3D моделей и текстур (загружаемые раньше из внешних файлов) помещены в ресурс модуля MDXUtility.dll; В процессе рефакторинга улучшена структура программы и графический интерфейс пользователя, но функциональность не изменена.

Рефакторинг программы Новый графический интерфейс До рефакторинга: После рефакторинга:

Сохранение и загрузка механизмов Организация данных для хранения механ-ов На рисунке представлена диаграмма организации данных: Таблицы (поля и их типы) – таблица или пара таблиц соответствует классу; Связи между таблицами по ключам – ссылки между классами; Такой способ организации данных позволяет осуществлять хранение данных, описывающих механизмы: в XML-файле, табличной структуры – текущая реализация; в Базе Данных (SQL Server 2005);

Сохранение и загрузка механизмов Методы сохранения и загрузки Создан центральный класс процесса сохранения/загрузки – LoadManager, который: Представляет источник чтения/записи данных (XML или Data Base); Устанавливает соответствие между идентификаторами записей в базе и ссылками на загруженные из них объекты с помощью словаря; Реализует вспомогательные методы работы с виртуальной базой; Каждый из классов, поддерживающих сохранение и загрузку реализует следующие public методы: Конструктор, выполняющий загрузку из источника LoadManger по ID в соответствующей таблице; SaveToDataSet – метод производящий сохранение объекта в DataSet и возвращающий идентификатор записи в соответствующей таблице; Сохранение механизма, вместе с настройками видов и стилей отображения производится по иерархии инкапсуляции классов, начиная с класса PropObjManager.

Определения из теории механизмов Общее понятие механизма Механизм – это совокупность взаимосвязанных твёрдых тел, предназначенная для преобразования входов на одном или нескольких твёрдых телах в выходы на других твёрдых телах.

Определения из теории механизмов Понятия звеньев и кинематических пар Звенья – это твёрдые тела, из которых образуется механизм. Звеном может быть либо одна деталь, либо несколько деталей, соединённых в одну неизменяемую систему. Геометрический элемент – это место соединения одного звена с другим звеном (совокупность поверхностей, линий и точек звена, входящих в контакт с другим звеном). Кинематическая пара – это подвижное соединение двух соприкасающихся звеньев.

Задача о положениях механизма Группы нулевой подвижности и закон Ассура Основа метода решения задачи о положениях: Группа – это совокупность нескольких кинематических пар. Закон образования механизмов по Ассуру: Всякий механизм представляет собою совокупность одного или нескольких двухзвенных (первичных) механизмов и одной или нескольких групп нулевой подвижности. Группой нулевой подвижности называется кинематическая цепь, образованная только подвижными звеньями механизма, подвижность которой равна нулю.

Задача о положениях механизма Иллюстрация закона Ассура

Задача о положениях механизма Последовательность вычислений Пример механизма раскрытия закрылок самолёта; Вычисление положений групп механизма выполняется по уровням – сверху вниз;

Задача о положениях механизма Формула Чейза – формула 3-х ортов Задача: найти вектор u по заданным векторам e 1, e 2 и скалярным произведениям c 1, с 2 : Формула Чейза – решение этой задачи:

Задача о положениях механизма Задача о положении группы В-Сп-С Дано: положения точек A и В, направление оси u 1 вращательной пары, постоянный угол наклона звена L 1 относительно u 1 и длины звеньев L 1, L 2 ; Найти: положение точки С. Решение: - Теорема косинусов;

Задача о положениях механизма Аналитический подход к решению задачи о положениях для групп: В-Сп-С В-В-В В-П-В П-В-В

Задача о положениях механизма Численный подход к решению задачи о положениях для группы В-В-В-С

Задача о положениях механизма Проверка структуры механизма Условия корректности структуры механизма: Механизм связный (все пары соединены звеньями): Определён по крайней мере один первичный механизм; Каждая структурная группа имеет корректную структуру: Группа не пустая (содержит хотя бы одну пару); Группа связная (все пары группы соединены звеньями); Число степеней подвижности равно нулю. Вычисление числа степеней подвижности группы: Распознавание типа группы: Группа плоская, если она содержит только вращательные или поступательные пары и оси все вращательных пар параллельны и ортогональны всем осям поступательных пар; Иначе, группа пространственная; Если группа плоская: W G = 3·N - 2·P Если группа пространственная: W G = 6·N – (5·P 1 + 4·P 2 + 3·P 3 ) N – число подвижных звеньев группы, P – число пар в группе, P i – число i-подвижных пар.

Задача о положениях механизма Структуры данных для выполнения расчётов Слева – классы, моделирующие структуру механизма; Справа – классы, выполняющие расчёт задачи о положениях механизма; Классы, выполняющие расчётные функции связаны с классами структуры механизма отношениями включения

Заключение Веб-сайт проекта Mechanics Studio.NET – сайт проекта:

Заключение Результаты выполненной работы и план дальнейшей работы над программой Изучены и применены несколько подходов к решению задачи о положениях механизма. Получены решения для некоторых структурных групп. Разработаны алгоритмы и структуры данных реализации расчётов в программе; Программа усовершенствована и дополнена новыми возможностями сохранения/загрузки, начата реализация структур данных для решения задачи о положениях; В дальнейшем планируется решение следующих задач: Завершение функциональности расчёта задачи о положениях; Реализация алгоритма автоматического распознавания структуры механизма и формирование групп Ассура; Расширение поддерживаемого набора структурных групп;

Заключение Вопросы? – Городецкий Евгений – сайт проекта