AutoCAD AutoLISP – podstawy automatyzacji

LISP w programie AutoCAD jest idealnym narzędziem służącym do automatyzacji pracy projektanta. Dzięki temu językowi programowania – nie martw się, wszystko zrozumiesz :) – jesteśmy w stanie przygotować proste aplikacje, dzięki którym zaoszczędzimy sobie mozolnej i powtarzalnej pracy. Zapraszam Cię na 2-odcinkowy cykl tutoriali, w którym napiszemy praktyczną aplikację LISP.

Cel

W pierwszej kolejności wyznaczmy sobie cel – jakie zadanie ma spełniać aplikacja i jakie procesy usprawniać/przyspieszać? W naszym przypadku będziemy chcieli usprawnić proces rysowania grupy drzew (dokumentacja techniczna dla terenów zieleni). Ty natomiast pomyśl o swojej branży i o tym co byś chciał usprawnić – wiedza, którą tutaj otrzymasz będzie uniwersalna. To jak ma wyglądać grupa drzew na rysunku przedstawia poniższy obraz:

Grupa drzew składa się z:

  • minimum dwóch okręgów o odpowiedniej średnicy
  • punktów wyznaczających pień drzewa

Co istotne okręgi grupy, które na siebie nachodzą są ucięte w miejscu łączenia:

Co będziemy potrzebować?

  • Przede wszystkim musimy wiedzieć w jakich punktach użytkownik chce wstawić każde poszczególne drzewo grupy
  • Musimy wiedzieć ile drzew w grupie przewiduje użytkownik aplikacji
  • Musimy zapytać użytkownika o średnicę korony wstawianego drzewa

Zacznijmy pisać tego LISP’a!

Na karcie Zarządzaj w panelu Aplikacje odnajdziesz edytor Visual LISP. Po uruchomieniu utwórz nowy plik i w nim rozpocznij pisanie programu. O wszystkich szczegółach opowiadam w filmie na górze tej strony.

LISP to lista funkcji, która zawsze zawarta jest w nawiasach:

(
tutaj są funkcje
)

Zaraz za pierwszym nawiasem zdefiniujemy naszą pierwszą funkcję – dzięki wstawieniu “c:” będziemy mogli później wywołać program z linii poleceń AutoCADa, dokładnie tak samo jak uruchamia się zwykłe polecenia. Funkcja GDRZEW (Grupa Drzew) nie zawiera argumentów:

(DEFUN C:GDRZEW()


)

Kolejny krok to definicja zmiennych, w których będziemy przechowywali różne dane – głównie pobrane od usera. Aby zdefiniować pierwszą zmienna PIEN wpisz SETQ:

(DEFUN C:GDRZEW()
    (SETQ PIEN (GETPOINT "\nWskaz punkt wstawienia na rysunku: "))
)

Dzięki temu, oprócz stworzenia zmiennej, wykonamy operację przypisania wartości. A wartość dla tej zmiennej poda nam sam użytkownik ponieważ funkcja GETPOINT w AutoCAD pozwoli wskazać mu punkt w przestrzeni CAD’a. Analogicznie poprosimy użytkownika o średnicę korony:

(DEFUN C:GDRZEW()
    (SETQ PIEN (GETPOINT "\nWskaz punkt wstawienia na rysunku: "))
    (SETQ KORONA (GETREAL "\nPodaj srednice korony: "))
)

Tym razem jednak wykorzystamy GETREAL do uzyskania liczby rzeczywistej. W momencie gdy posiadamy te podstawowe informacje to możemy przystąpić do faktycznego narysowania okręgów i punktu. Będziemy wykorzystywać do tego funkcję COMMAND:

(DEFUN C:GDRZEW()
    (SETQ PIEN (GETPOINT "\nWskaz punkt wstawienia na rysunku: "))
    (SETQ KORONA (GETREAL "\nPodaj srednice korony: "))
    (COMMAND "_circle" "_non" PIEN "_Diameter" KORONA)
    (COMMAND "_point" PIEN)
)

Jaki widzisz po funkcji command w cudzysłowie wpisujemy polecenie, a następnie kolejne parametry, które są wymagane do realizacji polecenia (tak samo jak w AutoCADzie). W momencie gdy należy narysować punkt (_point) odwołujemy się jedynie do zmiennej PIEN, która przechowuje współrzędne punktu. W ostatnim kroku zapytamy użytkownika ile drzew chce wstawić (ILOSCD):

(DEFUN C:GDRZEW()
  (SETQ ILOSCD (GETINT "\nPodaj ilosc drzew w grupie: "))
  (REPEAT ILOSCD
    (SETQ PIEN (GETPOINT "\nWskaz punkt wstawienia na rysunku: "))
    (SETQ KORONA (GETREAL "\nPodaj srednice korony: "))
    (command "_circle" "_non" PIEN "_Diameter" KORONA)
    (command "_point" PIEN)
)
)

Zobacz jeszcze jedną istotną rzecz. Aby program mógł narysować więcej niż jedno drzewo musieliśmy zastosować pętlę REPEAT. Pętla ta zostanie wykonana tyle razy ile określi użytkownik (zmienna ILOSCD). Wszystkie funkcje w pętli zamykamy nawiasem.

Spróbujmy teraz użyć naszej funkcji w AutoCADzie. W edytorze wybierz Narzędzia -> Wczytaj tekst z edytora (Ctrl+Alt+E). Teraz w AutoCADzie wpisz GDRZEW. Jak widzisz program został uruchomiony i użytkownik musi podać ilość drzew w grupie. Zobacz film na górze tej strony.

Już niedługo kolejna część tego tutoriala, gdzie wykonamy kolejne elementy naszego programu.

O autorze: Piotr Cichalewski

Absolwent Wydziału Mechanicznego Politechniki Wrocławskiej. Od 2012 roku szkoli z obsługi oprogramowania CAD w szczególności programu Autodesk AutoCAD oraz Autodesk Inventor. Założyciel serwisu techtutor.pl zawierającego wideokursy z obsługi AutoCAD-a. Autor kursów dostępnych na największej polskiej platformie szkoleniowej strefakursow.pl. Prywatnie miłośnik górskich wędrówek.

Zobacz również:

rysowanie w programach cad

Superszybka metoda rysowania w programach CAD

Jak zwiększyć szybkość rysowania w programach CAD o 30% w kilka dni? W artykule postaram …

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *

Wypełnij CAPTCHA * Time limit is exhausted. Please reload CAPTCHA.

Intensywna promocja - kursy CAD / CAM
Webinar Twój Pierwszy Rysunek w AutoCAD
Promocja -31% tylko do końca dnia | w koszyku wpisz: 26MAJ

Odbierz darmowe ćwiczenia z AutoCAD-a