Przykłady LISP - przegląd dostępnych artykułów:
Lispowa choinka przykładem użycia generatora liczb losowych w programie CAD.
Dziś w przypływie entuzjazmu przedświątecznej atmosfery chciałbym przedstawić funkcję rysującą choinkę. Sama choinka nie jest oczywiście celem, ale na jej przykładzie można pokazać np losowanie liczb, tworzenie bloków, tw…
W ZWCAD w wersjach wcześniejszych niż ZWCAD+ 2014 funkcja pedit pozwalała na wskazanie okręgu i zamieniała go automatycznie na polilinię. W wersji 2014 programu CAD zaznaczenie okręgu nie jest możliwe, ograniczenie to zostało wprowadzone dla uzyskania zgodności z AutoCADem, gdzie w obecnej wersji d…
Użytkownik ZWCADa zasugerował nam, że przydatnym narzędziem w ZWCAD mogłaby być funkcja, która po zaznaczeniu elementów w rysunku, utworzy polilinię - prostokąt, obejmujący wszystkie te elementy. ZWCAD posiada LISPową funkcję, która pozwala na odczytanie wierzchołków przekątnej takiego prostokąta d…
Otrzymaliśmy zapytanie od klienta o możliwość wykonania skryptu, który rozbije projekt na wiele plików DXF, gdzie w każdym z nich będzie tylko jeden element z pliku źródłowego. Skrypt taki może być użyty np. do generowania ścieżek dla maszyn numerycznych. Skrypt może być interesującym przykładem wy…
Na naszym forum CAD pojawiło się zapytanie o funkcję opisującą współrzędną wskazanego punktu.
Opracowałem taką funkcję i chciałbym się nią podzielić:
Przykład ten będzie kontynuacją poprzedniego, w którym przedstawiłem zliczanie elementów zaznaczonych w rysunku. Teraz takie dane wyświetlimy w oknie.
Zestawienie zaznaczonych elementów. W poniższym przykładzie przedstawię jak można zliczyć elementy zaznaczone w rysunku. Wygenerowana lista będzie zawierała nazwę typu obiektu oraz ilość elementów tego typu. Dla bloków oddzielne wpisy powstawną dla każdego typu bloku.
W tym przykładzie chciałbym pokazać jak można usprawnić ZWCADową funkcję przerwij w dwóch punktach. Domyślna funkcja ZWCADa prosi o wskazanie obiektu i punktu przerwania. Jako pierwszy punkt domyślnie jest przyjmowany punkt kliknięty przy wskazywaniu obiektu, jednak ten punkt nie uwzględnia pu…
Standardowe funkcje ZWCADA pozwalają na narysowanie okręgu stycznego do trzech obiektów. Wykorzystanie ich w LISP jest nieco skomplikowane, dodatkowo jeśli chcemy narysować okrąg styczny do linii 'wirtualnych' np zdefiniowanych w bloku konieczne jest opracowanie własnej funkcji definiującej okrąg w…
Poniższy przykład prezentuje jak podzielić listę na mniejsze listy o określonej długości.
Tym skryptem mozna bardzo łatwo stworzyć kreskowanie dowolnego elementu.
Celem tego przykładu jest stworzenie funkcji ułatwiającej wstawianie rymiaru liniowego z dodatkowym symbolem średnicy.
Okno do otwarcia i zapisu plików. LISP zawiera funkcję, proszącą użytkownika o wskazanie pliku. Funkcja ta to: (getfiled). Dzięki parametrom wywołania funkcji możemy określić, czy okno, które się otworzy, będzie prosiło Użytkownika o wskazanie pliku do otwarcia, czy do zapisu.
Przykład zmiany koloru wybranego elementu przez nadanie składowych RGB wpisanych przez użytkownika lub nadanie koloru o okreśonym indeksie.
Poniższy przykład zilustruje w jaki sposób można przyciąć bryłę oraz jak uzyskać przekrój z wybranej bryły (bez jej modyfikacji) Jeśli uruchomiona zostanie funkcja testowa: Przekroj, jedna bryła zostanie podzielona na dwie i dodatkowo utworzony zostanie przekrój płaszczyzną zdefiniowaną przez 3 pun…
Głównym tematem tego przykładu jest dodawanie punktów do polilinii. Być może nie jest to rozwiązanie kompleksowe pozwalające na dodawanie punktów do wszystkich polilinii, problematycze będzie np dodanie punktu do odcinków łukowych. Chciałbym raczej pokazać tutaj użycie kilku funkcji np: eval, comma…
Funkcja, którą prezentuje poniżej jest podobna do standardowej fukcji kopiującej, z tą różnicą, że obiekty pozostają w orginalnym położeniu i pozostają zaznaczone, dzięki czemu można wykonywać dowolne operacje jedynie na grupie obiektów nowo utworzonych, nie zmieniając orginałów.
Przykład pokazuje w jaki sposób można zmienić kolejność wyświetlania obiektów. W przykładzie posłużymy się poleceniem _ai_draworder, które zmienia kolejność wyświetlania obiektów.
ZWCAD 2012+ umożliwia tworzenie brył przez operacje na modelu obiektowym. W poprzednich wersjach tworzenie brył było dostępne jedynie przez używanie funkcji command, w poniższym przykładzie utworzymy bryłę ze wskazanego obiektu.
Ten skrypt pozwala łatwo sumować elementy na rysunku.
W tym przykładzie zajmiemy się kontrolowaniem sposobu wyświetlania obiektów w ZWCAD. Każdy utworzony obiekt w ZWCAD wyświetlany jest normalnie czyli zgodnie z jego właściwościami. Po wybraniu obiektu zostanie on podświetlony, czyli linia będzie wyświetlana jak przerywana, nawet kiedy właściwości ob…
Poniżej przedstawiam przykład procedury wykonującej drukowanie.
Drukowane bedzą wszystkie arkusze aktualnego rysunku. W ostatniej linii na stałe wpisane jest urządzenie drukujące. Może w ramach ćwiczeń ktoś dopisze procedurę wyboru drukarki spośród zainstalowanych w systemie.
W tym przykładzie chciałbym przedstawić w jaki sposób można obracać przestrzenią widoczną w arkuszu. Przykładowy program poprosi użytkownika o wskazanie pary punktów, a następnie wyrówna widok tak, by linia łącząca wskazane punkty była równoległa do krawędzi kartki.
Jedną z cech języka LISP jest odzielność przestrzeni pamięci dla zmiennych w różnych rysunkach. Przez to, jeśli ustawimy wartość zmiennej w jednym rysunku. A następnie Użytkownik zmieni aktualny rysunek, oddczytanie wartości tych zmiennych nie będzie możliwe.
Za pośrednictwem LISP w ZWCAD możliwe jest manipulowanie zmiennymi systemowymi ZWCADa a nawet samego systemu operacyjnego. Większość ustawień rysunku i całego środowiska ZWCAD można zmienić własnie przez zmienne systemowe.
Ten skrypt pozwala załadować warstwy do projektu z innego pliku.
Przykład prazy z oknami dialogowymi. W LISP okna dialogowe można tworzyć korzystając z mechanizmów DCL. Do wyświetlenie okna konieczne jest utworzenie dwóch plików. pierwszy z rozszerzeniem DCL zawiera strukturę okna. W drugim, czyli pliku LSP zdefiniowana jest cała obsługa okna.
Ta funkcja pozwala na łatwe przekształcenie prędkości obrotowej na prędkość liniową. Wystarczy uruchomić LISP a następnie podać wartości, dzięki czemu prędkość liniowa zostanie obliczona.
Dzięki temu narzędziu można w łatwy sposób opisywać wierzchołki obiektów albo dowolne punkty w projekcie.
Dzięki temu skryptowi można zapisać dowolne teksty z projektu do zewnętrznego pliku .txt.
Ten skrypt pozwala na przenoszenie obiektów po osi X, z zablokowaną współrzędną Y.
Ten skrypt pozwala na prostą edycje dowolnych bloków.
Ten skrypt pozwala na rysowanie linii o długości równiej długości zaznaczonego obiektu.
Kilka przykładów użycia funkcji obliczających punkty przecięcia linii i obiektów.
W tym przykładzie zajmiemy się bliżej przedstawieniem kilku podstawowych możliwości funkcji ssget, która pozala na pracę ze wskazaniami elementów. Mechanizm zbiorów wskazań służą łatwej manipulacji większą liczbą obiektów, pozwalają np. wybrać z rysunku elementy spełniające określone kryteria.
LISP ten pozwala na narysowanie kopii zaznaczonych elementów o określonym odstępie po obu stornach wybranych obiektów.
Ten skrypt pozwala zmieniać właściwości obiektów na rysunku w wygodny sposób. Za pomocą poniższych komend można ustawiać takie rzeczy jak np. szerokośc i typ linii albo kolor.
Ten LISP pozwala na proste numerowanie wierszy w tekście. Taka numeracja jest wprowadzona do tekstu i może być równie łatwo edytowana.
Ten LISP pozwala na zaznaczenie pozostałych elementów rysunku za pomocą prostej funkcji. Cokolwiek jest zaznaczone w rysunku, po uruchomienie skryptu zostanie odznaczone, a każdy inny element zostanie zaznaczony.
Ten prosty skrypt pozwala na dokonanie pomiaru kątowego w środowisku 3D.
Ten skrypt pozwala na szybkie tworzenie bloków z dowolnych elementów na rysunku.
Ten skrypt pozwala na wstawienie do rysunku aktualnej godziny wraz z datą.
Wyjątki to sytuacje gdzie zachowanie odbiega od przewidywanego przez programistę.
W przypadku, gdy chcemy narysować prostokąt lub równoległobok ale nierównoległy do osi układu współrzędnych musimy wykonać trzy operacje: narysować prostokąt, obrócić i rozciągnąć.
Dzięki temu skryptowi proces ten staje się znacznie prostszy, wystarczy uruchomić LISP i podać 3 wierzchołki figury.
Ten LISP pozwala łatwo przenieść początek układu współrzędnych do nowego miejsca na rysunku.
Skrypt LISP posłuży do rysowaniu spirali Archimedesa
Po wczytaniu skryptu do programu CAD należy wpisać polecenie Spirala
ZWCAD narysuje spiralę składającą się z punktów.
W przykładzie posłużymy się parametrami ustawionymi na stałe, oczywiście można je modyfikować i dodać możliwość określania pa…
W tym skrypcie LISP odczytamy stan warstw oraz przeniesiemy obiekty pomiędzy warstwami.
Program wpisuje zawartość pliku tekstowego do aktualnego rysunku DWG w programie CAD.
Rysowanie prostych elementów na przykładzie symbolu gwintu, wystarczy postępować według poniższej procedury: