Cześć,
Chciałem się pochwalić swoim programem w języku LISP.
Zadaniem programu jest automatyczne wstawienie trójkątów o określonym przez siebie rozmiarze w każdy wierzchołek dowolnej polilinii.
(defun C:TRIATVERTEX ()
(setq trirad (getstring "Okresl wielkosc trojkatow w wierzcholkach: ") ;Podanie średnicy okregu na którym bedą opisane trójkąty
vertexlst nil ;Czyszczenie listy współrzędnych
poly (entget (car (entsel "\nWskaz polilinie: "))) ;Wybór polilinii i zapisanie jej atrybutów w zmiennej poly
)
(foreach pp poly
(if (= (car pp) 10) ;Sprawdzenie czy atrybut zawiera współrzędne (zaczyna się od kodu 10)
(setq vertexlst (cons (cdr pp) vertexlst)) ;Dodawanie współrzędnych do listy vertexlst
)
) ;Pętla która tworzy listę współrzędnych wierzchołków
(foreach pt vertexlst
(command "_.POLYGON" "3" pt "O" trirad)
) ;Pętla wstawiania trójkąty we wszystkich wierzchołkach polilinii
)
Nie pisałem nic wcześniej w tym języku, ale myślę że jest całkiem schludnie.
Wiedzę czerpałem z książki "AutoLISP czyli programowanie AutoCADa" wydawnictwa HELION, polecam nie tylko początkującym.