Министерство образования и науки Российской Федерации Федеральное государственное бюджетное образовательное учреждение высшего профессионального образования ТОМСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ СИСТЕМ УПРАВЛЕНИЯ И РАДИОЭЛЕКТРОНИКИ (ТУСУР) Кафедра компьютерных систем в управлении и проектировании (КСУП) РАЗРАБОТКА ПЛАГИНА «СМАРТФОН» НА БАЗЕ СИСТЕМЫ «КОМПАС-3D» Проект системы на курсовой проект по дисциплине «Разработка систем автоматизированного проектирования» Руководитель: м.н.с ЛИКС, каф. КСУП ___________ Калентьев А.А. «___»_______________2014 Задание выполнил: студент гр.580–2 _____________ Кузьменов А.С. «___»_______________2014 Томск 2014 2 Оглавление Введение ....................................................................................................................... 3 1 Описание САПР........................................................................................................ 4 1.1 Назначение плагина .............................................................................................. 4 1.2 Описание API......................................................................................................... 4 1.3 Описание аналогов разрабатываемого продукта ............................................... 6 1.3.1 Модуль ЧПУ. Токарная обработка ............................................................ 6 1.3.2 Плагин PDF3D .............................................................................................. 8 1.3.3 Плагин для экспорта и импорта чертежей САПР КОМПАС в формат DWG ....................................................................................................................... 9 2 Описание предмета проектирования.................................................................... 10 3 Проект программы ................................................................................................ 11 3.1 Диаграмма вариантов использования ......................................................... 11 3.2 Диаграмма классов........................................................................................ 12 3.3 Макеты пользовательского интерфейса ..................................................... 16 Заключение ................................................................................................................ 17 Список использованных источников ...................................................................... 18 Приложение А ........................................................................................................... 19 3 Введение Узкоспециализированные небольшие программы, узкопрофильной человеческой задачи модули (плагины) автоматизирующие конкретной деятельности. Эти отрасли – это, как решение правило, нетипичной промышленности приложения могут быть или как самостоятельными, так и базироваться на каких-либо программных пакетах тяжелого или среднего классов (так называемые подключаемые модули или библиотеки) [1]. Библиотека – это приложение, созданное для расширения стандартных возможностей КОМПАС ЗД и работающее в его среде [2]. Возможности использования библиотек отнюдь не ограничиваются простым вводом в чертеж параметризованных стандартных элементов. Библиотека может представлять собой сложную, ориентированную на конкретную задачу подсистему автоматизированного проектирования, которая после выполнения проектных расчетов формирует готовые конструкторские документы или их комплекты. Можно сказать, что в виде прикладных библиотек вполне реально разрабатывать целые САПР объектов определенного класса. Система КОМПАС 3D является открытой. Это означает, что при необходимости можно создавать для нее собственные библиотеки, сколь угодно усложняя и развивая ее функционал [1]. Такие пользовательские библиотеки выполняются с помощью функций API (Application Programming Interface) и являются своеобразной надстройкой КОМПАСА. 4 1 Описание САПР 1.1 Назначение плагина Назначение разрабатываемого плагина обусловлено выбором сферы его применения. В данном проекте выбором сферы применения стало разработка промышленного образца [3] модели смартфона. Разрабатываемый плагин позволяет заметно облегчить процесс создания промышленного образца, т.к. он имеет возможности по автоматизированной генерации образца модели, используя определенные в функциональности плагина параметры. Плагин разрабатывается на языке программирования C# с использованием платформы .NET Framework 4.5.1. Результат проектирования при помощи плагина является трехмерной моделью, который можно использовать для построения реального прототипа проектируемой модели и дальнейшей ее передачи в производство. Плагин, разрабатываемый в рамках данного проекта, позволяет изменять входные параметры, а именно: высота корпуса, ширина корпуса, толщина корпуса, радиус закругления углов корпуса, длину и ширину главной кнопки, форму главной кнопки, размер камеры, форму камеры, длину и ширину качели громкости, длину и ширину динамика, радиус закругления задней крышки. 1.2 Описание API Взаимодействие плагина с системой КОМПАС 3D осуществляется посредством интерфейсов, называемых API. В КОМПАС 3D на данный момент существует API двух версий API 5 и API 7. Явных преимуществ между версиями нет, поскольку обе версии реализуют различные функции системы и взаимно дополняют друг друга. Для курсового проекта была выбрана версия API 5, так как для полноценной реализации плагина достаточно методов и свойств интерфейсов API 5. 5 Главным интерфейсом API системы КОМПАС является KompasObject. Получить указатель на этот интерфейс можно с помощью экспортной функции CreateKompasObject(). Методы интерфейса KompasObject реализуют наиболее общие функции работы с документами системы, системными настройками, файлами, а также дают возможность получить указатели на другие интерфейсы (интерфейсы динамического массива, работы с математическими функциями, библиотек моделей или фрагментов и различных структур параметров определенного типа). Другой важный интерфейс API 5 – интерфейс документа модели ksDocument3D. Получить его можно с помощью методов интерфейса KompasObject: ActiveDocument3D – для уже существующего и активного в данный момент документа; Document3D – если необходимо создавать новый трехмерный документ. Методы интерфейса ksDocument3D позволяют программно управлять трехмерным документом, как сборкой и ее компонентами, так и отдельной деталью. Обратите внимание: именно управлять самим документом, но не выполнять в нем трехмерные операции. Графические документы имеют собственный интерфейс – ksDocument2D, со своими специфическими свойствами и методами. Методами интерфейса ksDocument2D создаются изображения в эскизах трехмерных операций. Свойства (члены данных) этого интерфейса позволяют динамически управлять настройками любого трехмерного документа системы из текущего модуля Для программной реализации всех трехмерных операций, которые пользователи выполняют в трехмерных документах системы КОМПАС-3D, в API реализован единый интерфейс ksEntity – интерфейс элемента модели. Этот интерфейс можно получить с помощью метода NewEntity, которому необходимо передать тип создаваемого элемента. Типов элементов в системе, 6 как и в API системы, большое множество. Каждому из них отвечает своя целочисленная константа и свой собственный интерфейс параметров. Таким образом, используя свойства и методы перечисленных интерфейсов, можно создавать, требуемые объекты в деталях и сборках КОМПАС-3D. 1.3 Описание аналогов разрабатываемого продукта КОМПAС-3D является открытой системой, что позволяет создавать дополнительные программные модули (пользовательские библиотеки) и применять их во время работы над документами. Таким образом, стандартные возможности чертежно-графического редактора и трехмерного моделирования могут быть дополнены исходя из тех специальных задач, которые приходится решать пользователю. В настоящее время система КОМПAС-3D непрерывно расширяется плагинами и модулями [4], которые можно разделить на два условных класса: плагины или модули, реализующие (моделирующие) конкретные трехмерный объекты в зависимости от сферы применения, наиболее известным является «Модуль ЧПУ. Токарная обработка», плагины или модули для формирования документации, на основе созданных моделей: для конвертации чертежей в формат DWG [5], PDF3D для экспорта моделей и сборок из КОМПАС-3D в формат PDF. 1.3.1 Модуль ЧПУ. Токарная обработка «Модуль ЧПУ. Токарная обработка» приложением, полностью интегрированным является первым CAM [6] в систему трехмерного моделирования КОМПАС-3D. Приложение предназначено для автоматизации разработки управляющих программ для токарных станков с ЧПУ [7] (Рисунок 1.1). 7 Рисунок 1.1 — Пример работы модуля «Модуль ЧПУ. Токарная обработка «Модуль ЧПУ. Токарная обработка» разработан в Национальном исследовательском Мордовском государственном университете им. Н. П.Огарева коллективом специалистов, имеющих десятилетний опыт создания приложений для КОМПАС-3D. Возможности CAM-приложения включают построение контуров обработки, автоматический расчет траекторий, генерацию управляющей программы, постпроцессирование, поддержку станочных циклов, визуализацию и контроль процесса обработки. Все операции выполняются в рабочем пространстве системы КОМПАС-3D с использованием элементов ее интерфейса. «Модуль ЧПУ. Токарная обработка» функционирует в составе 32 и 64-разрядной версии КОМПАС-3D V14. С появлением модуля весь процесс от проектирования детали до передачи 3D-модели на станок с ЧПУ (2-координатная токарная обработка) будет проходить в единой среде КОМПАС-3D. Для предприятия это в первую очередь означает, сокращение срока подготовки изделий к производству − нет необходимости экспортировать данные из КОМПАС-3D в CAM-системы, нет потерь времени на конвертацию и исправление ошибок при некорректной передаче. Упрощается и работа инженера-технолога — он использует одну 3D- 8 систему, не отвлекаясь на сторонние приложения, и уверен в точности данных, на основе которых разработана управляющая программа. «Модуль ЧПУ. Токарная обработка» обладает большим набором многопроходных, токарно-сверлильных и резьбонарезных стратегий. Поддерживается создание следующих видов обработки: Контур — контурное точение (как правило, чистовое); Канавка — простая канавка, параллельная координатным осям; Сверление — одно- и многопроходное сверление, центрование, обработка отверстий осевым инструментом; Нарезание резьбы резцом — многопроходное нарезание резьбы резцом (цилиндрических, конических, торцевых); Нарезание резьбы — нарезание резьбы плашкой или метчиком. 1.3.2 Плагин PDF3D Данный плагин позволяет производить экспорт моделей и сборок из КОМПАС-3D в формат PDF формат. Основной особенностью является возможность интерактивного взаимодействия пользователя с сохраненной 3D сценой внутри PDF файла. Например, пользователь может вращать, масштабировать, передвигать детали и сборки внутри 3D PDF файла. Также доступно создание анимации сборки и разборки изделий. Это полезно для подготовки интерактивных сборочных инструкций, создания маркетинговых материалов, презентаций, а также для налаживания взаимодействия между проектировщиками и заказчиками. В подобных ситуациях традиционным подходом являлся экспорт сборки или детали КОМПАС-3D в промежуточный формат и дальнейшее сохранение в формат 3D PDF. Используемый промежуточных файлов подход для в плагине осуществления исключает 3D использование преобразования, существенно повышает качество выходной 3D модели в формате PDF. Ключевые возможности: что 9 сохранение деталей и сборок в формате 3D PDF для интерактивного просмотра при помощи бесплатной программы Adobe Reader; создание анимаций имитирующих естественный порядок сборки и разборки создание имитации анимации гибки листовых тел; вставка в существующие PDF документы, содержащие основной текст, фоновые картинки, таблицы спецификаций, эмблемы, логотипы; пакетный режим для поочередной конвертации всех файлов. 1.3.3 Плагин для экспорта и импорта чертежей САПР КОМПАС в формат DWG Формат DWG является одной из основ современного проектирования с использованием компьютера. Плагин разрабатывается для того, чтобы компенсировать недостатки стандартного модуля экспорта и импорта DWG/DXF системы КОМПАС. Экспорт в формат DWG по задумке должен происходить максимально точно, насколько это возможно. Вся информация об исходных типах кривых будет сохранена в DWG, без разбиения на отрезки, как это делается сейчас. Задача нового плагина − сделать конвертацию чертежей в формат DWG, с минимальным временем конвертирования. В настоящее время плагин на стадии разработки, окончательная версия плагина планируется на выпуск в конце две тысячи четырнадцатого года. 10 2 Описание предмета проектирования Смартфон (от англ. умный телефон) – телефон с расширенным органайзером, офисными возможностями, возможностью загрузки приложений и работы с ними, поддерживающие многозадачность. Смартфоны представляют собой устройство, совмещающее функции мобильного телефона и карманного компьютера. Смартфоны – это аппараты, у которых отсутствует алфавитная клавиатура. Корпус смартфона выполнен в виде прямоугольника с закругленными краями. Центральная клавиша, отвечающая за возврат в главное меню, практически не выпирает из корпуса устройства. На правом ребре расположена кнопка блокировки, а на левом качелька громкости. С задней стороны расположена камера в верхней части, выполненная в виде квадрата с закругленными краями, и прямоугольная решетка динамика в нижней части. Примерный внешний вид модели смартфона представлен на рисунке 2.1: Рисунок 2.1 – Внешний вид модели смартфона 11 3 Проект программы Для формального описания поведенческих особенностей интерфейса, пользовательского сценария системы был выбран унифицированный язык моделирования (UML). С использованием UML построены: диаграммы вариантов использования диаграммы классов, диаграммы пакетов. Достаточно важным моментом при проектировании программы, является внешний вид программы. Интерфейс должен соответствовать заявленной функциональности, чтобы пользователь за минимальное время мог освоить программу и воспользоваться ей. Подробное описание макетов пользовательского интерфейса и сами макеты приведены в подразделе 3.4. 3.1 Диаграмма Диаграмма вариантов использования вариантов использования отражает возможный выбор действий (выбора состояния) пользователя внутри системы, установлено тридцать одно состояние (Рисунок 3.1). 12 Рисунок 3.1 — Диаграмма вариантов использования 3.2 Предмет Диаграмма классов проектирования состоит из множества индивидуальных особенностей, которые определяют его в целом, поэтому удобно проектировать систему снизу вверх, поэтому был выбран восходящий метод проектирования. Исходя из конструктивных особенностей и возможностей предмета проектирования, для реализации подсистемы в целом, проведено разделение системы по отдельным функциональным частям. Каждую функциональную часть системы реализует определенный класс, взаимосвязь между классами отражает диаграмма классов (Рисунок 3.2). Для реализации подсистемы были спроектированы следующие классы: 13 IGraphicsObject – интерфейс, определяющий простой составляющий элемент, содержащийся в модели, подробное описание в приложении А (Таблица А.1); Detail – базовый абстрактный класс, определяющий параметры деталей; Body – производный класс от Detail, определяющий корпус смартфона, подробное описание в приложении А (Таблица А.2); Camera – производный класс от Detail, определяющий камеру смартфона, подробное описание в приложении А (Таблица А.3); Dynamic – производный класс от Detail, определяющий динамик, подробное описание в приложении А (Таблица А.4); Button – базовый абстрактный класс, определяющий параметры кнопок, подробное описание в приложении А (Таблица А.5); LockButton – производный класс от Button, определяющий кнопку блокировки; VolumeButton – производный класс от Button, определяющий качельку громкости; MainButton – производный класс от Button, определяющий главную кнопку, подробное описание в приложении А (Таблица А.6); MainForm – диалоговый класс, обеспечивающий взаимодействие между пользователем и программой через форму, подробное описание в приложении А (Таблица А.7); Manager – класс, управляющий построением смартфона, подробное описание в приложении А (Таблица А8); DataStorage – класс хранения данных, подробное описание в приложении А (Таблица А.9); SmartphoneBuilder – класс построения смартфона в программе КОМПАС 3D, подробное описание в приложении А (Таблица А.10); 14 Kompas – класс, обеспечивающий запуск программы КОМПАС 3D, подробное описание в приложении А (Таблица А.11). 15 Рисунок 3.2 — Диаграмма классов 3.3 Макеты пользовательского интерфейса Программа будет состоять из одного диалогового окна с четырнадцатью полями ввода, двумя полями со списком и двумя кнопками: «Запустить КОМПАС» и «Построить модель» (Рисунок 3.3). Рисунок 3.3 — Диалоговое окно программы при старте 17 Заключение В ходе проектирования системы были изучены предметная область проектирования, предмет проектирования, аналоги предмета проектирования, API и на основании полученных данных была спроектированы архитектура системы и макет системы. Таким образом, на основе, полученных результатов можно реализовать плагин «Смартфон». 18 Список использованных источников 1) Интерфейс программы и управление рабочей средой [Электронный ресурс]. Режим доступа: http://www.piter.com/upload/contents/978538800701/978538800701_p.pdf (дата обращения: 17.11.2014) 2) Кудрявцев Е.М. (2009) Компас-3D. Проектирование в машиностроении [Электронный ресурс]. Режим доступа: http://lib-bkm.ru/load/19-1-0-2292. (дата обращения: 17.11.2014) 3) Промышленный образец [Электронный ресурс]. − Режим доступа: http://www.copyright.ru/documents/patentnoe_pravo/promishlennie_obraztsi/ (дата обращения 20.11.2014) 4) Модуль [Электронный ресурс]. − Режим доступа: http://it.kgsu.ru/Ob_Pas/obpas109.html (дата обращения 20.11.14) 5) DWG [Электронный ресурс]. − Режим доступа: http://www.autodesk.ru/products/dwg (дата обращения 20.11.14) 6) CAM. [Электронный ресурс]. − Режим доступа: http://rucadcam.ru/ (дата обращения 20.11.14) 7) ЧПУ [Электронный ресурс]. − Режим доступа: http://xn----8sbyhojpig2b.xn-p1ai/cnc.html (дата обращения 20.11.14) 19 Приложение А (Справочное) В таблицах приложения для обозначения модификаторов доступа полей приняты следующие условные знаки: «#» − обозначение protected (защищенного) поля; «−» − обозначение private (открытого) поля; «+» − обозначение public (открытого) поля. Таблица A.1 – Описание полей и методов интерфейса IGraphicsObject Наименование Описание Метод, который графический объект + Build отрисовывает Таблица A.2 – Описание полей и методов класса Body Наименование Описание +Width : double Ширина корпуса +Height : double Высота корпуса +Depth : double Глубина корпуса +AngleRadius : double Радиус закругления углов +BackRadius : double Радиус закругления крышки Таблица A.3 – Описание полей и методов класса Camera Наименование Описание +TypeOfCamera : CameraType Форма камеры +SideSize : double Размер стороны камеры Таблица A.4 – Описание полей и методов класса Dynamic Наименование Описание +Width : double Ширина динамика +Height : double Высота динамика 20 Таблица A.5 – Описание полей и методов класса Button Наименование Описание + Width : double Ширина кнопки + Height : double Высота кнопки Таблица A.6 – Описание методов статического класса MainButton Наименование + TypeOfMainButton : MainButtonType Описание Форма главной кнопки Таблица A.7 – Описание методов статического класса MainForm Наименование − _manager : Manager Описание Менеджер Таблица A.8 – Описание методов статического класса Manager Наименование Описание − _smartphone : SmartphoneBuilder Построитель смартфона − _data : DataStorage Данные о модели + BuildSmartphone() :void Построение смартфона Таблица A.9 – Описание методов статического класса DataStorage Наименование Описание Parametrs : Dictionary<Paramеtr,doublе> Параметры составляющих смартфона Таблица A.10 – Описание методов статического класса SmartphoneBuilder Наименование − _parts : List <IGraphicObjеct> Описание Части смартфона + BuildParts(Kompas,DataStoragе) : void Построить все части смартфона 21 Таблица A.11 – Описание методов статического класса Kompas Наименование Описание Kompas : KompasObjеct Ссылка на интерфейс KompasObjеct Doc : ksDocumеnt3D Ссылка на интерфейс ksDocumеnt3D