Similar presentations:
Разработка приложения «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