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



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 DO AUTOMATYZACJI ZADAŃ GRAFIKI W PROGRAMIE AutoCAD

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

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

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

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

ECDL/ICDL CAD 2D Moduł S8 Sylabus - wersja 1.5

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

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?

37. Podstawy techniki bloków

Programowanie obiektowe

Aplikacje w środowisku VBA. Visual Basic for Aplications

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

Wprowadzenie do biblioteki klas C++

TWORZENIE RYSUNKU PROTOTYPOWEGO

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

Po uruchomieniu programu nasza litera zostanie wyświetlona na ekranie

Programowanie obiektowe. Literatura: Autor: dr inŝ. Zofia Kruczkiewicz

Informatyczne podstawy projektowania Kod przedmiotu

ROZSZERZANIE MOŻLIWOŚCI...

Wprowadzenie do programowania

I. Instalacja programu. Dopasowanie CADprofi do programu CAD

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

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

Visual Basic dla AutoCAD

Delphi podstawy programowania. Środowisko Delphi

MATLAB tworzenie własnych funkcji

Programowanie obiektowe

5.2. Pierwsze kroki z bazami danych

Wprowadzenie do programowania w języku Visual Basic. Podstawowe instrukcje języka

BAZY DANYCH MAKRA I PRZYCISKI. Microsoft Access. Adrian Horzyk. Akademia Górniczo-Hutnicza

Księgarnia PWN: Andrzej Jaskulski - AutoCAD 2010/LT Podstawy projektowania parametrycznego i nieparametrycznego

biegle i poprawnie posługuje się terminologią informatyczną,

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

Program V-SIM tworzenie plików video z przebiegu symulacji

Król Łukasz Nr albumu:

6. Tworzenie nowego projektu

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

MentorGraphics ModelSim

Plan nauczania informatyki Opracował: mgr Daniel Starego

Programowanie w języku Python. Grażyna Koba

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

Celem ćwiczenia jest zapoznanie się z podstawowymi funkcjami i pojęciami związanymi ze środowiskiem AutoCAD 2012 w polskiej wersji językowej.

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

Podstawy programowania. Wykład Funkcje. Krzysztof Banaś Podstawy programowania 1

SYLABUS/KARTA PRZEDMIOTU

Advance CAD 2016 SP1. W tym dokumencie opisano ulepszenia w programie Advance CAD 2016 z dodatkiem Service Pack 1. Co nowego w Advance CAD 2016 SP1

PRZEWODNIK PO PRZEDMIOCIE

7. Podstawy zarządzania szablonami

Dodatkowo planowane jest przeprowadzenie oceny algorytmów w praktycznym wykorzystaniu przez kilku niezależnych użytkowników ukończonej aplikacji.

Wymagania edukacyjne na ocenę z informatyki klasa 3

Programowanie Obiektowe GUI

TWORZENIE ELEMENTÓW ZNORMALIZOWANYCH W PROGRAMIE AutoCAD

Wykład 8: klasy cz. 4

Dodanie nowej formy do projektu polega na:

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

GRAFIKA INŻYNIERSKA POLITECHNIKA ŚLĄSKA WYDZIAŁ ELEKTRYCZNY KATEDRA MECHATRONIKI. Instrukcja do ćwiczenia laboratoryjnego.

Podstawy Programowania Obiektowego

Laboratorium Systemów SCADA

Trochę o plikach wsadowych (Windows)

INFORMATYKA, TECHNOLOGIA INFORMACYJNA ORAZ INFORMATYKA W LOGISTYCE

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

COMARCH IT AKADEMIA. Programista VBA w Microsoft Excel (microbootcamp)

Utworzenie pliku. Dowiesz się:

KONFIGURACJA SIECIOWA SYSTEMU WINDOWS

Cel: Przypisujemy przyciskom określone funkcje panel górny (Panel1)

Przedmiotowy system oceniania z informatyki

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

1. Menadżer raportów 2 2. Edytor parametrów 3 3. Parametr główny 4 4. Parametr zależny 5 5. Zestawienie atrybutów 6 6.

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

Wykład A1. AutoCAD Dr inż. Jarosław Bydłosz

Ćwiczenie nr 4 INSTRUKCJA LABORATORYJNA

PRYWATNA WYŻSZA SZKOŁA BUSINESSU, ADMINISTRACJI I TECHNIK KOMPUTEROWYCH S Y L A B U S

Rozdział 5: Style tekstu

VBA obiekty AutoCADa 1

Języki skryptowe w programie Plans

Advance CAD 2016 SP2. W tym dokumencie opisano ulepszenia w Advance CAD Service Pack 2. Co nowego w Advance CAD 2016 SP2

Ćwiczenie numer 4 JESS PRZYKŁADOWY SYSTEM EKSPERTOWY.

Wprowadzenie do programowania w języku Visual Basic. Podstawowe instrukcje języka

Sylabus Moduł 4: Grafika menedżerska i prezentacyjna

Blockly Kodowanie pomoc.

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

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

System CAD w zastosowaniu technicznym szkolenie komputerowe

Organizacja zajęć BAZY DANYCH II WYKŁAD 1. Plan wykładu. SZBD Oracle

Technologie informacyjne - wykład 12 -

VBA w Excel Lekcja ta ma przybliżyć pojęcia związane z programowaniem w pakiecie Office. Poniższe przykłady związane są z wersją Office2007.

KOMPUTEROWE SYSTEMY GRAFIKI INŻYNIERSKIEJ

REFERAT PRACY DYPLOMOWEJ

Informacje ogólne. Karol Trybulec p-programowanie.pl 1. 2 // cialo klasy. class osoba { string imie; string nazwisko; int wiek; int wzrost;

Spis treści CZĘŚĆ I. NIEPARAMETRYCZNE PROJEKTOWANIE 2D...31

Archiwum DG 2016 PL-SOFT

Visual Basic w programie Excel

Ćwiczenie nr 10 Style wydruku, wydruk

Atrybuty bloki z atrybutami, wyciągi atrybutów.

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

Transkrypt:

INFORMATYKA TECHNICZNA Metody wprowadzania obiektów w programie AutoCAD za pomocą języka AutoLISP 1. WPROWADZENIE Cel ćwiczeń: zapoznanie z możliwościami wykorzystania systemów CAx w procesie automatyzacji zadań grafiki, przeanalizowanie możliwości wprowadzania obiektów z zastosowaniem języka programowania AutoLISP. 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. Tworzenie 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,3]. Wprowadzanie elementów graficznych w rysunku programu AutoCAD przy pomocy języka AutoLISP może być wykonywane na trzy sposoby [5,6]: wywołując funkcję command z argumentami będącymi odpowiednimi wywołaniami danego polecenia programu AutoCAD, wywołując funkcję entmake z argumentem w postaci listy kodów DXF wprowadzanego elementu, wywołując funkcję vla-add będącą metodą ActiveX (OLE) z odpowiednimi argumentami. 2. JĘZYK AutoLISP I ŚRODOWISKO VisualLISP AutoLISP jest specjalną odmianą języka programowania LISP (List Processing) pracującą w środowisku programu AutoCAD. Język AutoLISP pozwala na przetwarzanie zmiennych liczbowych, tekstowych i list, umożliwia obsługiwanie plików i wprowadzanie obiektów używając do tego celu interpretera graficznego programu AutoCAD. Ogromną zaletą języka AutoLISP jest możliwość tworzenia poleceń które w sposób automatyczny wprowadzają obiekty, np. na podstawie wyników z bazy danych czy danych zawartych w plikach tekstowych. Programy języka AutoLISP tworzone są w środowisku VisualLISP, które posiada własny edytor i kompilator. Rys. 1. Wybrane elementy środowiska VisualLISP

Język programowania AutoLISP i środowisko VisualLISP programu AutoCAD zostały wykorzystane do opracowania nowego polecenia które umożliwia wprowadzanie w obszarze modelu programu AutoCAD obiektów za pomocą funkcji command, entmake i vla-add [4]. Nowoopracowane polecenie it umożliwia automatyczne wprowadzenie w obszarze modelu testowych obiektów graficznych w postaci linii o zmiennej długości. Kod programu IT.LSP przedstawiony jest poniżej [4]. Rys. 2. Kod programu IT.LSP

Powyższy program działa w następujący sposób: - po pierwsze tworzone jest nowe polecenie programu AutoCAD it, które 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 osmode ustawiana jest na wartość 16384 co spowoduje wyłączenie naprowadzania na stałe tryby lokalizacji obiektów, - funkcja (vl-load-com) pozwala na wywołanie funkcji pozwalających na programowanie obiektowe, do zmiennej globalnej _acad_ przypisywany jest dokument programu AutoCAD, natomiast do zmiennej _model_ przestrzeń modelu aktywnego rysunku, - następna część programu pozwala na wybranie metody wprowadzanych obiektów oraz inicjuje pomiar czasu wykonywania poleceń, - zdefiniowana pętla repeat pozwala na wprowadzenie obiektów typu linia za pomocą poleceń typu command, vla-add, czy entmake, - po wprowadzeniu obiektów w obszarze modelu programu AutoCAD następuje wyświetlenie czasu działania programu, - ostatnia operacja powoduje przywrócenie wartości początkowych zmiennym systemowym cmdecho i osmode. Efekt działania nowoopracowanego polecenia it przedstawia poniższy rysunek. Rys. 3. Działanie polecenia it (fragment wprowadzonych obiektów) 3. WYKORZYSTANIE FUNCJI COMMAND W środowisku bardziej doświadczonych programistów, używanie funkcji command jest traktowane jako działanie "mało profesjonalne", widziane jest jako przejaw nieznajomości języka programowania i jest zarezerwowane raczej dla początkujących użytkowników programu, głównie z następujących powodów [5,6]: używanie funkcji command nie jest właściwie programowaniem a jedynie tworzeniem trochę bardziej skomplikowanych skryptów, funkcja command ograniczona jest tylko do działań możliwych w ramach opcji polecenia które jest wywoływane,

składnia poleceń może zmieniać się w różnych wersjach programu AutoCAD, przez co zapewnienie zgodności wykonywania działań, nie jest całkowicie zapewnione, cześć poleceń wykorzystujących okna dialogowe, utrudnia, a czasem uniemożliwia zastosowanie funkcji command, wykorzystywanie funkcji command wymaga wprowadzenia dodatkowych czynności (wyłączenie trybów lokalizacji, echa linii poleceń, itp.) wywołanie funkcji command jest możliwe dla działań tylko w aktywnym obszarze. Pomimo powyżej wymienionych wad, stosowanie funkcji command usprawiedliwione jest w przypadku: gdy wykonanie działania nie jest możliwe (lub jest bardzo utrudnione) innymi sposobami, testowania programu, z założeniem zastąpienia command innym wyrażeniem w przyszłości. Wygląd linii poleceń programu AutoCAD, podczas działania polecenia it programu IT.LSP z wykorzystaniem metody wprowadzania obiektów za pomocą funkcji command, przedstawiony jest na poniższym rysunku. Rys. 4. Działanie programu wprowadzającego obiekty za pomocą funkcji command Czas wprowadzenia 1000 obiektów typu linia dla tego przypadku jest równy 0.624 [s]. 4. WYKORZYSTANIE FUNCJI ENTMAKE Jeszcze przed pojawieniem się środowiska VisualLISP, funkcja entmake była jedynym alternatywnym do funkcji command sposobem tworzenia elementów rysunku w języku AutoLISP. Przez fakt ingerowania bezpośrednio w rysunkową bazę danych, była ona znacznie szybsza od funkcji command. W skrócie działanie funkcji entmake sprowadza się do wywołania funkcji z argumentem w postaci listy par kropkowych (kodów DXF) rysowanego obiektu. Podczas wywołania funkcji entmake, część kodów DXF i wartości z nimi związanych niezdefiniowanych przez użytkownika, przyjmuje automatycznie wartości domyślne definiowane przez program AutoCAD. Funkcja entmake z założenia ignoruje stałe tryby lokalizacji i nie wyświetla w linii poleceń żadnych zgłoszeń. Wymaga za to znajomości struktury DXF rysunku i z tego powodu, używanie jej jest bardziej pracochłonne [5,6]. Dodatkowymi zaletami funkcji entmake są: możliwość tworzenia obiektów niedostępnych z poziomu funkcji command (np. bloki anonimowe),

możliwość tworzenia obiektów w innym obszarze niż aktualny (obszar modelu, obszar papieru), możliwość tworzenia obiektów w dowolnym układzie współrzędnych, możliwość tworzenia obiektów ze zdefiniowanymi cechami indywidualnymi (kolor, rodzaj linii, warstwa). Pewne ograniczenia funkcji entmake, utrudniają (a czasem uniemożliwiają) jej wykorzystanie w praktyce. Przykładem może być tworzenie skomplikowanych kreskowań, regionów, brył czy rzutni w obszaru papieru. Wygląd linii poleceń programu AutoCAD, podczas działania polecenia it programu IT.LSP z wykorzystaniem metody wprowadzania obiektów za pomocą funkcji entmake, przedstawiony jest na poniższym rysunku. Rys. 5. Działanie programu wprowadzającego obiekty za pomocą funkcji entmake Czas wprowadzenia 1000 obiektów typu linia dla tego przypadku jest równy 0.203 [s]. 5. WYKORZYSTANIE FUNCJI VLA-ADD Wraz z pojawieniem się języka VBA (Visual Basic for Application) opartego na języku programowania VB (Visual Basic), stworzony został model obiektów programu AutoCAD oraz umożliwiono dostępu do tego modelu z poziomu języka VisualLISP za pomocą funkcji vla-add. Wykorzystywanie metod służących do tworzenia obiektów rysunkowych stało się od tego momentu łatwiejsze w porównaniu z funkcją entmake oraz bardziej elastyczne niż za pomocą funkcji command. Wykorzystanie funkcji vla-add pozwala na: tworzenie obiektów w dowolnym obszarze rysunku (obszar modelu, obszar papieru, definicja bloku), tworzenie obiektów w dowolnym układzie współrzędnych, dostęp do rysunkowej bazy danych innych rysunków przez ObjectDBX, tworzenie obiektów podczas aktywności okna dialogowego (DCL). Ze względu na hierarchiczność obiektowego modelu rysunku programu AutoCAD, stosowanie metod tworzących obiekty, wymaga zrozumienia budowy tego modelu, przez co wydawać się może ono trudniejsze niż stosowanie funkcji entmake czy command [5,6]. Obiekty programu AutoCAD są zorganizowane w strukturę drzewiastą, przy czym obiektem podstawowym jest aplikacja (patrz poniższy rysunek).

Rys. 6. Fragment obiektowej struktury programu AutoCAD Obiektowy model programu AutoCAD można porównać do struktury organizacji danych na dysku komputera. Aplikacja programu AutoCAD odpowiada głównemu folderowi dysku, na niższym poziomie struktury znajdują się foldery odpowiadające dokumentom (w tym aktywnemu rysunkowi programu AutoCAD), na jeszcze niższym poziomie znajdują się podfoldery czyli obszar modelu i obszar papieru (w których zlokalizowane są graficzne obiekty rysunkowe programu AutoCAD). Wygląd linii poleceń programu AutoCAD, podczas działania polecenia it programu IT.LSP z wykorzystaniem metody wprowadzania obiektów za pomocą funkcji vla-add, przedstawiony jest na poniższym rysunku. Rys. 7. Działanie programu wprowadzającego obiekty za pomocą funkcji VLA-ADD Czas wprowadzenia 1000 obiektów typu linia dla tego przypadku jest równy 0.297 [s]. 4. WNIOSKI Podczas ćwiczenia przedstawiono metody wprowadzania obiektów w programie AutoCAD za pomocą języka AutoLISP i środowiska VisualLISP. Wybór konkretnej metody uzależniony jest od zadania który ma inżynier czy programista rozwiązać. Oczywistym jest ze początkujący użytkownik, nawet posługując się najprostszą techniką (command), napotka i tak dużo problemów z napisaniem bezbłędnie działającego

programu. Wystarczy zdać sobie sprawę że łączna ilość poleceń (wraz z ich często rozbudowanymi opcjami) oraz zmiennych systemowych, w najnowszej wersji programu AutoCAD, obejmuje ponad 3000 powiązanych ze sobą zagadnień. Bez podstawowej wiedzy na temat struktury formatu DXF oraz opanowania technik operacji na listach, nie jest możliwe efektywne wykorzystanie funkcji entmake. Podobnie rzecz ma się ze stosowaniem techniki ActiveX. Jeżeli podstawowym kryterium jest czas wykonywania programu należy wykorzystywać funkcje w następującej kolejności: entmake, vla-add a następnie command. Innym kryterium wyboru metody wprowadzania obiektów jest określenie możliwości programu. W większości (najprostszych) zastosowań, te same zadania mogą być realizowane zamiennie przez funkcje command, entmake czy metody AciveX. Jednak w szczególnych przypadkach, wykorzystuje się techniki które w ogóle mogą zrealizować zdefiniowane zadanie, mogą je wykonać najlepiej (najefektywniej, najszybciej) i jednocześnie są skonstruowane tak aby zbudować jak najmniej skomplikowany kod programu. Innymi słowy należy wykorzystywać wszystko to, co daje zakładany rezultat. LITERATURA [1] Czyżycki W., Lisowski E.: Automatyzacja zadań grafiki za pomocą Delphi. Helion 2002. [2] Dudek M.: AutoLISP. Praktyczny kurs. Helion 1997. [3] Jacek Warchulski, Marcin Warchulski, Przykłady automatyzacji zadań grafiki w programie AutoCAD, XIV Międzynarodowa Szkoła Komputerowego Wspomagania Projektowania, Wytwarzania i Eksploatacji, Jurata 10-14 maja 2010, Materiały konferencyjne, s. 515-522. [4] Jacek Warchulski, Marcin Warchulski, Program IT.LSP, Wojskowa Akademia Techniczna, Warszawa, 2012. [5] http://forum.cad.pl/autocad.html [6] http://www.kojacek.republika.pl