- •Глава 1. Аналитическая часть 5
- •Глава 2. Практическая часть 11
- •Введение
- •Глава 1. Аналитическая часть
- •1.1 Анализ предметной области
- •1.2 Система автоматизированного проектирования AutoCad
- •1.3 Технология AutoCad .Net
- •Глава 2. Практическая часть
- •2.1 Проектирование бд
- •2.2 Разработка плагина
- •Заключение
- •Список литературы
1.3 Технология AutoCad .Net
В состав ObjectARX SDK входит также управляемый API, который часто называют AutoCAD .NET API. Это API представляет собой мощную и современную среду программирования. Поддерживает многочисленные языки (Visual Basic .NET, С#, F# и т.д.). Хотя у каждого языка программирования есть свои сильные стороны, C# является лучшим выбором для новичка. Этот язык прост в изучении и использовании, так как является наиболее удобным для чтения человека. С# предоставляет полный доступ к базе Microsoft .NET Framework.
Существует два основных способа взаимодействия AutoCAD и проекта, написанных с помощью .NET API:
Программа реализуется в виде отдельного исполняемого файла с работой с файлами AutoCAD через COM-интерфейсы библиотеки Autocad.Interpop.Common. Данный прием позволяет получить обычный исполняемый exe-файл, который будет работать с dwg-файлами через COM. Данный способ имеет свое право на существование, но весьма ограничен функционально из-за малого числа доступных способов "воздействия" на чертеж и не рекомендуется в большинстве случаев.
В виде расширения (plugin) AutoCAD. Результатом работы будет dll-файл, который подгружается в AutoCAD командой "netload" и определяет новые команды (операции) или новое поведение стандартных операций. [7]
Для того, чтобы приступить к созданию плагина на .NET, понадобятся следующие компоненты:
AutoCAD. Или любой другой продукт на базе AutoCAD;
Среда разработки Microsoft Visual Studio;
ObjectARX SDK. Содержит в себе документацию для AutoCAD .NET API и некоторые важные файлы, на которые будет ссылаться наш проект Visual Studio. Он также включает в себя ряд примеров проектов .NET.
Существует четыре основных dll-файла AutoCAD .NET API, которые необходимы при создание плагина:
AcDbMgd.dll. Используется для работы с объектами файла чертежа;
AcMgd.dll. Используется для работы с самим приложением AutoCAD;
AcCui.dll. Используется для работы с файлами пользовательских настроек;
AcCoreMgd.dll Позаимствовал часть функционала из предыдущих dll-файлов.
Глава 2. Практическая часть
2.1 Проектирование бд
Проектировать базу данных будем в Microsoft SQL Server 2017 с использованием Microsoft SQL Server Management Studio 2017. SQL код представлен ниже:
-- Таблица цехов
CREATE TABLE Manufactory (
MName NVARCHAR(50) NOT NULL PRIMARY KEY,
MFuction NVARCHAR(MAX) NOT NULL );
-- Таблица сотрудников
CREATE TABLE Employess (
Id INT IDENTITY PRIMARY KEY,
FIO NVARCHAR(70) NOT NULL,
MWork NVARCHAR(50) NOT NULL,
Position NVARCHAR(50) NOT NULL,
FOREIGN KEY (MWork) REFERENCES Manufactory (MName) ON DELETE CASCADE );
-- Таблица пользователей системы
CREATE TABLE Users (
Id INT IDENTITY PRIMARY KEY,
Ulogin VARCHAR(20) NOT NULL,
Upassword VARCHAR(20) NOT NULL,
MUser NVARCHAR(50) NOT NULL,
FOREIGN KEY (MUser) REFERENCES Manufactory (MName) ON DELETE CASCADE );
-- Таблица материалов деталей
CREATE TABLE MaterialsForDetails (
MaName NVARCHAR(50) NOT NULL PRIMARY KEY );
-- Таблица размеров
CREATE TABLE Dimension (
NDimension NVARCHAR(5) NOT NULL PRIMARY KEY );
-- Таблица частей объектов
CREATE TABLE UnitObject (
UOName NVARCHAR(50) NOT NULL PRIMARY KEY );
-- Таблица объектов
CREATE TABLE Object (
OName NVARCHAR(50) NOT NULL PRIMARY KEY,
Classification NVARCHAR(50) NOT NULL,
Length INT NOT NULL,
Width INT NOT NULL,
SizeName NVARCHAR(5) NOT NULL,
ODrawing VARBINARY(MAX) NOT NULL,
FOREIGN KEY (SizeName) REFERENCES Dimension (NDimension) ON DELETE CASCADE );
-- Таблица литера
CREATE TABLE Liter (
LName NVARCHAR(2) NOT NULL PRIMARY KEY );
-- Таблица масштабов
CREATE TABLE Scale (
ScName NVARCHAR(10) NOT NULL PRIMARY KEY );
-- Таблица результатов расцеховки
CREATE TABLE SplittingDraw(
Id INT IDENTITY PRIMARY KEY,
SDUOName NVARCHAR(50) NOT NULL,
SDOName NVARCHAR(50) NOT NULL,
SDDrawing VARBINARY(MAX) NOT NULL,
SDMName NVARCHAR(50) NOT NULL,
FOREIGN KEY (SDUOName) REFERENCES UnitObject (UOName) ON DELETE CASCADE,
FOREIGN KEY (SDOName) REFERENCES Object (OName) ON DELETE CASCADE,
FOREIGN KEY (SDMName) REFERENCES Manufactory (MName) ON DELETE CASCADE );
-- Таблица деталей
CREATE TABLE Details (
Id INT IDENTITY PRIMARY KEY,
DeName NVARCHAR(50) NOT NULL,
DeNotation NVARCHAR(50) NOT NULL,
DeMaterial NVARCHAR(50) NOT NULL,
DeLiter NVARCHAR(2) NOT NULL,
Weight INT NOT NULL,
DeScale NVARCHAR(10) NOT NULL,
NDraw INT NOT NULL,
QDraw INT NOT NULL,
DeFactory NVARCHAR(50) NOT NULL,
DeDrawing VARBINARY(MAX) NOT NULL,
FOREIGN KEY (DeMaterial) REFERENCES MaterialsForDetails (MaName) ON DELETE CASCADE,
FOREIGN KEY (DeLiter) REFERENCES Liter (LName) ON DELETE CASCADE,
FOREIGN KEY (DeScale) REFERENCES Scale (ScName) ON DELETE CASCADE,
FOREIGN KEY (DeFactory) REFERENCES Manufactory (MName) ON DELETE CASCADE );
-- Таблица доп. информации к чертежу
CREATE TABLE DetailsAddInfo (
Id INT IDENTITY PRIMARY KEY,
IdDetal INT NOT NULL,
DAIName NVARCHAR(MAX) NOT NULL,
FOREIGN KEY (IdDetal) REFERENCES Details (Id) ON DELETE CASCADE )
Рис 1. Структура БД в MS SQL
Таблица 1. Структура таблицы «MaterialsForDetails»
Атрибут |
Основной тип |
Ключ |
Описание |
MaName |
NVARCHAR(50) |
PK |
Название материала |
Таблица 2. Структура таблицы «Manufactory»
Атрибут |
Основной тип |
Ключ |
Описание |
MName |
NVARCHAR(50) |
PK |
Название цеха |
MFuction |
NVARCHAR(MAX) |
- |
Задачи цеха |
Таблица 3. Структура таблицы «Employess»
Атрибут |
Основной тип |
Ключ |
Описание |
Id |
INT |
PK |
Уникальный идентификатор строки |
FIO |
NVARCHAR(70) |
- |
ФИО сотрудника |
MWork |
NVARCHAR(50) |
FK |
Место работы сотрудника |
Position |
NVARCHAR(50) |
- |
Должность сотрудника |
Таблица 4. Структура таблицы «Users»
Атрибут |
Основной тип |
Ключ |
Описание |
Id |
INT |
PK |
Уникальный идентификатор строки |
Ulogin |
VARCHAR(20) |
- |
Логин сотрудника |
Upassword |
VARCHAR(20) |
- |
Пароль сотрудника |
MUser |
NVARCHAR(50) |
FK |
Место работы сотрудника |
Таблица 5. Структура таблицы «Dimension»
Атрибут |
Основной тип |
Ключ |
Описание |
NDimension |
NVARCHAR(5) |
PK |
Название размера |
Таблица 6. Структура таблицы «UnitObject»
Атрибут |
Основной тип |
Ключ |
Описание |
UOName |
NVARCHAR(50) |
PK |
Название части объекта |
Таблица 7. Структура таблицы «Litter»
Атрибут |
Основной тип |
Ключ |
Описание |
LName |
NVARCHAR(2) |
PK |
Название литера |
Таблица 8. Структура таблицы «Scale»
Атрибут |
Основной тип |
Ключ |
Описание |
ScName |
NVARCHAR(10) |
PK |
Название масштаба |
Таблица 9. Структура таблицы «Object»
Атрибут |
Основной тип |
Ключ |
Описание |
OName |
NVARCHAR(50) |
PK |
Название объекта |
Classification |
NVARCHAR(50) |
- |
Классификация объекта |
Length |
INT |
- |
Длина объекта |
Width |
INT |
- |
Ширина объекта |
SizeName |
NVARCHAR(5) |
FK |
Размерность объекта |
ODrawing |
VARBINARY(MAX) |
- |
Чертеж объекта |
Таблица 10. Структура таблицы «SplittingDraw»
Атрибут |
Основной тип |
Ключ |
Описание |
Id |
INT |
PK |
Уникальный идентификатор строки |
SDUOName |
NVARCHAR(50) |
FK |
Название части объекта |
SDOName |
NVARCHAR(50) |
FK |
Название объекта |
SDDrawing |
VARBINARY(MAX) |
- |
Чертеж |
SDMName |
NVARCHAR(50) |
FK |
Название цеха изготовителя |
Таблица 11. Структура таблицы «Details»
Атрибут |
Основной тип |
Ключ |
Описание |
Id |
INT |
PK |
Уникальный идентификатор строки |
DeName |
NVARCHAR(50) |
- |
Название детали |
DeNotation |
NVARCHAR(50) |
- |
Назначение детали |
DeMaterial |
NVARCHAR(50) |
FK |
Материал детали |
DeLiter |
NVARCHAR(2) |
FK |
Литера детали |
Weight |
INT |
- |
Масса детали |
DeScale |
NVARCHAR(10) |
FK |
Масштаб детали |
NDraw |
INT |
- |
Номер листа |
QDraw |
INT |
- |
Кол-во листов |
DeFactory |
NVARCHAR(50) |
FK |
Цех изготовитель детали |
DeDrawing |
VARBINARY(MAX) |
- |
Чертеж детали |
Таблица 12. Структура таблицы «DetailsAddInfo»
Атрибут |
Основной тип |
Ключ |
Описание |
Id |
INT |
PK |
Уникальный идентификатор строки |
IdDetal |
VARCHAR(20) |
FK |
Идентификатор детали |
DAIName |
VARCHAR(20) |
- |
Доп. информация о детали |