Скачать 166.16 Kb.
|
Министерство образования и науки РФ ТОМСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ СИСТЕМ УПРАВЛЕНИЯ И РАДИОЭЛЕКТРОНКИ (ТУСУР) Кафедра компьютерных систем в управлении и проектировании (КСУП) Утверждаю Зав. кафедрой КСУП _________ Шурыгин Ю. А. «___» ____________ 2012 г. ПОЯСНИТЕЛЬНАЯ ЗАПИСКА к курсовой работе по дисциплине «Разработка САПР» Тема: «Интеграция скриптового языка программирования в систему «КОМПАС 3D» Руководитель: аспирант каф. КСУП Калентьев А.А. ___________ Задание выполнил: студент гр.588-2 Сахаров А. Д. __________ 2012 РЕФЕРАТ Пояснительная записка содержит 24 страниц, 14 рисунков. САПР, C#, VISUAL STUDIO, ENTERPRISE ARCHITECHT, UML, ПЛАГИН, .NET FRAMEWORK. Цель работы — спроектировать и реализовать модуль для интеграции скриптового языка Lua в систему автоматизированного проектирования «Компас 3D». Результатом работы является библиотека, интегрируемая в систему «Компас 3D», обеспечивающая выполнение команд скриптового языка Lua в среде «Компас 3D». Реализация программы выполнена в среде разработки Microsoft Visual Studio 2010. Пояснительная записка к дипломному проекту выполнена в текстовом редакторе Microsoft Word 2010. Министерство образования и науки РФ ТОМСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ СИСТЕМ УПРАВЛЕНИЯ И РАДИОЭЛЕКТРОННИКИ (ТУСУР) Кафедра компьютерных систем в управлении и проектировании (КСУП) Утверждаю Зав. кафедры КСУП ____________Ю.А. Шурыгин « __»_____________________г. ЗАДАНИЕ на курсовую работу по дисциплине «Разработка САПР» Студенту группы 588-2 Сахаров Андрей Дмитриевич 1. Тема работы: разработка модуля для интеграции скриптового языка программирования в систему проектирования «КОМПАС 3D». 2. Срок сдачи студентом работы: 01.12.2012г. 3. Исходные данные: интегрировать интерпретатор скриптового языка в систему проектирования «КОМПАС 3D». 4. Требования к модулю интеграции. Модуль должен обеспечивать следующую функциональность:
5. Результатом работы модуля является графическое представление результатов работы интерпретатора в проектировочной системе «КОМПАС 3D». 6. Сфера применения. Модуль предназначен для реализации взаимодействия скриптового языка программирования с проектировочной системой «КОМПАС 3D». 7. Требования к программной части, необходимые для функционирования модуля интеграции:
8. Содержание пояснительной записки.
9. Дата выдачи задания: 04.10.2012г. Руководитель аспирант каф. КСУП: Калентьев A.А._____________________ Задание принял к исполнению: Сахаров А. Д. ____________________ Содержание1 Введение 6 2 Постановка и анализ задачи 7 2.1 Обзор API САПР «КОМПАС 3D» 8 2.2 Обзор способов реализации пользовательского интерфейса 10 2.3 Разработка пользовательского интерфейса 11 2.4 UML диаграмма классов 12 2.5 Use-case диаграмма использования 13 2.6 Работа с файлами 13 3 Реализация 14 3.1 Реализация класса Main 14 3.2 Реализация класса MainForm 14 3.3 Реализация класса XMLParser 15 Класс XMLParser используется для работы с XML документами. Осуществляет поиск атрибутов и дочерних узлов по заданному тэгу. Основной метод класс – это метод Tips(), возвращающий описание методов плагина на основании генерируемого по XML комментариям XML документа. 15 4 Руководство пользователя 16 5 Тестирование программы 19 5.1 Тест выполнения команд из окна плагина 19 5.2 Тест загрузки и выполнения скриптов 21 6 Заключение 23 Список использованной литературы 24 1 ВведениеДанный проект представляет реализацию модуля для интеграции скриптового языка Lua в систему автоматизированного проектирования «Компас – 3D» Lua, обычно, называют мультипарадигменным языком. Он обеспечивает небольшой набор базовых механизмов, которые могут быть расширены для решения различных задач. В настоящее время используется в различных проектах, где требуется встроить достаточно быстрый и нетрудный в освоении скриптовый язык программирования — например, в разработке игр, где Lua часто используется для написания сценариев поведения/взаимодействия объектов. Разработанный плагин для системы автоматизированного проектирования «КОМПАС – 3D» позволяет выполнять пользовательские скрипты, написанные на Lua, выполнять пользовательские команды [4]. 2 Постановка и анализ задачиДля выполнения технического задания данного проекта необходимо выполнить:
2.1 Обзор API САПР «КОМПАС 3D»Взаимодействие внешнего приложения или подключаемого модуля с системой КОМПАС (с функциями моделирования, математическими функциями ядра системы и пр.) осуществляется посредством программных интерфейсов, называемых API. В КОМПАС на данный момент существуют API двух версий: API 5 и API 7. Обе версии реализуют различные функции системы и взаимно дополняют друг друга. Обе версии программных интерфейсов в равной мере поддерживаются и развиваются с учетом самих изменений в системе. В основном, для создания полноценных подключаемых модулей достаточно методов и свойств интерфейсов API 5. Главным интерфейсом API системы КОМПАС является KompasObject. Получить указатель на этот интерфейс (если быть точным, на интерфейс приложения API 5) можно с помощью экспортной функции CreateKompasObject(). Методы этого интерфейса реализуют наиболее общие функции работы с документами системы, системными настройками, файлами, а также дают возможность получить указатели на другие интерфейсы (интерфейсы динамического массива, работы с математическими функциями, библиотек моделей или фрагментов и различных структур параметров определенного типа). Другой важный интерфейс API 5 – интерфейс документа модели ksDocument2D. Получить его можно с помощью методов интерфейса KompasObject:
Свойства (члены данных) этого интерфейса позволяют динамически управлять настройками любого графического документа системы из вашего модуля. Методы интерфейса ksDocument2D позволяют программно управлять графическим документом, как сборкой и ее компонентами, так и отдельной деталью. Управлять самим документом, но не выполнять в нем двумерные операции. Для программной реализации всех трехмерных операций, которые пользователи выполняют в трехмерных документах системы КОМПАС-3D, в API реализован единый интерфейс ksEntity – интерфейс элемента модели. Этот интерфейс можно получить с помощью метода ksPart::NewEntity, которому необходимо передать тип создаваемого элемента. Типов элементов в системе, как и в API системы, большое множество. Каждому из них отвечает своя целочисленная константа и свой собственный интерфейс параметров. Именно с помощью настроек (свойств и методов) этих интерфейсов и создаются любые возможные объекты в деталях и сборках КОМПАС-3D [1]. 2.2 Обзор способов реализации пользовательского интерфейсаWindows Forms — название интерфейса программирования приложений (API), отвечающего за графический интерфейс пользователя и являющегося частью Microsoft .NET Framework. Данный интерфейс упрощает доступ к элементам интерфейса Microsoft Windows за счет создания обертки для существующего Win32 API в управляемом коде. Причем управляемый код — классы, реализующие API для Windows Forms, не зависят от языка разработки. То есть программист одинаково может использовать Windows Forms как при написании ПО на C#, С++, так и на VB.Net, J# и др. Внутри .NET Framework, Windows Forms реализуется в рамках пространства имён System.Windows.Forms [5]. Windows Presentation Foundation (WPF) — система для построения клиентских приложений Windows с визуально привлекательными возможностями взаимодействия с пользователем, графическая (презентационная) подсистема в составе .NET Framework (начиная с версии 3.0), использующая язык XAML. WPF предустановлена в Windows Vista (.NET Framework 3.0) и Windows 7 (.NET Framework 3.5 SP1). С помощью WPF можно создавать широкий спектр как автономных, так и запускаемых в браузере приложений. В основе WPF лежит векторная система визуализации, не зависящая от разрешения устройства вывода и созданная с учётом возможностей современного графического оборудования. WPF предоставляет средства для создания визуального интерфейса, включая язык XAML (Extensible Application Markup Language), элементы управления, привязку данных, макеты, двухмерную и трёхмерную графику, анимацию, стили, шаблоны, документы, текст, мультимедиа и оформление. Графической технологией, лежащей в основе WPF, является DirectX, в отличие от Windows Forms, где используется GDI/GDI+. Производительность WPF выше, чем у GDI+ за счёт использования аппаратного ускорения графики через DirectX [6]. Также существует урезанная версия CLR, называющаяся WPF/E, она же известна как Silverlight. В текущем проекте будет использоваться интерфейс Windows Form, так как он удовлетворяет требованиям проекта и реализуется во времени быстрее чем WPF. 2.3 Разработка пользовательского интерфейсаПользовательский интерфейс реализован с использованием технологии Windows Forms. Внешний вид интерфейса приведён на рисунке 2.1. Рисунок 2.1 – Графический интерфейс пользователя Данный интерфейс имеет пять основных компонентов:
2.4 UML диаграмма классовПо результатам проектирования была составлена диаграмма классов проекта, представленная на рисунке 2.2 [3]: Рисунок 2.2 – Диаграмма классов проекта 2.5 Use-case диаграмма использованияСоставленная диаграмма использования приведена на рисунке 2.3 [3]. Рисунок 2.3 – Диаграмма использования 2.6 Работа с файламиДля работы с файлами используются стандартные классы .NET Framework: FileStream, StreamReader, TextReader. При считывании файла изначально создаётся объект FileStream, затем на основе этого объекта создаётся объект StreamReader для чтения из файлового потока. Т.к. необходимо считывать текстовые данные, используем объект TextReader для считывания содержимого файла. 3 РеализацияНа основе проведённого анализа задания были реализованы следующие классы: Main, MainForm. Детали реализации приведены ниже. 3.1 Реализация класса MainКласс Main предназначен для обеспечения взаимодействия пользователя с интерпретатором скриптового языка. Класс должен обеспечивать интеграцию в САПР «КОМПАС 3D» в виде плагина. Основные методы класса:
3.2 Реализация класса MainFormКласс MainForm предназначен для предоставления графического интерфейса пользователя на основе технологии WinForms. Был реализован спроектированный графический интерфейс и методы для взаимодействия с интерпретатором. Основные методы класса:
Загружаемый на выполнение пользовательский скрипт должен быть в формате .lua. Какой-либо разметки не предусмотрено. Скрипт состоит из перечисления необходимых методов через точку с запятой. Пример скрипта, рисующего часть рамки для листов для черчения: doc = kompas:ActiveDocument2D(); doc:ksLineSeg(20, 5, 415, 5, 1); doc:ksLineSeg(415, 5, 415, 292, 1); doc:ksLineSeg(415, 292, 20, 292, 1); doc:ksLineSeg(20, 292, 20, 5, 1); При выполнении команды в историю команд заносится сама команда и результат выполнения («ОК» - при успешном выполнении команды и текст исключения при не успешном выполнении команды). При загрузке скрипта отображаются аналогичная информация. 3.3 Реализация класса XMLParserКласс XMLParser используется для работы с XML документами. Осуществляет поиск атрибутов и дочерних узлов по заданному тэгу. Основной метод класс – это метод Tips(), возвращающий описание методов плагина на основании генерируемого по XML комментариям XML документа.4 Руководство пользователяДля того чтобы начать работу с плагином «KompasSharp» необходимо сначала подключить библиотеку к системе «Компас 3D». Для этого нужно щёлкнуть правой клавишей мыши на пустом поле Менеджера библиотек, и в появившемся контекстном меню выбрать пункт «добавить описание» - «прикладная библиотека» (рис. 4.1). Рисунок 4.1 – Добавление прикладной библиотеки В появившемся окне нужно перейти на вкладку «ActiveX» и дважды щёлкнуть левой кнопкой мыши по названию библиотеки «KompasSharp.Plagin.Main» как показано на рисунке 4.2. Рисунок 4.2 – Подключение библиотеки «KompasSharp.Plagin.Main» Создайте или откройте проект в Компасе. Для того чтобы открыть окно плагина, необходимо нажать левой кнопкой мыши на пункт меню «Библиотеки», и в появившемся окне выбрать «KompasSharp» (рис. 4.3). Рисунок 4.3 – Запуск плагина Чтобы загрузить готовый Lua – скрипт, нужно нажать кнопку «Загрузить» и в появившемся окне найти необходимый файл (рис. 4.4). Рисунок 4.4 – Загрузка пользовательского Lua – скрипта Чтобы выполнить команду Lua, необходимо ввести её в поле ввода команды и нажать кнопку «Go»(рис. 4.5). Рисунок 4.5 – Ввод команды Lua 5 Тестирование программыДля проверки работоспособности и корректности обработки входных данных было произведено тестирование плагина. В ходе тестирования было проверено выполнение команд из окна плагина (5.1) и загрузка/выполнение скриптов из файла (5.2). 5.1 Тест выполнения команд из окна плагинаДля начала введём в поле ввода корректную команду. Команда выполняется – результатом является отображённая линия (рис. 5.1). Рисунок 5.1 – Ввод корректной команды Следующий шаг – ввод команды с неправильным количеством параметров. Результат – вывод сообщения об ошибке в аргументах (рис 5.2). Рисунок 5.2 – неправильное количество аргументов Так же, проверяем выполнение команды с синтаксической ошибкой. Результат – сообщение о синтаксической ошибке (неожиданный конец файла) (рис 5.3). Рисунок 5.3 – Синтаксическая ошибка 5.2 Тест загрузки и выполнения скриптовЗагружаем корректный скрипт в плагин. Результат – отображённая рамка чертежа А3 (рис. 5.4, рис. 5.5). Рисунок 5.4 – Загрузка корректного скрипта Рисунок 5.5 – Результат выполнения корректного скрипта Загрузим скрипт, содержащий синтаксическую ошибку (рис 5.6). Результат – скрипт не выполняется (рис. 5.7). Рисунок 5.6 – Загрузка некорректного скрипта Рисунок 5.7 – Отсутствие результата выполнения скрипта Тестирование проводилось на ЭВМ с процессором Intel® Pentium Dual с частотой работы 2,00 ГГц и оперативной памятью 4 Гб с помощью программного продукта виртуализации для операционных систем Microsoft Windows – Virtual Box. В связи с техническим заданием плагин был протестирован на 6 операционных системах (Windows XP (x64; x86) / Vista (x64; x86)/ Seven (x64; x86)). Результат тестирования на каждой из перечисленных систем – положителен. 6 ЗаключениеВ результате выполнения работы был реализован плагин для интеграции скриптового языка Lua в систему автоматизированного проектирования «КОМПАС – 3D». Техническое задание было выполнено полностью, проведено тестирование результирующего программного продукта, а так же разработано руководство пользователя. Дальнейшая работа над проектом возможна по следующим направлениям:
Список использованной литературы
|
Пояснительная записка к курсовой работе по дисциплине «Разработка... Курсовой проект содержит: страниц –22, источников – 5, рисунков – 6, таблиц – 2 | Пояснительная записка к курсовой работе по дисциплине «Разработка... Курсовой проект содержит: страниц –20, источников – 5, рисунков – 6, таблиц – 2 | ||
Пояснительная записка к курсовому проекту по дисциплине «Разработка... Курсовой проект содержит: страниц –19, источников – 5, рисунков – 6, таблиц – 2 | Пояснительная записка на курсовой проект по дисциплине «Разработка... Целью данной работы является разработка программы для автоматизации проектирования систем молниезащиты на базе сапр компас 3D, с... | ||
Пояснительная записка к курсовому проекту по дисциплине: «Разработка сапр» Целью данной работы является разработка и реализация модуля к сапр «Зубчатая передача с пересекающимися осями колес» на базе системы... | Пояснительная записка к курсовому проекту по дисциплине «Разработка сапр» Целью работы является разработка и реализация библиотеки элементов «Отвертка» на базе системы компас 3D, с использованием методов... | ||
Пояснительная записка к курсовой работе по дисциплине «Разработка... Курсовая работа содержит: страниц – 20, источников – 8, рисунков – 7, таблиц – 2 | Пояснительная записка на курсовой проект по дисциплине Разработка... Федеральное государственное бюджетное образовательное учреждение высшего профессионального образования | ||
Пояснительная записка к курсовому проекту по дисциплине «Разработка... Курсовой проект содержит: страниц – 22, источников – 8, рисунков – 9, таблиц – 1 | Пояснительная записка к курсовой работе на тему Гитарный симулятор... Объектом исследования является популярная мобильная платформа Android, и ее использование для разработки игр | ||
Пояснительная записка на курсовую работу по дисциплине Разработка... Федеральное государственное бюджетное образовательное учреждение высшего профессионального образования | Пояснительная записка к курсовой работе по дисциплине «Методика профессионального обучения» Бланк задание Вы получаете у преподавателя. Образец бланка задания представлен в приложении методических указаний к выполнению курсовой... | ||
Пояснительная записка к курсовой работе по дисциплине «Криминалистика» Челябинск: фгбо впо «ЮУрГУ» (ниу), ю-425, 2011, 34 с., библиографический список 39 наим | Приложение примерные Темы для Курсовой работы по дисциплине Курсовой работа по дисциплине «Технологии программирования» состоит из 2 частей: теоретическая часть; практическое задание | ||
Пояснительная записка к курсовой работе тема: Разработка технологического... Вторичное использование деталей с допустимым износом и восстановление изношенных деталей, узлов и механизмов, способствует успешному... | Пояснительная записка к курсовой работе по дисциплине «Уголовное право. Общая часть» Челябинск: фгбо впо «ЮУрГУ» (ниу), ю-425, 2011, 34 с., библиографический список 39 наим |