|
AutoCAD... AutoLISP... VisualLISP... |
|
[26] Nie tylko command... |
Tworzenie elementów graficznych w rysunku AutoCAD-a przy pomocy AutuLISP-a może być wykonywane na trzy sposoby:
command W środowisku "lispowych wyjadaczy" używaniecommand jest trakowane jako działanie "mało lispowe" oraz widziane jest jako przejaw nieznajomości rzeczy, zarezerwowany dla początkujących. Trudno nie zgodzic sie z tą opinią, głównie z nastepujących powodow:
command usprawiedliwione jest w wielu przypadkach:
command.
» entmake Jeszcze przed pojawieniem sie Visual LISP-a, funkcjaentmake byla jedynym alternatywnym do command sposobem tworzenia elementow rysunku w AutoLISP-ie. Przez fakt ingerowania bezpośrednio w rysunkową baze danych, znacznie szybsza od command. W skrócie działanie entmake sprowadza sie do wywołania funkcji z argumentem w postaci listy par kropkowych kodow DXF rysowanego obiektu. Część kodow i wartości z nimi związanych dodaje automatycznie AutoCAD (ename, handle, wartości opcjonalne (niewymagane - trakowane jako domyślne)). Entmake ignoruje tryby lokalizacji i nie wyświetla w linii poleceń żadnych zgłoszeń. Wymaga znajomości struktury DXF rysunku i z tego powodu, używanie jej uważane jest za wyższy stopień lispowego wtajemniczenia.
Dodatkowe zalety entmake to:
entmak'e, utrudniają (a czasem uniemożliwiają) jego wykorzystanie (tworzenie skomplikowanych kreskowań, regionów, brył, rzutni obszaru papieru itp.)
» activeX Wraz z pojawieniem sie VBA dla AutoCAD-a, stworzony model obiektów AutoCAD-a, oraz umożliwienie dostepu do niego z poziomu Visual LISP-a, to nastepny (przełomowy?) krok w programowaniu AutoCAD-a. Wykorzystywanie metod służących do tworzenia obiektow rysunkowych, jest teraz łatwiejsze niżentmake'm, bardziej elastyczne niż command'em, dodatkowo posiada nastepujące mozliwości:
entmake'a czy command. Rownocześnie wymaga umiejetności przekształcania typow danych
» kiedy i co stosować? Pierwszym i najważniejszym kryterium przy doborze techniki tworzenia obiektu rysunkowego za pomocą AutoLISP-a, są możliwości jakimi dysponuje programujący. Oczywistym jest ze początkujący użytkownik, nawet posługując się najprostszą techniką (command), napotka i tak dużo problemow z napisaniem bezbłędnie dzialającego programu (zobacz: pułapki command).
Bez podstawowej wiedzy na temat struktury formatu DXF, opanowania technik manipulacji na listach, nie jest możliwe wykorzystywanie entmake'a. Podobnie rzecz ma sie ze stosowaniem techniki ActiveX.Drugim (po spełnieniu pierwszego) kryterium wyboru jest określenie możliwości programu. W wiekszości (najprostszych) zastosowań, te same zadania mogą być realizowane zamiennie przez command, entmake czy metody AciveX. Jednak w szczegolnych przypadkach, wykorzystuje się techniki ktore w ogóle mogą zrealizowac to zadanie, mogą je wykonać najlepiej (najefektywniej, najszybciej...), i jednocześnie są skonstruowane tak aby zbudowac jak najmniej skomplikowany kod programu.
Innymi słowy należy wykorzystywać wszystko to co daje najlepszy rezultat.Przykladowo: Prezentowany tutaj program rysujący strzałki (Strzałka), musiał spełnić warunek rysowania (rodzaj strzałki, położenie końca i początku, wielkości), zmiany cech (kolor) podczas aktywności okna dialogowego (aby uzytkownik mógł wykonać zmiany i obserwować rezultat zmian). Warunek ten mógł zostać spełniony tylko przy wykorzystaniu techniki opartej na ActiveX. Zarowno tworzenie, jak tez zmiana geomerii (tutaj polilinii) i koloru, było by możliwe przy zastosowaniu entmake (+ entmod), (nie mowiąc już o command) dopiero po zamknięciu okna. Podobnie inny program: (Elipsa jako plinia) - wykorzystuje (command "_DXFOUT" ...), po to wlaśnie aby nie pisać (przeciez jak najbardziej możliwe) programu rysującego elipsę skladającą się z kilkuset łukowych segmentow.
|
|
|
|
|