WYKORZYSTANIE PLATFORMY FireMonkey DO AUTOMATYZACJI ZADAŃ GRAFIKI W PROGRAMIE AutoCAD

Podobne dokumenty
INFORMATYKA TECHNICZNA Badanie możliwości wykorzystania języka AutoLISP i środowiska VisualLISP w systemie CAx

SPOSOBY POMIARU KĄTÓW W PROGRAMIE AutoCAD

INFORMATYKA TECHNICZNA Badanie możliwości wykorzystania interfejsu automatyzacji OLE w systemie CAx

METODY URUCHAMIANIA PROGRAMÓW JĘZYKA AutoLISP W ŚRODOWISKU AutoCAD

WYKORZYSTANIE PLATFORMY FireMonkey W PROCESIE URUCHAMIANIA I TESTOWANIA UKŁADÓW MIKROPROCESOROWYCH

INFORMATYKA TECHNICZNA Metody wprowadzania obiektów w programie AutoCAD za pomocą języka AutoLISP

WIZUALIZACJA DANYCH ZE STRZELA RAKIETOWYCH Z WYKORZYSTANIEM SYSTEMÓW CAx

ODWZOROWANIE SYTUACJI TAKTYCZNEJ WOJSK OPL Z WYKORZYSTANIEM SYSTEMU CAx

Król Łukasz Nr albumu:

S Y L A B U S P R Z E D M I O T U

Języki i paradygmaty programowania doc. dr inż. Tadeusz Jeleniewski

Środowiska i platformy programistyczne

Narzędzia RAD (wykład 1)

Języki i paradygmaty programowania - 1

Piotr Bubacz Cloud Computing

Ćwiczenie nr 4 INSTRUKCJA LABORATORYJNA

Wykład V. Rzut okiem na języki programowania. Studia Podyplomowe INFORMATYKA Podstawy Informatyki

REFERAT PRACY DYPLOMOWEJ

Przegląd i ewaluacja narzędzi do szybkiego tworzenia interfejsu użytkownika (RAD).

Delphi podstawy programowania. Środowisko Delphi

Programowanie RAD Delphi

WIZUALIZACJA I STEROWANIE ROBOTEM

Plan wykładu. Akcelerator 3D Potok graficzny

Język programowania. Andrzej Bobyk

Aplikacje w środowisku VBA. Visual Basic for Aplications

Technika mikroprocesorowa. Struktura programu użytkownika w systemie mikroprocesorowym

Programowanie współbieżne i rozproszone

Programowanie w języku C++ Grażyna Koba

Programowanie obiektowe

PLAN WYNIKOWY PROGRAMOWANIE APLIKACJI INTERNETOWYCH. KL IV TI 6 godziny tygodniowo (6x15 tygodni =90 godzin ),

PROGRAMOWANIE GRAFIKI 2D W ŚRODOWISKU EMBARCADERO RAD STUDIO XE4 Z WYKORZYSTANIEM BIBLIOTEKI DirectX

Programowanie, część III

INŻYNIERIA OPROGRAMOWANIA

Projektowanie i symulacja systemu pomiarowego do pomiaru temperatury

INŻYNIERIA OPROGRAMOWANIA

Informatyka I stopień (I stopień / II stopień) Ogólnoakademicki (ogólno akademicki / praktyczny)

AutoCAD projektowanie I poziom

PLAN WYNIKOWY PROGRAMOWANIE APLIKACJI INTERNETOWYCH. KL III TI 4 godziny tygodniowo (4x30 tygodni =120 godzin ),

Integracja systemu CAD/CAM Catia z bazą danych uchwytów obróbkowych MS Access za pomocą interfejsu API

Dariusz Brzeziński. Politechnika Poznańska, Instytut Informatyki

Nadchooooodzi FireMooooooooonkey!

System zarządzający grami programistycznymi Meridius

Zakres egzaminu dyplomowego (magisterskiego) na kierunku INFORMATYKA

Informatyka I stopień (I stopień / II stopień) Ogólnoakademicki (ogólno akademicki / praktyczny)

Ełk, dn r. DOMSET Marcin Brochacki. ul. Wojska Polskiego 43 lok. 3, Ełk. Nip ZAPYTANIE OFERTOWE

Krótka Historia. Co to jest NetBeans? Historia. NetBeans Platform NetBeans IDE NetBeans Mobility Pack Zintegrowane moduły. Paczki do NetBeans.

Tutorial prowadzi przez kolejne etapy tworzenia projektu począwszy od zdefiniowania przypadków użycia, a skończywszy na konfiguracji i uruchomieniu.

która metoda jest najlepsza

TWORZENIE ELEMENTÓW ZNORMALIZOWANYCH W PROGRAMIE AutoCAD

Instrukcja laboratoryjna cz.0

Czym jest Java? Rozumiana jako środowisko do uruchamiania programów Platforma software owa

Dariusz Brzeziński. Politechnika Poznańska, Instytut Informatyki

Instrukcja laboratoryjna cz.3

PDM wbudowany w Solid Edge

Programowanie niskopoziomowe. dr inż. Paweł Pełczyński

DROGA ROZWOJU OD PROJEKTOWANIA 2D DO 3D Z WYKORZYSTANIEM SYSTEMÓW CAD NA POTRZEBY PRZEMYSŁU SAMOCHODOWEGO

Zacznij Tu! Poznaj Microsoft Visual Basic. Michael Halvorson. Przekład: Joanna Zatorska

Podstawy Programowania 2

Wprowadzenie do rysowania w 3D. Praca w środowisku 3D

Podstawy programowania. Wprowadzenie

Grafika komputerowa i wizualizacja

Laboratorium 1 Temat: Przygotowanie środowiska programistycznego. Poznanie edytora. Kompilacja i uruchomienie prostych programów przykładowych.

Informatyka I stopień (I stopień / II stopień) Ogólnoakademicki (ogólno akademicki / praktyczny) kierunkowy (podstawowy / kierunkowy / inny HES)

Początki Javy. dr Anna Łazińska, WMiI UŁ Podstawy języka Java 1 / 8

Procesowa specyfikacja systemów IT

Wprowadzenie do biblioteki klas C++

Mamy najlepsze ceny na rynku!

SYLABUS/KARTA PRZEDMIOTU

ŚRODOWISKO PC WORX JAKO WSPARCIE W NAUCE PROGRAMOWANIA STEROWNIKÓW PLC

Projektowanie Graficznych Interfejsów Użytkownika Robert Szmurło

Biorąc udział w projekcie, możesz wybrać jedną z 8 bezpłatnych ścieżek egzaminacyjnych:

NX CAD. Modelowanie powierzchniowe

Schemat blokowy karty

Programowanie aplikacji mobilnych

Platformy programistyczne:.net i Java L ABORATORIUM 7,8: HACKATHON - JTTT

Zapytanie ofertowe. Skawina 7 listopada 2014

I. KARTA PRZEDMIOTU CEL PRZEDMIOTU WYMAGANIA WSTĘPNE W ZAKRESIE WIEDZY, UMIEJĘTNOŚCI I INNYCH KOMPETENCJI EFEKTY KSZTAŁCENIA

Informatyczne podstawy projektowania Kod przedmiotu

Moduł raportowy systemu MGśP. Dokumentacja użytkownika

37. Podstawy techniki bloków

Programowanie Strukturalne i Obiektowe Słownik podstawowych pojęć 1 z 5 Opracował Jan T. Biernat

Język JAVA podstawy. wykład 1, część 2. Jacek Rumiński. Politechnika Gdańska, Inżynieria Biomedyczna

PRZYJĘTE ZASADY GRY...3 ZAŁOŻENIA PROJEKTU...4 CZYM JEST I DLACZEGO QT?...5 DIAGRAM KLAS...7 DIAGRAM GRY SINGLE PLAYER...8 DIAGRAM MULTIPLAYERA...

AUTOMATYZACJA PROCESU PROJEKTOWANIA RUR GIĘTYCH W OPARCIU O PARAMETRYCZNY SYSTEM CAD

Implementacja aplikacji sieciowych z wykorzystaniem środowiska Qt

OpenLaszlo. OpenLaszlo

System informacji edukacyjnej regionu kujawsko-pomorskiego

InPro BMS InPro BMS SIEMENS

SYSTEM SCADA DO OCHRONY KATODOWEJ SCADA SYSTEM FOR CATHODIC PROTECTION

Wykład 4. Rendering (1) Informacje podstawowe

WYKORZYSTANIE JĘZYKA PROGRAMOWANIA PYTHON I BIBLIOTEKI OPENCASCADE DO WIZUALIZACJI I OBLICZEŃ GEOMETRYCZNYCH

MentorGraphics ModelSim

INFORMATYKA, TECHNOLOGIA INFORMACYJNA ORAZ INFORMATYKA W LOGISTYCE

To sposób w jaki użytkownik wchodzi w interakcje z systemem. Środowisko graficzne używa kombinacji graficznych elementów(przyciski, okna, menu) i

DesignCAD 3D Max 24.0 PL

kierunkowy (podstawowy / kierunkowy / inny HES) nieobowiązkowy (obowiązkowy / nieobowiązkowy) polski semestr V zimowy i letni (semestr zimowy / letni)

Dokument Detaliczny Projektu Temat: Księgarnia On-line Bukstor

GRY KOMPUTEROWE 3D OpenGL DirectX Ogre3D Crystal Space ClanLib Irrlicht SDL Ardor3D jmonkey Engine GRY KOMPUTEROWE 2D ORX Troll2D

Wprowadzenie do QT OpenGL

Co to jest Lazarus? Jak pobrać bezpłatną wersję Lazarus a Organizacja projektu w Lazarus ie

Transkrypt:

Dr inż. Jacek WARCHULSKI Dr inż. Marcin WARCHULSKI Mgr inż. Witold BUŻANTOWICZ Wojskowa Akademia Techniczna Instytut Systemów Mechatronicznych WYKORZYSTANIE PLATFORMY FireMonkey DO AUTOMATYZACJI ZADAŃ GRAFIKI W PROGRAMIE AutoCAD Streszczenie: W referacie przedstawiono możliwości wykorzystania systemów CAx w procesie automatyzacji zadań projektowych. Opracowano przykłady z zastosowaniem interfejsu automatyzacji OLE oraz platformy FireMonkey pakietu RAD Studio XE2. USE OF FireMonkey PLATFORM TO AUTOMATION OF GRAPHIC TASKS IN AutoCAD APPLICATION Abstract: In this paper the possibilities of using CAx systems in the automation process of design tasks are described. The authors present examples prepared using OLE Automation interface and FireMonkey platform of Embarcadero RAD Studio XE2 environment. 1. WPROWADZENIE Program AutoCAD ma wielu użytkowników i zajmuje znaczące miejsce w graficznym zapisie konstrukcji. W programie AutoCAD istnieją możliwości programowania czynności związanych z obsługą danych, automatyzacją zadań grafiki, wykonywaniem i dzieleniem informacji o rysunku z innymi aplikacjami. Napisanie programu do realizacji szczegółowego zadania zwykle wymaga na początku większego nakładu pracy, jednak wysiłek ten przy późniejszym wielokrotnym wykorzystaniu napisanego programu jest opłacalny. Pisanie aplikacji dla programu AutoCAD w środowisku Windows jest możliwe za pomocą wbudowanych w niego narzędzi programistycznych(np. środowisko programowania VisualLISP oparte na języku AutoLISP) i języków programowania ogólnego zastosowania (Delphi czy C++) [1,2]. W związku z wydaniem przez firmę Embarcadero najnowszej wersji oprogramowania RAD Studio XE2 wraz z nową platformą FireMonkey [7], przetestowano możliwość współpracy tej platformy z systemem CAx. Rys. 1. Oprogramowanie RAD Studio XE2 981

2. PLATFORMA FireMonkey W środowisku RAD Studio XE2 użytkownicy mają do wyboru dwie platformy komponentowe. Oprócz biblioteki VCL (Visual Component Library) znanej z wcześniejszych wersji Delphi i C++ Buildera, pojawiła się nowa platforma komponentowa FireMonkey. Platforma FireMonkey, wychodząc naprzeciw oczekiwaniom programistów, pozwala na kompilację aplikacji z jednego kodu dla wielu systemów operacyjnych. Rys. 2. Wybór platformy VCL i FireMonkey Ponieważ systemy operacyjne różnią się znacznie pomiędzy sobą, stworzenie środowiska, które z tego samego kodu będzie tworzyło kod natywny dla różnych systemów operacyjnych jest bardzo trudne. Stąd narodziła się idea, aby korzystając ze standardu kart graficznych, rozdzielić obsługę grafiki od kompilacji kodu niegraficznego. Zdecydowano się powierzyć obsługę grafiki w tworzonej aplikacji karcie graficznej (a nie procesorowi) tak jak ma to miejsce w przypadku gier komputerowych. Dzięki tej operacji, kompilacja kodu pod różne systemy operacyjne stała się znacznie prostsza. Rys. 3. Kompilacja projektu na różne systemy operacyjne 982

Biblioteka FireMonkey powstała z myślą o kompilacji pod różne systemy operacyjne. Grafika jest tworzona z wykorzystaniem technologii Direct2D, Direct3D, OpenGL, a komponenty niegraficzne i cały kod są kompilowane (cross-compiling) przez kompilatory dedykowane poszczególnym platformom sprzętowym. W wersji RAD Studio XE2 mamy możliwość kompilacji pod następujące systemy operacyjne: Windows 32-bitowy, Windows 64-bitowy (tylko Delphi) oraz OSX (Macintosh). W przypadku platformy FireMonkey nie zmienił się język programowania możemy wykorzystać zarówno w Delphi, jak i C++. Co więcej, w FireMonkey znajdziemy oprócz takich samych komponentów jak w przypadku klasycznej biblioteki VCL, również wiele innych, nowych elementów. Dzięki temu, każdy programista użytkujący bibliotekę VCL powinien poradzić sobie z przeniesieniem własnych projektów na platformę FireMonkey. Istotną zmianą w stosunku do biblioteki VCL jest bogactwo graficzne platformy FireMonkey. Wykorzystując możliwości oferowane przez kartę graficzną, możemy w nieskomplikowany sposób wprowadzać animację obiektów, np. każdy obiekt posiada parametr przeźroczystość (od 0 do 1) oraz każdemu komponentowi możemy przypisać efekty wykorzystujące shaders (np. cień, rozmycie, odbicie, zwielokrotnienie, sepia itp.). Animacje i efekty są obiektami, a jako takie mają własne atrybuty i zdarzenia, są także w pełni programowalne. Cały interfejs użytkownika jest wektorowy, a przez to łatwo skalowany. Projekty mogą być budowane w standardzie High Definition (2D, wysoka jakość) lub 3D (trójwymiarowa scena ). Przykładowy fragment kodu programu [5], pozwalającego na wyświetlenie i obrót obiektu typu powierzchniowego za pomocą platformy FireMonkey, przedstawiony jest na poniższym rysunku. Warto zauważyć że w przypadku nowej platformy wykorzystującej procesor graficzny (GPU), a nie procesor komputera(cpu) jest to tylko jedna linia kodu. Rys. 4. Fragment kodu programu pozwalającego na obrót obiektu przestrzennego względem osi z dla platformy FireMonkey Rys. 5. Wygląd i działanie program testującego wykorzystanie platformy FireMonkey (wizualizacja obiektu 3D) 983

3. PRZYKŁAD WYKORZYSTANIE PLATFORMY FireMonkey W PROCESIE AUTOMATYZACJI ZADAŃ GRAFIKI Automatyzacja zadań grafiki możliwa jest między innymi za pomocą wykorzystania interfejsu automatyzacji OLE. Przez pojęcie automatyzacji OLE (OLE Automation) definiuje się możliwość programowego sterowania obiektami innego programu oraz protokół, za pomocą którego dany program może uzyskać dostęp do obiektu znajdującego się w innym programie. Automatyzacja umożliwia zatem sterowanie jedną lub wieloma aplikacjami przy użyciu innych aplikacji. Aplikację sterowaną nazywa się serwerem ze względu na to, że to ona udostępnia obiekty automatyzacji OLE. Natomiast aplikację sterującą, wykorzystującą obiekty aplikacji sterowanej, nazywa się klientem [1]. Aby można było korzystać z metod i obiektów interfejsu, używając programu zewnętrznego, niezbędne jest nawiązanie połączenia z serwerem OLE programu AutoCAD 2012. Można to zrealizować za pomocą wywołania funkcji CreateOleObject, która tworzy obiekt udostępniający obiekty programu AutoCAD. Z programu zewnętrznego można uzyskać dostęp do aktualnie otwartego rysunku (otwartego dokumentu) za pomocą funkcji GetActiveOleObject, która udostępnia obiekty aktywnego programu. Uzyskanie połączenia z serwerem OLE dla programów pisanych w Delphi przedstawiono w module PolaczAutoCAD. W module tym procedura PolaczZACAD pozwala uzyskać dostęp do uruchomionego obiektu aplikacji. Zmodyfikowany kod modułu PolaczAutoCAD, który umożliwia dostęp do interfejsu automatyzacji w wersji 2012 programu AutoCAD, przedstawia się następująco [1,3,4]: Rys. 6a. Kod modułu PolaczAutoCAD 984

Rys. 6b. Kod modułu PolaczAutoCAD W powyższej procedurze definiowane są główne zmienne umożliwiające dostęp do obszaru modelu programu AutoCAD: AcadApp jest to główny obiekt (aplikacja programu AutoCAD) AcadDoc jest to aktywny dokument programu AutoCAD AcadDwg jest to przestrzeń modelu aktywnego dokumentu programu AutoCAD. Przykład automatyzacji dotyczył będzie wprowadzania w obszarze modelu programu AutoCAD: obiektów typu okrąg o losowym położeniu środka i losowym promieniu lub obiektów typu linia o początku o współrzędnej (0,0,0) i losowym punkcie końcowym. Wygląd i działanie programu [6] testującego wykorzystanie platformy FireMonkey pokazane jest na rysunku 7, natomiast fragment kodu procedury wprowadzającej obiekty w programie AutoCAD pokazano na rysunku 8 [6]. Rys. 7. Wygląd i działanie programu testującego wykorzystanie platformy FireMonkey (wprowadzanie obiektów w przestrzeni modelu programu AutoCAD) 985

Rys. 8. Fragment kodu procedury wprowadzającej obiekty w obszarze modelu programu AutoCAD Powyższa procedura powoduje wprowadzenie w obszarze modelu obiektów typu okrąg lub linia. Procedura ta działa w następujący sposób: po pierwsze deklarowane są zmienne pomocnicze definiujące wprowadzane okręgów albo linii jako zmienne typu OLEVariant, w pętli o definiowanej długości (poprzez zmienną ILE) wprowadzane są obiekty (okręgi lub linie) w przestrzeni modelu programu AutoCAD, po zakończeniu operacji graficznych następuje pomiar czasu wprowadzania obiektów (poprzez użycie zmiennych Start i Stop), ostatnia operacja powoduje powiększenie rzutni, tak aby widoczne były wszystkie wprowadzone wcześniej obiekty. 986

4. WNIOSKI Do uzyskiwania dostępów do obiektów serwera automatyzacji (programu AutoCAD) służą interfejsy zwane interfejsami automatyzacji. Interfejs automatyzacji OLE udostępnia obiekty rysunkowe, elementy informacyjne, dokumenty, konfiguracje użytkowników i inne elementy programu AutoCAD. Wybór konkretnego interfejsu uzależniony jest od zadania, które ma inżynier czy programista rozwiązać. W referacie przedstawiono przykład wykorzystania systemów CAx w procesie automatyzacji zadań grafiki z wykorzystaniem platformy FireMonkey. W jednym projekcie nie można ze sobą łączyć dwóch różnych platform komponentowych projekty mogą być tworzone albo za pomocą biblioteki VCL, albo FireMonkey. Ponieważ obydwie platformy używają tych samych języków programowania, projekty niezawierające komponentów graficznych czy bezpośrednich odniesień do Windows API (Application Programming Interface) mogą zostać bezpośrednio przeniesione do platformy FireMonkey. Dostawca pakietu RAD Studio XE2, firma Embarcadero, nie wspiera bezpośrednio konwersji projektów pomiędzy platformami zalecając stworzenie środowiska graficznego GUI (Graphical User Interface) od nowa. Aczkolwiek, użytkownik planujący migrację projektów może skorzystać z narzędzi [8], które wspierają tego rodzaju migrację i pozwalają konwertować standardowe komponenty graficzne projektów VCL na ich odpowiedniki w FireMonkey. Pojawienie się platformy FireMonkey nie wyklucza użycia platformy VCL. Wśród programistów istnieje przekonanie, że platforma VCL przestanie być rozwijana dzień po tym jak firma Microsoft przestanie sprzedawać system operacyjny Windows. Przez wiele lat użytkownicy Delphi i C++ Buildera tworzyli oprogramowanie w VCL dla systemów Windows dostarczając różnego typu rozwiązania. Przeniesienie dużych projektów na platformę FireMonkey może być bardzo kosztowne, a przez to nieopłacalne z biznesowego punktu widzenia. VCL jest i będzie cały czas dostarczany programistom w celu umożliwienia dalszego rozwoju takich aplikacji. Z drugiej strony, komponenty niewizualne są przecież pisane w Delphi lub C++ i ich kod w dużym stopniu pokrywa się dla obydwu platform, co redukuje koszt utrzymywania równoległych platform komponentowych. Można zatem zadać sobie pytanie: której platformy używać? Nie ma konieczności przenoszenia projektów z VCL do FireMonkey. Istniejące projekty można dalej rozwijać w VCL. Natomiast, jeżeli w projekcie istotne znaczenie ma wieloplatformowość czy wykorzystanie wyrafinowanego interfejsu użytkownika (efektowniejsza grafika) warto zastanowić się nad migracją projektów do FireMonkey. Z samą platformą FireMonkey też warto się zapoznać i przy rozpoczynaniu nowych projektów świadomie zdecydować, która platforma będzie użyteczniejsza. LITERATURA [1] Czyżycki W., Lisowski E.: Automatyzacja zadań grafiki za pomocą Delphi, Helion, 2002. [2] Dudek M.: AutoLISP. Praktyczny kurs, Helion, 1997. [3] Warchulski J., Warchulski M.: Wykorzystanie systemów CAx do wizualizacji danych ze strzelań rakietowych, XIII Międzynarodowa Szkoła Komputerowego Wspomagania Projektowania, Wytwarzania i Eksploatacji, Jurata 11-15 maja 2009, materiały konferencyjne, s. 391-398. [4] Warchulski J., Warchulski M.: Przykłady automatyzacji zadań grafiki w programie AutoCAD, XIV Międzynarodowa Szkoła komputerowego wspomagania 987

projektowania, wytwarzania i eksploatacji, Jurata 10-14 maja 2010, materiały konferencyjne, s. 515-522. [5] Warchulski J., Warchulski M.: Program Test FireMonkey.exe, Wojskowa Akademia Techniczna, Warszawa 2012. [6] Warchulski J., Warchulski M.: Program AutoCAD FireMonkey.exe, Wojskowa Akademia Techniczna Warszawa, 2012. [7] www.embarcadero.com [8] http://www.midaconverter.com/ 988