INFORMATYKA TECHNICZNA Badanie możliwości wykorzystania języka AutoLISP i środowiska VisualLISP 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++) [1,2]. 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 skomplikowanych obiektów zalecane jest wykorzystanie interfejsu typu klient-serwer, natomiast w przypadku tworzenia własnych poleceń można do tego celu wykorzystać język List Processing [3,4]. 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 przetwarzać zmienne liczbowe, tekstowe i listy, 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. Tab. 1a. Wybrane elementy środowiska VisualLISP - linia poleceń 1
Tab. 1b. Wybrane elementy środowiska VisualLISP - definiowanie pakietu uruchomieniowego (najczęściej wykorzystywanych programów *.lsp) - rozwijane menu pozwalające uruchomienie i edycję programów 3. ZADANIA DO WYKONANIA W RAMACH ĆWICZENIA LABORATORYJNEGO Za pomocą języka programowania AutoLISP i środowiska VisualLISP programu AutoCAD opracować nową komendę 3p, która umożliwi automatyczne wprowadzenie w obszarze modelu okręgu przechodzącego przez trzy kolejno wskazane punkty. 2
Na poniższym rysunku przedstawiono rzut polilinii na płaszczyznę XY globalnego układu współrzędnych. Punkty P1, P2 i P3 przedstawiają trzy kolejne punkty znajdujące się na wprowadzonej polilinii. Rys. 1. Okręg przechodzący przez trzy kolejne punkty polilinii Współrzędne poszczególnych punktów (p1.x, p1.y, p2.x, p2.y p3.x, p3.y) służą do wyznaczenia położenia środka (X s,y s ) i promienia okręgu przechodzącego przez te punkty. X = 1 2 p. p. + p. p. p. p. + p. p. p. p. + p. p. + + 1 2 p. p. p. p. p. p. p. p (1.1). p. p. Y = 1 2 p. p. + p. p. + p. p. + p. p. + p. p. + p. p. + + 1 2 p. p. p. p. + p. p. p. p. + p. p. p. p. (1.2) Język programowania AutoLISP wykorzystuje specyficzne operatory działań arytmetycznych, w związku z tym kod programu pozwalający na obliczenie parametrów środka okręgu jest bardziej rozbudowany (patrz poniższy algorytm). 3
Rys. 2. Fragment kodu programu wyznaczający współrzędne środka okręgu przechodzącego przez trzy punkty Rys. 3. Fragment kodu programu 01-Okrąg3pkt.lsp Wynik działania polecenia 3p przedstawiony jest poniżej. 4
Rys. 4. Wynik działania polecenia 3p 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.05.2010, Materiały konferencyjne, ISBN 978-83-61486-57-2, s. 515-522. [4] Jacek Warchulski, Marcin Warchulski, Wykorzystanie języka AutoLISP i VisualLISP do analizy trajektorii lotu rakiety przeciwlotniczej w programie AutoCAD, XV Międzynarodowa Szkoła komputerowego wspomagania projektowania, wytwarzania i eksploatacji, Jurata 9-13 maja 2011, Materiały Konferencyjne, ISBN 978-83-61486-94- 7, s. 389-396. ZAŁĄCZNIKI [1] Dodatek A. Spis funkcji AutoLISPu. AutoLISP. Praktyczny kurs. Helion 1997. [2] Jacek Warchulski, Marcin Warchulski, Program 01-Okrąg3pkt.lsp, Wojskowa Akademia Techniczna, Warszawa, 2012. 5