RUS | ENG || ДонНТУ Портал магістрів ДонНТУ
Магістр ДонНТУ Бубєнщіков Ілля Дмитрович

Бубєнщіков Ілля Дмитрович

Факультет комп'ютерних наук і технологій

Кафедра прикладної математики та інформатики

Програмне забезпечення автоматизованих систем

«Дослідження методів розширення функціональних можливостей графічних систем»

Керівник: к.т.н., доц. Карабчевський Віталий Владиславович


Біографія | Реферат | Резюме

Реферат з теми випускної роботи


Введення
Сучасні програми для розширення функціональних можливостей AutoCAD
Вибір програми для дослідження і вирішення задачі
Постановка завдання
Реалізація програми
Висновки
Лiтература


Введення

  Підраховано, що за попереднє десятиліття більше двохсот тисяч конструкторів в корені змінили свій підхід до процесу проектування, перейшовши від двовимірних САПР до тривимірним, які реалізують ідею створення комп'ютерних моделей з твердотільними властивостями. Зростаюча конкуренція і необхідність скорочення термінів проектування призвели до того, що цей рух, спочатку нагадувала тонкий струмочок, перетворилося на потужний потік. За останні два роки на тривимірне проектування перейшло стільки організацій, скільки за всі десять років існування цієї технології. Система автоматизованого проектування, САПР - автоматизована система, що реалізує інформаційну технологію виконання функцій проектування, являє собою організаційно-технічну систему, призначену для автоматизації процесу проектування, що складається з персоналу і комплексу технічних, програмних та інших засобів автоматизації його діяльності. В даний час існує безліч графічних редакторів і програм геометричного моделювання. Система AutoCAD є лідируючою в світі платформою програмного забезпечення систем автоматизованого проектування. AutoCAD характеризується, з одного боку, потужністю і гнучкістю, з іншого - гранично чіткою фокусуванням на максимальній продуктивності. Крім цього, цю повністю розширювану і адаптується систему можна використовувати в найрізноманітніших галузях. AutoCAD дозволяє організовувати виконання програм як у ньому самому, так і отримувати доступ до об'єктів креслення із зовнішніх додатків (через модель OLE або через технології. Net збірок) Основні технології автоматизації це:

  • Autolisp - мова, на якому можна створювати свої скрипти для системи.

  • VBA - можливе написання додатків на VBA - для ряду завдань (збирання та агрегація даних) це швидкий у написанні спосіб.

  • ARX - технологія для створення програмного забезпечення для AutoCAD на С + +.

  • Доступ до об'єктів із зовнішніх програм. (C #, VB, Або просто з Excel через VBА).

      ObjectARX SDK - додаток до середовища розробки Microsoft Visual Studio і містить спеціальні бібліотеки, заголовні файли, приклади і допоміжні інструменти, призначені для створення програм функціонуючих виключно в середовищі AutoCAD. ARX-додатки можуть безпосередньо звертатися до бази даних малюнка і геометричному ядра. Можна створювати власні команди, аналогічні стандартним командам AutoCAD. [1]


    Сучасні програми для розширення функціональних можливостей AutoCAD

      Популярність AutoCAD у світі зумовлена дуже розвиненими засобами розробки та адаптації, які дозволяють створювати спеціалізовані програми, такі як AutoCAD Mechanical, AutoCAD Electrіс, AutoCAD Architecture, GeoniCS, Promis-e, PLANT-4D, AutoPLANT, СПДС GraphiCS, MechaniCS та інші. Всього в світі налічується більш ніж 10000 комерційних продуктів заснованих на AutoCAD.

  • Дії Макрокоманди (макроси) в AutoCAD є одним з найпростіших засобів адаптації, доступних більшості користувачів. Макроси AutoCAD не слід плутати з макросами, створюваними за допомогою VBA.

  • Action Macros Action Macros вперше з'явилися в AutoCAD 2009. Користувач виконує послідовність команд, яка записується за допомогою інструменту Action Recorder. Записаний макрос можна відредагувати і зберегти, а згодом перенести на панель інструментів, або запускати зі спеціального меню.

  • Menu Macros Користувач має можливість створювати власні кнопки, за допомогою яких можна викликати заздалегідь записані за певними правилами серії команд (макроси). До складу макросів можна включати вирази, написані на мовах DIESEL і AutoLISP.

  • DIESEL DIESEL (Direct Interprietively Evaluated String Expression Language) - мова оперування рядками з невеликою кількістю функцій (всього 28 функцій). Він дозволяє формувати рядки, які повинні мати змінний текст, що залежить від будь-яких умов. Результат виводиться у вигляді рядка, яка інтерпретується системою AutoCAD як команда. Мова DIESEL використовується в основному для створення складних макрокоманд в якості альтернативи AutoLISP. Особливе значення даний мова має для версії AutoCAD LT, в якому відсутні всі засоби програмування, за винятком DIESEL. Мова DIESEL вперше з'явився в AutoCAD R12.

  • Visual LISP Visual LISP - середовище розробки додатків на мові AutoLISP. Іноді під назвою Visual LISP увазі мову AutoLISP доповнений розширеннями ActiveX. Середовище розробки Visual LISP вбудована в AutoCAD починаючи з версії AutoCAD 2000. Раніше (AutoCAD R14) вона поставлялася окремо. Середовище розробки містить мова AutoLISP і мова DCL, а також дозволяє створювати додатки, що складаються з декількох програм. Незважаючи на назву, Visual LISP не є середовищем візуального програмування.

  • AutoLISP AutoLISP - діалект мови Лісп, що забезпечує широкі можливості для автоматизації роботи в AutoCAD. AutoLISP - найстаріший з внутрішніх мов програмування AutoCAD, вперше він з'явився в 1986 році в AutoCAD 2.18 (проміжна версія). У AutoLISP реалізовано тісна взаємодія з командним рядком, що сприяло його популяризації серед інженерів, що працюють з AutoCAD.

  • Розширення ActiveX для AutoLISP Розширення ActiveX значно збільшують функціональність AutoLISP, додають можливість роботи з файлами, реєстром і можливість зв'язку з іншим програмним забезпеченням. Додаткові розширення працюють безпосередньо з об'єктною моделлю AutoCAD за допомогою функцій ActiveX. Вперше технологія ActiveX була впроваджена в AutoCAD R14.

  • DCL DCL (Dialog Control Language) - мова розробки діалогових вікон для додатків, написаних на мові AutoLISP. Вперше DCL був введений в AutoCAD R12 і з тих пір не зазнав істотних змін. Для розробки діалогових вікон не використовується візуальне програмування і можливості створення діалогових вікон істотно обмежені. Для усунення зазначених недоліків і розширення можливостей AutoLISP сторонніми розробниками створено альтернативних середовища для розробки діалогових вікон, такі як ObjectDCL, OpenDCL і деякі інші.

  • AutoCAD VBA У AutoCAD починаючи з версії R14 введена підтримка VBA (Visual Basic for Application). На відміну від VisualLISP VBA є візуальним середовищем програмування, проте програми VBA працюють з AutoCAD тільки за допомогою ActiveX, а з AutoLISP взаємодія сильно обмежена. Достоїнствами VBA є більш повна підтримка ActiveX і можливість завантаження DLL-бібліотек. Тим не менш, у версію AutoCAD 2010 середовище розробки VBA не включена за замовчуванням. Autodesk поступово відмовляється від підтримки VBA в AutoCAD, віддаючи пріоритет. NET, про що повідомляється в офіційному посібнику. Net API AutoCAD.

  • ObjectARX ObjectARX SDK - додаток до середовища розробки Microsoft Visual Studio і містить спеціальні бібліотеки, заголовні файли, приклади і допоміжні інструменти, призначені для створення програм функціонуючих виключно в середовищі AutoCAD. ARX-додатки можуть безпосередньо звертатися до бази даних малюнка і геометричному ядра. Можна створювати власні команди, аналогічні стандартним командам AutoCAD. Вперше пакет ObjectARX був реалізований для AutoCAD R13, раніше існували аналогічні за призначенням пакети ADS (для AutoCAD R11) і ARX (для AutoCAD R12). Позначення версій ObjectARX збігається з позначеннями версій AutoCAD для яких призначений даний пакет. Програми створені для однієї конкретної версії AutoCAD несумісні з іншими версіями. Проблема сумісності, як правило, вирішується перекомпіляції програми у відповідній версії ObjectARX.

  • . NET Завдяки підтримці Microsoft. NET Framework існує можливість створення додатків для AutoCAD в будь-якому середовищі розробки додатків, що підтримують дану технологію. [2]


    Вибір програми для дослідження і вирішення задачі

       Додаток ObjectARX - бібліотеку (DLL), що використовує адресний простір AutoCAD і посилає йому прямі функціональні запити. Можна додавати нові класи до середовища програми ObjectARX і експортувати їх для використання іншими програмами. Створювані ObjectARX-об'єкти фактично неможливо розрізнити від вбудованих об'єктів AutoCAD. Ви можете також розширити протокол ObjectARX, додаючи функції під час виконання сеансу AutoCAD. ObjectARX середовище програмування забезпечує об'єктно-орієнтована C + + прикладний програмний інтерфейс для розробників, щоб використовувати, налаштовувати, і розширювати AutoCAD. ObjectARX бібліотеки включають різний набір інструментальних засобів для прикладних розробників, щоб скористатися перевагою відкритої архітектури AutoCAD, забезпечуючи прямий доступ до структур бази даних AutoCAD, графічній системі, і корінним визначень команд. Крім того, ці бібліотеки розроблені з можливістю інтерфейсу з VLisp та іншим прикладним мов програмування так, щоб розробники могли вибирати інструментальні засоби програмування. Як розробник, можна використовувати ObjectARX, щоб виконати наступні завдання:
    • Звернення до бази даних AutoCAD
    • Взаємодія з редактором AutoCAD
    • Створення інтерфейсу користувача, що використовує MFC
    • Підтримка багатодокументний середовища
    • Створення замовних класів
    • Формування комплексного додатка
    • Взаємодіють з іншими середовищами програмування
      Малюнок AutoCAD - це колекція об'єктів, збережених у базі даних. Деякі з основних об'єктів бази даних - об'єкти, таблиці ідентифікаторів, і словники. Об'єкти - спеціальний вид бази даних, мають графічне представлення в межах малюнка AutoCAD. Рядки, кола, дуги, текст, регіони, сплайни, і еліпси - приклади об'єктів. Користувач може бачити об'єкт на екрані і може керувати ним. Таблиці ідентифікаторів і словники - контейнери, які зберігають об'єкти бази даних. Обидва контейнерних об'єкта відображають рядок імені до об'єкта бази даних. База даних AutoCAD включає фіксований набір таблиць ідентифікаторів, кожна з яких містить зразки специфічного класу звіту таблиці ідентифікаторів. [3]



    pисунок 1 - База даних AutoCAD


    Обгрунтування вибору ObjectARX для написання програми

      ObjectARX - найбільш гнучка і функціональна бібліотека для взаємодії додатку з AutoCAD. Вона дозволяє повністю охопити робочу область, зберігати змінні і об'єкти в базу даних, що дає перевагу в обчисленнях при вирішенні даної задачі. Також можлива візуалізація цього додатка за допомогою API, що створить зручності користувачу в роботі з даними додатком.


    Постановка завдання

      У залежності від положення січної площини лініями перетину конічної поверхні можуть бути (рис. 2): еліпс, парабола, гіпербола, а в окремих випадках: коло, пряма, дві пересічні прямі і крапка. Якщо площину Ф перетинає всі утворюють поверхні конуса обертання, тобто якщо Ф> а, то лінією перетину є еліпс У цьому випадку січна площина не паралельна жодної з утворюють поверхні конуса. В окремому випадку (Ф = 900) така площину перетинає поверхню конуса по колу, і перетин вироджується в точку, якщо площина проходить через вершину конуса. Якщо площину Ф паралельна однієї твірної поверхні конуса, тобто Ф = а, то лінією перетину є парабола. В окремому випадку (площина є дотичною до поверхні конуса) перетин вироджується в пряму. [4]



    Рисунок 2 - Лінії перерізу конічної поверхні


      У роботі будуть розглядатися випадки, в яких результатом перетину будуть гіпербола і парабола.



    Рисунок 3 - Освіта параболи січною площиною. (Анімація: 50 кадрів, 5 секунд, обсяг - 239 кб)



      Введенням нової системи координат можна привести рівняння кривих другого порядку до стандартного канонічного виду. Параметри канонічних рівнянь досить просто (рис. 4).



    Малюнок 4 - Канонічні рівняння гіперболи і параболи



    Реалізація програми

      Додаток буде реалізовано за допомогою Microsoft Visual C + + з використанням бібліотеки ObjectARX. Буде створено API інтерфейс користувача, за допомогою якого він буде взаємодіяти з системою. ObjectARX відкриває прямий доступ до баз даних AutoCAD, графічній системі і всій системі команд. Отже, з'являється можливість розробляти програми для взаємодії із середовищем проектування, створювати будь-які графічні інтерфейси користувача, звертаючись до бібліотеки MFC, створювати програми з багатовіконний інтерфейс, формувати власні класи і протоколи взаємодії, взаємодіяти з іншими програмними середовищами і зовнішніми пристроями. Таким чином, ObjectARX дозволяє створювати програми будь-якої складності. За функціональним можливостям він у декілька разів перевершує AutoLisp, DCL і VBA. Ця мова програмування дозволяє написати і простий скрипт, і інструменти перепрограмування ядра AutoCAD, а також взаємодії із зовнішніми пристроями. На ObjectARX і Visual C + + написані Autodesk Mechanical Desktop, Autodesk Land Desktop, Autodesk Map, Autodesk Civil Design та багато інших додатків до AutoCAD. AutoCAD з його широким набором інструментів програмування виключно перспективний у плані розширення функціональних можливостей. Розглянуті мови програмування дозволяють змінювати цей програмний комплекс, пристосувавши його можливості до вирішення специфічних завдань у будь-якій області. При розробці програми слід враховувати наступні два важливі чинники. Перший - необхідність швидкого написання програмного коду, другий - швидкодія створюваної програми. Якщо більш істотним є перший фактор, можна і потрібно використовувати спільний підхід до написання: паралельно задіяти всі мови, згадані вище, і отримати комплексний код програми. При цьому використовується певний мова програмування, що дозволяє виконати завдання найбільш зручно і швидко. Якщо ж переважають міркування швидкодії, слід віддати безумовна перевага мов C + +, Assembler і ARX [5].


    Висновки

      ObjectARX відкриває прямий доступ до баз даних AutoCAD, графічній системі і всій системі команд. Отже, з'являється можливість розробляти програми для взаємодії із середовищем проектування, створювати будь-які графічні інтерфейси користувача, звертаючись до бібліотеки MFC, створювати програми з багатовіконний інтерфейс, формувати власні класи і протоколи взаємодії, взаємодіяти з іншими програмними середовищами і зовнішніми пристроями. Таким чином, ObjectARX дозволяє створювати програми будь-якої складності. За функціональним можливостям він у декілька разів перевершує AutoLisp, DCL і VBA. Ця мова програмування дозволяє написати і простий скрипт, і інструменти перепрограмування ядра AutoCAD, а також взаємодії із зовнішніми пристроями. На ObjectARX і Visual C + + написані Autodesk Mechanical Desktop, Autodesk Land Desktop, Autodesk Map, Autodesk Civil Design та багато інших додатків до AutoCAD. Описане дозволяє зробити наступні висновки:
    1. Використовуючи сучасні мови програмування, можна істотно доповнити можливості базового програмного забезпечення.
    2. Чітке уявлення про можливості кожного з мов дозволяє оптимізувати процес створення прикладних програм.
    3. Кожен з мов найкращим чином відповідає цілком певним завданням:
    - AutoLisp - автоматизація процесу підготовки проектування, створення нових команд, отримання та збереження інформації за поточним кресленням, створення скриптів і зміна інформації в поточному файлі;
    - VBA - зміна і доповнення графічного інтерфейсу користувача, створення нових команд, об'єднання Windows-програм і AutoCAD в єдиний комплекс;
    - ObjectARX - доповнення AutoCAD новими об'єктами, класами, протоколами, методами і механізмами обробки інформації; встановлення зв'язку AutoCAD з різними системними подіями і зовнішніми пристроями.
      При розробці програми слід враховувати наступні два важливі чинники. Перший - необхідність швидкого написання програмного коду, другий - швидкодія створюваної програми. Якщо більш істотним є перший фактор, можна і потрібно використовувати спільний підхід до написання: паралельно задіяти всі мови, згадані вище, і отримати комплексний код програми. При цьому використовується певний мова програмування, що дозволяє виконати завдання найбільш зручно і швидко. Якщо ж переважають міркування швидкодії, слід віддати безумовна перевага мов C + +, Assembler і ARX. Приклади програм для програмістів можна знайти на офіційному сайті розробника AutoCAD і відповідних форумах. AutoCAD з його широким набором інструментів програмування виключно перспективний у плані розширення функціональних можливостей. Розглянуті мови програмування дозволяють змінювати цей програмний комплекс, пристосувавши його можливості до вирішення специфічних завдань у будь-якій області. [6]


    Лiтература

    1. Autodesk Inventor, "Пять веских причин для перехода на твердотельное моделирование", По материалам Autodesk, Inc [Электронный ресурс]. - www.inventor.ru/articles/article_15135.html.

    2. Финансовый Глоссарий FXGlossary, "Что такое AutoCAD", По материалам ru.wikipedia.org [Электронный ресурс]. - http://www.fxglossary.org.ua/index.php?l=A&w=AutoCAD.

    3. Autodesk Inc., ObjectARX ™, AutoCAD ® Среда программирования Библиотеки C++ [Электронная книга]. - ObjectARX_Среда программирования Библиотеки C++.

    4. Начертательная геометрия, Лекция №8 часть 2, Конические сечения [Электронный ресурс]. - http://dvoika.net/education/Graphbook/book/lekcii/L-008_1.htm.

    5. Донченко, М., Рябенький, О. Особенности использования программных средств для модификации AutoCAD CADmaster, №5(25) 2004 [Электронный ресурс]. - http://csf.ru/file/sYXlHXiBfCwHzPPd8296466/cm_25_autocad.pdf.

    6. Autodesk AutoCAD, Tidvell J. Designing User Interfaces. – USA, 2006. – 416p [Электронный ресурс]. - http://www.autodesk.ru/adsk/servlet/index?siteID=871736&id=12306406.

    7. Autodesk Inc., ObjectARX ™, AutoCAD ® Среда программирования Библиотеки C++ [Электронная книга]. - ObjectARX_Среда программирования Библиотеки C++.


    Біографія | Реферат | Резюме