2.45M
Категория: ПрограммированиеПрограммирование

Разработка приложения «Auto 3D-Modeling»

1.

Учреждение образования
«Минский государственный колледж цифровых технологий»
ДИПЛОМНЫЙ ПРОЕКТ
Разработка приложения «AUTO 3D-MODELING»
Разработал: Коровацкий А. С.
Учащийся группы 39ТП
Руководитель: Дорц Н.А.
2023

2.

Целью дипломного проекта является разработка программы для
автоматического построения 3D-моделей по их проекциям.
Задачи:
разработать простой и понятный интерфейс для рядового
пользователя;
реализовать стандартный инструментарий создания, удаления
простейших геометрических фигур, включая откат действий;
инструментарий для построения и редактирования ортогональных
проекций;
возможность загрузить заданные проекции модели из файлов;
создание 3D-модели по заданным проекциям;
удобный просмотр готовой 3D-модели;
файловое сохранение готовой 3D-модели и загрузка проекций.

3.

Выполняемые функции
сохранение, откат и возврат изменений;
определение позиции мыши;
перемещение по ортогональной проекции;
выборка действий, инструментов и рисуемых фигур;
создание геометрии;
создание 3D-модели;
экспорт модели в файл;
импорт ортогональных проекций из файла.

4.

Рассмотренные аналоги
В дипломном проекте рассмотрены следующие аналоги: «AutoCAD» и
«КОМПАС-3D».

5.

Рассмотренные аналоги
В дипломном проекте рассмотрены следующие аналоги: «AutoCAD» и
«КОМПАС-3D».

6.

Среда и технология разработки ПП
Для разработки приложения использована Microsoft Visual Studio 2019.
Язык программирования выбран C# с использованием технологии WPF и
.NET Framework 4.8.

7.

Интерфейс программы
Главное окно программы

8.

Интерфейс программы
Гибкий интерфейс

9.

Интерфейс программы
Фокусировка на определённый холст

10.

Интерфейс программы
Инструменты. Карандаш. Линия

11.

Интерфейс программы
Инструменты. Карандаш. Ломаная линия

12.

Интерфейс программы
Инструменты. Карандаш. Прямоугольник

13.

Интерфейс программы
Инструменты. Карандаш. Эллипс

14.

Интерфейс программы
Инструменты. Карандаш. Безье второго порядка

15.

Интерфейс программы
Инструменты. Карандаш. Безье третьего порядка

16.

Интерфейс программы
Построение 3Д модели

17.

Фрагмент кода
using System.Windows;
using System.Collections.Generic;
namespace Create_3D_Models.Model
{
static class Projection
{
private struct Vertex
{
public static List<Point> ProjectionXZ
= new List<Point>();
public static List<Point> ProjectionbXZ
= new List<Point>();
public static List<Point> ProjectionYZ
= new List<Point>();
public static List<Point> ProjectionbYZ
= new List<Point>();
public static List<Point> ProjectionXY
= new List<Point>();
public static List<Point> ProjectionbXY
= new List<Point>();
}
private struct Edge
{
public static List<(int, int[],
TypeEdge)> EdgeXZ = new List<(int, int[],
TypeEdge)>();
public static List<(int, int[],
TypeEdge)> EdgebXZ = new List<(int, int[],
TypeEdge)>();
public static List<(int, int[],
TypeEdge)> EdgeYZ = new List<(int, int[],
TypeEdge)>();
public static List<(int, int[],
TypeEdge)> EdgebYZ = new List<(int, int[],
TypeEdge)>();
public static List<(int, int[],
TypeEdge)> EdgeXY = new List<(int, int[],
TypeEdge)>();
public static List<(int, int[],
TypeEdge)> EdgebXY = new List<(int, int[],
TypeEdge)>();
}
public enum TypeEdge { ES, ELS, EAS, ESD,
ELSD, EASD, ELT, EAT, }
public static List<Point> GetCurrectPrVertex(sbyte
indexPr)
{
switch (indexPr)
{
case 1: return Vertex.ProjectionXY;
case -1: return
Vertex.ProjectionbXY;
case 2: return Vertex.ProjectionXZ;
case -2: return
Vertex.ProjectionbXZ;
case 3: return Vertex.ProjectionYZ;
case -3: return
Vertex.ProjectionbYZ;
default: return null;
}
}
public static List<(int, int[], TypeEdge)>
GetCurrectPrEdge(sbyte indexPr)
{
switch (indexPr)
{
case 1: return Edge.EdgeXY;
case -1: return Edge.EdgebXY;
case 2: return Edge.EdgeXZ;
case -2: return Edge.EdgebXZ;
case 3: return Edge.EdgeYZ;
case -3: return Edge.EdgebYZ;
default: return null;
}
}
public static int GetCountPrVertex(sbyte
indexPr)
{
switch (indexPr)
{
case 1: return
Vertex.ProjectionXY.Count;
case -1: return
Vertex.ProjectionbXY.Count;
case 2: return
Vertex.ProjectionXZ.Count;
case -2: return
Vertex.ProjectionbXZ.Count;
case 3: return
Vertex.ProjectionYZ.Count;
case -3: return
Vertex.ProjectionbYZ.Count;
default: return 0;
}
}
public static int GetCountPrEdge(sbyte
indexPr)
{
switch (indexPr)
{
case 1: return Edge.EdgeXY.Count;
case -1: return Edge.EdgebXY.Count;
case 2: return Edge.EdgeXZ.Count;
case -2: return Edge.EdgebXZ.Count;
case 3: return Edge.EdgeYZ.Count;
case -3: return Edge.EdgebYZ.Count;
default: return 0;
}
}
}
}

18.

Диаграмма вариантов использования

19.

Диаграмма деятельности

20.

Диаграмма классов

21.

Заключение
В дипломном проекте разработано приложение по автоматизированному
построению 3D-моделей по их проекциям. Программа помогает быстро
сформировать проекции будущей модели и в один клик построить её в
3D-пространстве.
Все поставленные задачи в данной программе были успешно
реализованы. Недостатков в работе данного приложения выявлено не
было. Программный продукт готов к практическому использованию.
Данное приложение может быть дополнено и модернизировано.
В дипломном проекте выполнено технико-экономическое обоснование −
разработка данного программного средства дает экономический эффект,
в виде чистой прибыли, которая будет предположительно составлять
1545,7 рублей.
Также рассмотрен вопрос по охране труда «Причины травматизма и
мероприятия по их предупреждению в ВЦ» и выполнена графическая
часть: диаграмма вариантов использования, диаграмма деятельности и
диаграмма классов.

22.

Учреждение образования
«Минский государственный колледж цифровых технологий»
ДИПЛОМНЫЙ ПРОЕКТ
Разработка приложения «AUTO 3D-MODELING»
Разработал: Коровацкий А. С.
Учащийся группы 39ТП
Руководитель: Дорц Н.А.
2023
English     Русский Правила