AutoLISP to narzędzie zwiększające wydajność, które umożliwia automatyzację procesów i rozszerzenie funkcjonalności programu AutoCAD LT.
Chociaż język AutoLISP nie jest nową funkcją, teraz jest również dostępny w programie AutoCAD LT od wersji 2024.
Implementacja języka AutoLISP w programie AutoCAD LT umożliwia uruchamianie większości programów AutoLISP opracowanych w ciągu ostatnich prawie 40 lat (z pewnymi ograniczeniami). Chociaż w celu skorzystania z wielu istniejących programów nie trzeba być ekspertem w dziedzinie języka AutoLISP, nauka programowania AutoLISP to umiejętność pozwalająca na odblokowanie niespotykanej wydajności.
Programy AutoLISP często zapisane są w pliku tekstowym z rozszerzeniem .lsp. Nauczenie się sposobu wczytywania plików AutoLISP to jedna z pierwszych rzeczy, które poznasz w kolejnych ćwiczeniach przed zapoznaniem się z podstawowymi funkcjami programowania AutoLISP. Do korzystania z języka AutoLISP nie trzeba mieć doświadczenia w programowaniu. W wielu przypadkach wystarczy poznać jedynie kilka nowych pojęć, poleceń i zmiennych systemowych programu AutoCAD.
Po rozpoczęciu pracy z językiem AutoLISP zamiast pisania własnych programów można wczytać plik AutoLISP pobrany z internetu lub utworzony wewnątrz firmy. Pliki AutoLISP mogą być wczytywane:
Aby wczytać pliki AutoLISP podczas uruchamiania, przy otwieraniu rysunku lub ręcznie, można skorzystać z poniższych metod.
| Wczytywanie podczas uruchamiania | Wczytywanie ręczne |
|---|---|
|
|
Jak widać, program AutoCAD LT umożliwia wczytywanie plików AutoLISP na różne sposoby. Stosowane metody zależą od konfiguracji środowiska projektowania. Na razie przyjrzymy się wczytywaniu pliku AutoLISP w oknie dialogowym Wczytaj/usuń aplikacje.
Można również wpisać polecenie WCZYTAJAPL w wierszu polecenia.


Jeśli zainstalowany jest język inny niż angielski, na przykład pl-pl, wybierz ten folder zamiast en-us.
Plik acadlt2024doc.lsp jest jednym ze specjalnie nazwanych plików AutoLISP, które program AutoCAD LT wyszukuje i wczytuje, jeśli znajdzie je w otwartym lub utworzonym rysunku. Ten plik AutoLISP zawiera niektóre polecenia i niestandardowe funkcje języka AutoLISP stosowane w programie. W tym przypadku używam go jako pliku przykładowego.
W oknie komunikatu, w lewym dolnym rogu okna dialogowego oraz w oknie wiersza polecenia zostanie wyświetlony komunikat „Wczytano pomyślnie acadlt2024doc.lsp”.

Spowoduje to uruchomienie polecenia ODUCHWYT zdefiniowanego przez język AutoLISP w pliku acadlt2024doc.lsp. Polecenie ODUCHWYT spowoduje otwarcie okna dialogowego Opcje i ustawienie karty Wybór jako bieżącej.
W poprzednim ćwiczeniu użyto polecenia ODUCHWYT. Na pewno zastanawiasz się, skąd wiadomo, że to polecenie występuje we wczytanym pliku AutoLISP. Niekiedy w programach może występować kod, który umieszcza komunikat bezpośrednio w oknie wiersza polecenia, dzięki czemu użytkownik wie, które polecenia są zdefiniowane i mogą być używane. Nie zawsze tak jednak jest i może być wymagane otwarcie pliku AutoLISP w celu określenia, które polecenia są zdefiniowane. Plik AutoLISP można otworzyć przy użyciu Notatnika.
Poniższy rysunek przedstawia część pliku acadlt2024doc.lsp otwartego w Notatniku. Polecenia zdefiniowane w języku AutoLISP, które można wpisywać w wierszu polecenia, poprzedza przedrostek c:. Tekst bezpośrednio po c: jest nazwą polecenia.

Chociaż nie ma określonego miejsca, w którym należy przechowywać pobrane lub utworzone pliki AutoLISP, przed ich użyciem zaleca się ich zapisanie w udostępnionej lokalizacji. Podobnie jak w przypadku szablonów rysunków i bibliotek bloków wszyscy projektanci w zespole lub firmie mają dostęp do tych samych plików AutoLISP. Należy rozważyć następujące podejścia:
Po zidentyfikowaniu folderu do przechowywania plików AutoLISP należy poinformować program AutoCAD LT o lokalizacji folderu przy użyciu ustawień Ścieżka wyszukiwania plików pomocniczych oraz Zaufane lokalizacje na karcie Pliki w oknie dialogowym Opcje. Program AutoCAD LT musi znać położenie plików LSP z następujących powodów:
W poniższych punktach przedstawiono sposób dodawania folderu C:\AutoLISP Files do ustawień Ścieżka wyszukiwania plików pomocniczych oraz Zaufane lokalizacje. Położenie to zostanie później użyte do utworzenia pliku LSP z kilkoma krótkimi programami AutoLISP.
Wyświetlone foldery to te, w których program AutoCAD LT szuka plików AutoLISP wśród innych typów plików niestandardowych używanych do przechowywania wzorów kreskowania, rodzajów linii, aliasów poleceń oraz definiowania nowych elementów interfejsu użytkownika.


Folder zostanie dodany u dołu listy.


Folder zostanie dodany u dołu listy.

Oprócz oznaczania folderów z plikami AutoLISP jako tylko do odczytu i określenia tych folderów jako zaufanych program AutoCAD LT zawiera również dodatkowe ustawienia, które pomagają go zabezpieczyć przed złośliwym kodem i oprogramowaniem. Dostęp do ustawień zabezpieczeń programu AutoCAD LT można uzyskać, wykonując następujące czynności:

Wczytywanie plików AutoLISP z internetu lub dostępnych w firmie oraz zarządzanie nimi to dopiero początek zwiększania produktywności dzięki językowi AutoLISP w programie AutoCAD LT. Po rozpoczęciu korzystania z programów AutoLISP pochodzących z plików AutoLISP, które już znajdują się w codziennych procesach, użytkownik może chcieć wprowadzić zmiany w tych programach, a nawet napisać własne, proste programy AutoLISP.
Może Ci się wydawać, że AutoLISP jest językiem programowania, a Ty nie jesteś programistą. Chociaż faktycznie AutoLISP jest językiem programowania, nie trzeba być programistą, aby go poznać i pisać programy AutoLISP. Najprostszym programem AutoLISP jest pojedyncza instrukcja, która umożliwia wykonanie polecenia lub zmianę wartości zmiennej systemowej.
Instrukcja AutoLISP rozpoczyna się nawiasem otwierającym i kończy nawiasem zamykającym. Poniżej przedstawiono przykład instrukcji AutoLISP, która włącza tryb Orto przy użyciu zmiennej systemowej ORTHOMODE.
(setvar "orthomode" 1)
Podobnie jak w przypadku nazw poleceń i zmiennych systemowych instrukcje języka AutoLISP można wprowadzać w wierszu polecenia programu AutoCAD LT. Spróbujmy:
Gdy jest on wyłączony, przycisk na pasku stanu jest szary.

Przycisk Tryb Orto na pasku stanu powinien być teraz włączony i wyświetlany na niebiesko.

Gratulujemy napisania pierwszej instrukcji AutoLISP! Jesteś teraz programistą!
Poprzednia instrukcja AutoLISP wykorzystuje funkcję setvar do ustawienia wartości zmiennej systemowej. Istnieje również funkcja zwracająca bieżącą wartość zmiennej systemowej o nazwie getvar. Funkcje setvar i getvar to tylko dwie z setek funkcji, które umożliwiają automatyzację procesów z wykorzystaniem języka AutoLISP. Chociaż AutoLISP obejmuje setki funkcji, do rozpoczęcia pracy wystarczy poznać pięć najważniejszych. Dwie z nich już zostały przedstawione. Wspomniane pięć funkcji to:
Teraz, gdy znasz pięć funkcji kluczowych i masz za sobą użycie funkcji setvar do ustawienia zmiennej systemowej, przyjrzyjmy się funkcji command. Przed kontynuowaniem należy pamiętać, że nazwy poleceń mogą być poprzedzone znakiem . (kropka) oraz _ (podkreślenie), natomiast nazwy opcji poleceń mogą być poprzedzone znakiem _ (podkreślenie). Znaki te mają za zadanie zapewnienie wykonania polecenia zgodnie z oczekiwaniami.
Znaczenie poszczególnych znaków:
W kolejnych punktach za pomocą funkcji command narysuj okrąg i powiększ go do zakresu rysunku.
Na bieżącej warstwie rysowany jest okrąg o promieniu 5 jednostek w punkcie 5,5.

Rysunek jest powiększany do zakresu okręgu, jeśli jest to jedyny obiekt na rysunku, w przeciwnym razie powiększany jest do zakresu wszystkich obiektów na rysunku.

Teraz, gdy już znasz niektóre instrukcje języka AutoLISP, przyjrzyjmy się bliżej poszczególnym częściom oraz składni przykładowych instrukcji języka AutoLISP:
Wprowadzanie instrukcji AutoLISP bezpośrednio w wierszu polecenia jest dobrym sposobem rozpoczęcia nauki języka AutoLISP, ponieważ użytkownik otrzymuje informacje zwrotne w czasie rzeczywistym. Wielokrotne wpisywanie instrukcji w wierszu polecenia nie jest jednak zbyt efektywne. Jedną z metod ponownego użycia instrukcji AutoLISP jest ich pogrupowanie jako niestandardowych poleceń przy użyciu funkcji defun.
Spróbujmy użyć funkcji defun i zdefiniować niestandardowe polecenie o nazwie ZP, które spowoduje przywrócenie powiększenia do poprzedniego widoku rysunku:
Ciąg C:ZP zostanie wysłany do polecenia.

Zostanie przywrócony poprzedni widok.

Zostanie przywrócony poprzedni widok.
Mimo że polecenia niestandardowe można zdefiniować za pomocą funkcji defun, aby ułatwić ponowne użycie instrukcji AutoLISP, zdefiniowane polecenia są dostępne tylko w rysunkach, w których są zdefiniowane, a ponadto pod warunkiem, że dany rysunek pozostaje otwarty. W następnej części omówimy sposób tworzenia pliku AutoLISP w celu zapisania niestandardowych poleceń AutoLISP wraz z innymi instrukcjami AutoLISP, które można wykonać po wczytaniu pliku AutoLISP.
Więcej informacji na temat pięciu najważniejszych funkcji wraz z setkami innych dostępnych można znaleźć w dokumencie AutoLISP: informator.
Teraz, gdy już wiesz, jak wprowadzać wyrażenia AutoLISP w wierszu polecenia, przyjrzyjmy się, jak można utworzyć plik AutoLISP i zapisać wyrażenia AutoLISP oraz polecenia niestandardowe, aby były dostępne w razie potrzeby. Pliki AutoLISP to zwykłe pliki tekstowe ASCII z rozszerzeniem .lsp, które można tworzyć przy użyciu prostego edytora tekstu, takiego jak Notatnik. Nie zaleca się używania edytorów tekstu, takich jak Write lub Word, ponieważ mogą one zapisywać znaki specjalne oraz formatowanie, co z kolei może powodować problemy podczas wczytywania plików LSP.
W kolejnych ćwiczeniach dowiesz się, jak utworzyć plik LSP, dodać niektóre instrukcje AutoLISP do pliku LSP, wczytać plik LSP, a następnie wypróbować polecenia zdefiniowane w pliku LSP. Oprócz pięciu wcześniej wymienionych najważniejszych funkcji przedstawimy również:
Teraz utworzymy własny plik i wczytamy go do programu AutoCAD LT:
; Zoom commands (defun c:ze () (command "._zoom" "_e")) (defun c:zp () (command "._zoom" "_p")) ; Creates the layer A-ANNO-REV, draws a rectangle and ; converts the rectangle to a revision cloud with arc lengths ; based on half the current value of the LTSCALE system variable (defun c:rv () (setq old-layer (getvar "clayer")) (command "._-layer" "_m" "A-ANNO-REVCLD" "_c" "1" "" "") (command "._rectang" PAUSE PAUSE) (command "._revcloud" "_a" (/ (getvar "ltscale") 2) "" "_o" "_l" "_n") (setvar "clayer" old-layer) ) ; Display a general message in the command line upon load (prompt "\nLoaded MyFirst.lsp") (princ)

Jeśli w programach wymagane jest używanie znaków Unicode, wybierz opcję UTF-8.
Po utworzeniu pliku, zamiast używać okna dialogowego Wczytaj/usuń aplikację wyświetlanego z poleceniem WCZYTAJAPL, plik LSP można wczytać przy użyciu Eksploratora plików.


Po wczytaniu powinien się pojawić komunikat „Loaded MyFirst.lsp” w historii okna wiersza polecenia wyświetlonego przez funkcję prompt.

Zwróć uwagę, że chmurka wersji jest czerwona i znajduje się na warstwie A-ANNO-REVCLD. Można to zobaczyć na liście rozwijanej Warstwa na panelu Warstwy wstążki lub na paletach Właściwości/Szybkie właściwości.

Rysunek zostanie powiększony do swojego zakresu.
Zostanie przywrócony poprzedni widok rysunku.
Okno dialogowe Wczytaj/usuń aplikację może służyć nie tylko do ręcznego wczytywania plików AutoLISP, gdy są potrzebne, lecz także do automatycznego wczytywania plików AutoLISP podczas otwierania lub tworzenia nowego pliku rysunku. Obszar Pakiet uruchomieniowy w oknie dialogowym Wczytaj/usuń aplikację służy do określenia, które pliki AutoLISP mają być wczytywane automatycznie.
Aby dodać plik AutoLISP do pakietu uruchomieniowego, należy wykonać następujące czynności:
Można również wpisać polecenie WCZYTAJAPL w wierszu polecenia.
Jeśli plik myfirst.lsp został utworzony w poprzedniej sekcji, można go wybrać.
Plik AutoLISP dodany do pakietu uruchomieniowego zostanie automatycznie wczytany do bieżącego rysunku.
Podczas uruchamiania programu AutoCAD LT lub tworzenia/otwierania rysunku program AutoCAD LT szuka czterech plików AutoLISP o określonych nazwach. Jeśli pliki zostaną znalezione, następuje ich automatyczne wczytanie. Pliki te pomagają się upewnić, że środowisko AutoCAD LT skonfigurowane jest zgodnie z oczekiwaniami, a polecenia zdefiniowane w języku AutoLISP będą dostępne podczas tworzenia lub otwierania rysunku.
AutoCAD LT wyszukuje i automatycznie wczytuje następujące cztery pliki, jeśli znajdują się w ścieżkach pomocniczych:
Pliki acadlt.lsp i acadltdoc.lsp muszą być utworzone przez użytkownika i nie są częścią standardowej instalacji programu AutoCAD LT. Pliki acadlt2024.lsp i acadltdoc2024.lsp są dołączone do programu i nie powinny być modyfikowane.
Pliki acadlt.lsp i acadltdoc.lsp można wykorzystywać tak samo jak inne pliki LSP, a dodawanie tych plików jest automatycznie wczytywane w wyżej wymienionych kontekstach. Te dwa pliki można używać do wczytywania innych plików AutoLISP za pomocą funkcji wczytywania AutoLISP, wykonywania instrukcji AutoLISP podczas wczytywania tych plików oraz definiowania definicji poleceń AutoLISP, dzięki czemu będą gotowe do użycia po utworzeniu lub otwarciu rysunku. Funkcja wczytywania AutoLISP akceptuje dwa parametry: wymagany plik AutoLISP i drugi parametr opcjonalny będący komunikatem wyświetlanym, gdy wczytywany plik AutoLISP nie został znaleziony w jednej z pomocniczych ścieżek wyszukiwania plików programu AutoCAD LT. Informacje na temat konfigurowania pomocniczych ścieżek wyszukiwania plików można znaleźć w sekcji Zarządzanie plikami AutoLISP i ich zabezpieczanie.
W poniższych punktach opisano sposób tworzenia pliku acadltdoc.lsp w folderze C:\AutoLISP Files, dodawania do niego kilku instrukcji AutoLISP, wczytywania go do programu AutoCAD LT, a następnie sprawdzania, czy plik został wczytany.
; AutoLISP to be executed in each drawing created or opened ; Set Object Snap and Ortho modes (setvar "osmode" 4133) (setvar "orthomode" 1) ; Load the LSP file created earlier under the ; "Store AutoLISP Statements in AutoLISP (LSP) Files" section (load "myfirst.lsp" "\nMyFirst.lsp file couldn't be found") ; Display a general message in the command line upon load (prompt "\nLoading my custom programs") (princ)

W oknie wiersza polecenia powinien się pojawić komunikat „Loading my custom programs”, który pochodzi z dwóch ostatnich wierszy wprowadzonych wcześniej w kroku 2.


Przyciski paska stanu powinny być ponownie włączone.

Pakiet wtyczek to struktura folderów z plikiem manifestu o nazwie PackageContents.xml, który informuje program AutoCAD LT o plikach i ustawieniach tworzących wtyczkę. Jak już wiesz, pakiety wtyczek nie są wymagane do wczytywania programów AutoLISP do AutoCAD LT, ułatwiają jednak zarządzanie plikami AutoLISP oraz stanowią bezpieczniejszy sposób wdrażania programów niestandardowych w porównaniu z użyciem plików acadlt.lsp lub acadltdoc.lsp. Pakiety wtyczek mogą również pomóc w konfiguracji programu AutoCAD LT bez konieczności korzystania w większości przypadków z okna dialogowego Opcje.
Aby uzyskać więcej informacji na temat pakietów wtyczek, zapoznaj się z tematem Przykład: podstawowa struktura folderu .bundle dla rozszerzenia.
Automatyzacja procesów może pomóc w zwiększeniu wydajności i ograniczyć liczbę powtarzalnych czynności. Chociaż programowanie AutoLISP daje wiele możliwości poznania pięciu najważniejszych funkcji, wystarczy nauczyć się obsługi kilku z nich, aby utworzyć kilka małych programów, które pozwolą zrozumieć, jak przydatny może być język AutoLISP w codziennych procesach.
Oto często używane polecenia i zmienne systemowe związane z AutoLISP.
| Polecenie | Opis |
|---|---|
| AUTOWCZYTYWANIEAPL | Wyświetla lub ponownie wczytuje wszystkie wtyczki w folderze wtyczek aplikacji. |
| WCZYTAJAPL | Wczytuje i usuwa z pamięci aplikacje oraz definiuje aplikacje, które mają być wczytywane po uruchomieniu. |
| OPCJE | Dostosowuje ustawienia programu. |
| OPCJEBEZP | Steruje ograniczeniami bezpieczeństwa dotyczącymi uruchamiania plików wykonywalnych produktu. |
| UNDEF | Umożliwia nadpisanie polecenia wewnętrznego poleceniem zdefiniowanym w aplikacji. |
| Zmienna systemowa | Opis | Wartość domyślna | Miejsce zapisu |
|---|---|---|---|
| ACADLSPASDOC | Określa, czy plik acad.lsp lub acadlt.lsp dla programu AutoCAD LT będzie wczytywany do każdego rysunku, czy tylko do pierwszego otwartego w sesji. | 0 | Rejestr |
| APPAUTOLOAD | Określa, kiedy wczytywane są aplikacje wtyczek. | 14 | Rejestr |
| CLAYER | Ustala bieżącą warstwę. | 0 | Rysunek |
| CLIPROMPTUPDATE | Określa, czy w wierszu polecenia wyświetlane są komunikaty i monity generowane podczas wykonywania pliku AutoLISP lub pliku skryptu. | 1 | Rejestr |
| CMDDIA | Steruje wyświetlaniem edytora tekstu lokalnego w odniesieniu do poleceń WYMEDYCJA i SLODNIES oraz wyświetlaniem niektórych okien dialogowych w produktach opartych na programie AutoCAD. | 1 | Rejestr |
| CMDECHO | Określa, czy monity i dane wejściowe są wyświetlane podczas działania polecenia AutoLISP. | 1 | Brak zapisu |
| FILEDIA | Wyłącza wyświetlanie okien dialogowych nawigacji plików. | 1 | Rejestr |
| LEGACYCODESEARCH | Określa, czy wyszukiwanie plików wykonywalnych obejmuje folder, z którego program został uruchomiony. | 0; może być zablokowane przez administratora CAD | Rejestr |
| NOMUTT | Pomija wyświetlanie komunikatów w sytuacjach, gdy nie można ich normalnie pominąć. | 0 | Brak zapisu |
| ORTHOMODE | Ogranicza ruch kursora do prostopadłych odcinków. | 0 | Rysunek |
| OSMODE | Ustawia stałe tryby lokalizacji. | 4133 | Rejestr |
| SECURELOAD | Kontroluje, czy pliki wykonywalne są wczytywane z ograniczeniem tylko do zaufanych folderów. | 1; może być zablokowane przez administratora CAD | Rejestr |
| TEXTEVAL | Steruje, w jaki sposób przetwarzane są ciągi tekstowe wprowadzone za pomocą polecenia TEKST (przy użyciu AutoLISP) lub tylko za pomocą polecenia TEKST. | 0 | Brak zapisu |
| TRUSTEDPATHS | Określa foldery, które mają uprawnienia do wczytywania i wykonywania plików zawierających kod. | Różne; może być zablokowane przez administratora CAD | Rejestr |