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

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 Metody wprowadzania obiektów w programie AutoCAD za pomocą języka AutoLISP

WYKORZYSTANIE PLATFORMY FireMonkey DO AUTOMATYZACJI ZADAŃ GRAFIKI W PROGRAMIE AutoCAD

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

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

Zakres tematyczny dotyczący podstaw programowania Microsoft Office Excel za pomocą VBA

Aplikacje w środowisku VBA. Visual Basic for Aplications

Makropolecenia w Excelu

WIZUALIZACJA DANYCH ZE STRZELA RAKIETOWYCH Z WYKORZYSTANIEM SYSTEMÓW CAx

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

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

Politechnika Gdańska Wydział Elektrotechniki i Automatyki Katedra Inżynierii Systemów Sterowania

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

Podstawy Programowania 2

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

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

Wprowadzenie do programowania

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

Delphi podstawy programowania. Środowisko Delphi

Spis treści. Dzień 1. I Wprowadzenie (wersja 0906) II Dostęp do danych bieżących specyfikacja OPC Data Access (wersja 0906) Kurs OPC S7

Programowanie w języku Python. Grażyna Koba

TWORZENIE BLOKÓW I ATRYBUTÓW DLA PODANEGO PRZYKŁADU RYSUNKU ZESTAWIENIOWEGO. SPORZĄDZENIE LISTY ATRYBUTÓW

NIEZAWODNE ROZWIĄZANIA SYSTEMÓW AUTOMATYKI

Układy VLSI Bramki 1.0

Visual Basic for Applications. Wstęp

Spis treści. Rozdział 1. Aplikacje konsoli w stylu ANSI C i podstawowe operacje w Visual C

11.3 Definiowanie granic obszaru przeznaczonego do kreskowania

Java w 21 dni / Rogers Cadenhead. Gliwice, cop Spis treści. O autorze 11. Wprowadzenie 13 TYDZIEŃ I JĘZYK JAVA

AUTOCAD MIERZENIE I PODZIAŁ

Politechnika Poznańska Wydział Budowy Maszyn i Zarządzania

Rozdział ten zawiera informacje o sposobie konfiguracji i działania Modułu OPC.

Budowa i oprogramowanie komputerowych systemów sterowania. Laboratorium 4. Metody wymiany danych w systemach automatyki DDE

SZYBKO ZROZUMIEĆ VISUAL BASIC 2012 Artur Niewiarowski -

Program szkolenia VBA (VISUAL BASIC FOR APPLICATIONS) W EXCELU PRZEKROJOWY.

Blockly Kodowanie pomoc.

Ćwiczenie Nr 6 Przegląd pozostałych najważniejszych mechanizmów systemu operacyjnego Windows

Kurs OPC S7. Spis treści. Dzień 1. I OPC motywacja, zakres zastosowań, podstawowe pojęcia dostępne specyfikacje (wersja 1501)

Implementacja aplikacji sieciowych z wykorzystaniem środowiska Qt

SYLABUS DOTYCZY CYKLU KSZTAŁCENIA realizacja w roku akademickim 2016/2017

Programowanie komputerowe Computer programming

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

Języki skryptowe w programie Plans

Użycie Visual Basic for Applications ("VBA")

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

PROE wykład 2 operacje na wskaźnikach. dr inż. Jacek Naruniec

Programowanie obiektowe

Programowanie dla początkujących w 24 godziny / Greg Perry, Dean Miller. Gliwice, cop Spis treści

Wprowadzenie do biblioteki klas C++

Program szkoleniowy. 24 h dydaktycznych (18 h zegarowych) NAZWA SZCZEGÓŁY CZAS

AUTOMATYZACJA PRACY Z UŻYCIEM MAKR. Tom XII NPV WSP.KORELACJI ROZKŁ.EXP JEŻELI COS KOMÓRKA VBA DNI.ROBOCZE ILOCZYN LOG SUMA CZY.

Korzystanie z edytora zasad grupy do zarządzania zasadami komputera lokalnego w systemie Windows XP

Po uruchomieniu programu nasza litera zostanie wyświetlona na ekranie

Widoczność zmiennych Czy wartości każdej zmiennej można zmieniać w dowolnym miejscu kodu? Czy można zadeklarować dwie zmienne o takich samych nazwach?

XQTav - reprezentacja diagramów przepływu prac w formacie SCUFL przy pomocy XQuery

Temat: Ułatwienia wynikające z zastosowania Frameworku CakePHP podczas budowania stron internetowych

Rok akademicki: 2013/2014 Kod: STC s Punkty ECTS: 3. Poziom studiów: Studia I stopnia Forma i tryb studiów: -

ODWZOROWANIE SYTUACJI TAKTYCZNEJ WOJSK OPL Z WYKORZYSTANIEM SYSTEMU CAx

GRAITEC Advance PowerPack 2016 R2

Trochę o plikach wsadowych (Windows)

1 Podstawy c++ w pigułce.

Informatyczne podstawy projektowania Kod przedmiotu

Zastosowania Robotów Mobilnych

Makropolecenia w PowerPoint Spis treści

KONFIGURACJA SIECIOWA SYSTEMU WINDOWS

Zastanawiałeś się może, dlaczego Twój współpracownik,

Politechnika Krakowska im. Tadeusza Kościuszki. Karta przedmiotu. obowiązuje studentów rozpoczynających studia w roku akademickim 2016/2017

Instalacja i konfiguracja IIS-a na potrzeby dostępu WEB do aplikacji Wonderware InTouch Machine Edition

WYKORZYSTANIE PROGRAMU AUTOCAD DO GENEROWANIA PUNKTÓW WĘZŁOWYCH POLILINII

Przejrzystość, intuicyjny charakter i łatwość oprogramowania sterowników FATEK.

WPROWADZENIE DO ŚRODOWISKA SCICOS

znajdowały się różne instrukcje) to tak naprawdę definicja funkcji main.

Podstawy Programowania

Politechnika Krakowska im. Tadeusza Kościuszki. Karta przedmiotu. obowiązuje studentów rozpoczynających studia w roku akademickim 2014/2015

ActiveXperts SMS Messaging Server

Program szkolenia VBA (VISUAL BASIC FOR APPLICATIONS) W EXCELU PODSTAWOWY.

Programowanie urządzeń mobilnych. projekt 6 ( )

System zarządzający grami programistycznymi Meridius

Laboratorium Technologii Informacyjnych. Projektowanie Baz Danych

ArtPlayer oprogramowanie do odtwarzania plików video sterowane Artnet/DMX V1.0.1

Wykład Ćwiczenia Laboratorium Projekt Seminarium

AKADEMIA MORSKA W SZCZECINIE WI-ET / IIT / ZTT. Instrukcja do zajęc laboratoryjnych nr 1 AUTOMATYZACJA I ROBOTYZACJA PROCESÓW PRODUKCYJNYCH

Czym są właściwości. Poprawne projektowanie klas

AutoCAD LT praca na obiektach rastrowych i nakładanie barw z palety RGB na rysunki.

PRZEWODNIK PO PRZEDMIOCIE

MentorGraphics ModelSim

ROZSZERZANIE MOŻLIWOŚCI...

Funkcje i instrukcje języka JavaScript

Kurs Wizualizacja z WinCC SCADA - Zaawansowany. Spis treści. Dzień 1. I VBS w WinCC podstawy programowania (zmienne, instrukcje, pętle) (wersja 1410)

Program szkolenia PODSTAWY VBA (VISUAL BASIC FOR APPLICATIONS) I FORMULARZE.

TECHNOLOGIE INTERNETOWE WYKŁAD 6. JavaScript Funkcje i obiekty

PRZEWODNIK PO PRZEDMIOCIE

Zakres tematyczny dotyczący kursu PHP i MySQL - Podstawy pracy z dynamicznymi stronami internetowymi

Obiektowy PHP. Czym jest obiekt? Definicja klasy. Składowe klasy pola i metody

Pracownia internetowa w każdej szkole (edycja Jesień 2007)

Ćwiczenie numer 4 JESS PRZYKŁADOWY SYSTEM EKSPERTOWY.

Programowanie komputerowe. Geodezja i Kartografia I stopień (I stopień / II stopień) akademicki (ogólno akademicki / praktyczny)

Programowanie sieciowe Network programming PRZEWODNIK PO PRZEDMIOCIE

IBM SPSS Statistics Wersja 23. Konfigurowanie ułatwień dostępu

Transkrypt:

INFORMATYKA TECHNICZNA Badanie możliwości wykorzystania interfejsu automatyzacji OLE w systemie CAx 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++). 2. INTERFEJS AUTOMATYZACJI OLE 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 zatem umożliwia 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. 2.1. Zasady automatyzacji OLE ActiveX Automation używana jest w programie AutoCAD dla określenia automatyzacji OLE. Przy wykorzystaniu technologii ActiveX można tworzyć i oddziaływać na obiekty programu AutoCAD z innej aplikacji, działającej jako sterownik Automatyzacji. Oznacza to, że mechanizm ActiveX umożliwia programowanie zadań wykorzystujących różne aplikacje. Przy jej wykorzystaniu AutoCAD prezentuje obiekty programowalne, opisane przez AutoCAD jako Object Model, które mogą być tworzone, edytowane i poddawane różnym operacjom przez inne aplikacje. Tak utworzone obiekty są nazywane obiektami automatyzacji. Obiekty te są obsługiwane przez tzw. metody, właściwości i zdarzenia. Metody są funkcjami, które określają działanie na obiekcie. Właściwości zaś są funkcjami, które ustalają lub odczytują informacje o stanie obiektu. Zdarzenia są zdefiniowanymi przez użytkownika operacjami lub wystąpieniami, na które program reaguje. Każda aplikacja mająca dostęp do AutoCAD Object Model jest sterownikiem automatyzacji. 2.2. Interfejs automatyzacji OLE programu AutoCAD Za pomocą interfejsu automatyzacji OLE, określanego w programie AutoCAD jako ActiveX Automation, można uzyskać dostęp do poszczególnych obiektów programu AutoCAD. Struktura obiektów interfejsu automatyzacji OLE jest bardzo rozbudowana. Obiektami są między innymi elementy rysunkowe, bloki, kolekcje obiektów (zbiory obiektów) itp. Dostęp do nich można uzyskać za pomocą interfejsu automatyzacji OLE. Głównym obiektem interfejsu jest AutoCAD.Application, do którego przynależą pozostałe

obiekty. Najczęściej używanym przy pracach nad rysunkiem jest obiekt typu Document (w programie AutoCAD jest to aktywne okno z rysunkiem), do którego przynależą między innymi obiekty generujące składniki rysunku oraz ustawienia aktualnego rysunku. Innym bardzo ważnym obiektem jest obiekt Model Space, który jest kolekcją wszystkich elementów w przestrzeni modelu. Nowe obiekty do tej kolekcji można dodawać za pomocą metody AddTypSkładnika. 2.3. Nawiązanie połączenia z serwerem OLE 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 2009. 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 GetOleObject, która udostępnia obiekty aktywnego programu. Uzyskanie połączenia z serwerem OLE dla programów pisanych w Delphi przedstawiono w module PolaczAutoCAD [1]. 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 wersjach 2000, 2002, 2004, 2006, 2007, 2008, 2009 i 2010 programu AutoCAD, przedstawia się następująco:

Rys. 1. Kod modułu PolaczAutoCAD 2.4 Generowanie podstawowych elementów z wykorzystaniem automatyzacji OLE Pierwszy przykład automatyzacji dotyczył będzie wprowadzania w obszarze modelu programu AutoCAD sinusoidy oraz funkcji f(x)= 0.001x2 0.36x+125. Działanie programu pokazane jest na rysunku nr 2, natomiast kody procedur wprowadzających krzywizny w postaci obiektów typu polilinia w programie AutoCAD pokazano na rysunku nr 3 i 4. Rys. 2. Działanie programu AutoCAD SINUS [3]

Rys. 3. Kod procedury wprowadzającej funkcję sinus Rys. 4. Kod procedury wprowadzającej funkcję f(x) Powyższe dwie procedury powodują wprowadzenie w obszarze modelu obiektów typu polilinia. Działają one podobnie, po pierwsze deklarowane są jako typ OLEVariant zmienne pomocnicze definiujące wprowadzane krzywizny i ich węzły (Polilinia_Zarys, Wezel), następnie do pustej polilinii dodawane są nowe węzły według wcześniejszych założeń. 3. JĘZYK AutoLISP i ŚRODOWISKO VisualLISP AutoLISP jest specjalną odmianą języka programowania LISP pracującą w środowisku AutoCADa. W pełnej wersji dołączony został w AutoCadzie 2.18 (Release 6), i od tego czasu możliwości programu i języka są rozszerzane, dodawane są nowe funkcje i rozszerzane stare.

AutoLISP operuje w arytmetyce liczb rzeczywistych, potrafi przetwarzać zmienne liczbowe, tekstowe i listy, obsługiwać pliki i rysować obiekty używając do tego interpretera graficznego AutoCADa. Ogromną zaletą AutoLISPu jest możliwość pisania skryptów rysujących obiekty parametryczne np. na podstawie wyników z bazy danych czy plików tekstowych [2]. W AutoLISPie możemy wykorzystywać komendy AutoCADa, modyfikować już istniejące, tworzyć własne komendy, a także pisać funkcje, które będzie można wywoływać tak jak komendy AutoCADa. Dzięki temu mamy możliwość dostosowania AutoCADa do własnych potrzeb i możliwości. Ponadto AutoLISP pozwala na automatyzację wielokrotnego powtarzania rysowanych elementów, dzięki czemu zwiększa się wydajność i spójność projektów. Niewątpliwą zaletą AutoLISPu jest możliwość sprawdzenia pisanego programu w linii poleceń, co pozwala na bieżąco wprowadzać ewentualne poprawki. Ważną cechą AutoLISPu jest to, że programy napisane dla starszych wersji AutoCADa, będą działały w nowszych wersjach, bez żadnych lub z niewielkimi zmianami. Do pisania programów w języku AutoLISP wystarczy zwykły edytor tekstowy. Do AutoCADa dołączony jest jednak bardzo wygodny edytor Visual LISP, który ma własny edytor i kompilator oraz posiada narzędzia służące do debugowania i podglądania wartości zmiennych. Ułatwiają one np. znajdowanie brakujących nawiasów czy znajdowanie ewentualnych błędów.

Rys. 5. Wybrane elementy środowiska VisualLISP Język programowania AutoLISP i środowisko VisualLISP programu AutoCAD zostały wykorzystane do opracowania przykładowej nowej komendy sinus, która umożliwia automatyczne wprowadzenie w obszarze modelu sinusoidy składającej się z obiektów typu punkt i typu blok. Kod programu Sin_XY.LSP przedstawiony jest poniżej. Rys. 6. Kod programu wprowadzającego funkcję sinus (AutoLISP)

Powyższy program działa w następujący sposób: - po pierwsze tworzona jest nowa komenda programu AutoCAD sinus, która nie posiada żadnych parametrów wejściowych, - zmienna systemowa cmdecho odpowiadająca za wyświetlanie komunikatów programu AutoCAD w linii poleceń jest ustawiana na wartość równą 0 spowoduje to brak wyświetlania historii poleceń w trakcie działania programu, - pod wartość zmiennej pomocniczej STL odczytywane są bieżące ustawienia sposobu naprowadzania na punkty charakterystyczne obiektów (wartość zmiennej osmode ), - zmienna systemowa attdia odpowiadająca za tryb wprowadzania bloków z atrybutami ustawiana jest na wartość 1 spowoduje to że ewentualne wartości atrybutów bloków wprowadzane byłyby z poziomu okna dialogowego a nie z linii poleceń, - zmienna systemowa osmode ustawiane jest na wartość 16384 co spowoduje wyłączenie naprowadzania na stałe tryby lokalizacji obiektów, - dwie następne linie to deklaracja pustych list (DANE_X i DANE_Y), - dwie następne pętle repeat to wprowadzenie do listy DANE_X macierzy danych od 359 do 0, natomiast do listy DANE_Y wartości funkcji sinus o amplitudzie równej 100, - następnie następuje odwrócenie kolejności list (spowodowane jest to tym iż funkcja cons dodawała do list DANE_X i DANE_Y obiekty na początku listy), - ostatnia pętla programu powoduje wprowadzenie trajektorii sinusoidy w postaci punktów oraz wcześniej zdefiniowanego bloku o nazwie a.dwg (przykładowej geometrii z kątem obrotu od 0 do 359 stopni), - ostatnia operacja powoduje przywrócenie wartości początkowych zmiennym cmdecho i osmode. Działanie powyższego programu przedstawione jest na poniższym rysunku. Rys. 7. Działanie programu wprowadzającego funkcję sinus (w kółku wprowadzono powiększony symbol bloku który jest wprowadzany w punktach trajektorii sinusoidy) 3. ZADANIA DO WYKONANIA W RAMACH ĆWICZENIA LABORATORYJNEGO 1. Za pomocą języka programowania AutoLISP i środowiska VisualLISP programu AutoCAD opracować nową komendę sinus. 2. Wykonać analizę czasu działania programów wykorzystujących interfejs automatyzacji OLE na podstawie przykładowych programów przekazanych przez prowadzącego zajęcia.

4. PODSUMOWANIE Do uzyskiwania dostępów do obiektów OLE serwera automatyzacji (programu AutoCAD) służą interfejsy zwane interfejsami automatyzacji OLE. Interfejs automatyzacji OLE udostępnia obiekty rysunkowe, elementy informacyjne, dokumenty, konfiguracje użytkowników i inne elementy programu AutoCAD. Przy pracy z programem AutoCAD można wykorzystać następujące interfejsy automatyzacji: ActiveX Automation, VBA (Visual Basic for Applications), język AutoLISP i środowisko programowania Visual LISP, ObjectARX,.NET. Wybór konkretnego interfejsu uzależniony jest od zadania który ma inżynier czy programista rozwiązać. W przypadku wprowadzania w obszarze modelu obiektów bez wykorzystania wyrafinowanych okien dialogowych czy skomplikowanego interfejsu można wykorzystać język AutoLISP, natomiast w przypadku budowania skomplikowanych aplikacji zalecane jest wykorzystanie interfejsu typu klient-serwer. LITERATURA [1] Czyżyk W., Lisowski E.: Automatyzacja zadań grafiki za pomocą Delphi. Helion 2002. [2] Dudek M.: AutoLISP. Praktyczny kurs. Helion 1997. [3] Warchulski J., Warchulski M.: Program AutoCAD - SINUS, Wojskowa Akademia Techniczna, Warszawa 2010. ZAŁĄCZNIK [1] Jacek Warchulski, Marcin Warchulski, Kod modułu PolaczAutoCAD.pas, Wojskowa Akademia Techniczna, Warszawa, 2012.