Poniższy przykład prezentuje jak podzielić listę na mniejsze listy o określonej długości.

Bardzo dobrym przykładem zastosowania funkcji może być jej wykorzystanie na współrzędnych polilinii, które są zapisane jako jedna lista a w wielu przypadkach potrzebna jest znajomość wspołrzędnych poszczególnych wierzchołków.

By przetestować przykład, proszę utworzyć plik i narysować w nim polilinię. Wczytać plik, program poprosi o wskazanie polilinii i  wyświetli listę współrzędnych


(defun v2l (var / OutVal)
(setq OutVal(vlax-safearray->list(vlax-variant-value var)))
)

(defun SplitList (InList SubLen / ListLen i j OutList) ; funkcja dzieli listę na miejsze listy, z których każda ma dlugość określoną przez parametr SubLen
(setq ListLen (length InList )) ; zwraca długość całej listy
(setq i 0 ) ; ustawia indeks na pierwszy element listy
(while (< i ListLen) ; pętla przez elementy listy
(setq SubList nil )
(setq j 0) ; licznik elementów podlisty
(while (< j SubLen )
(setq SubList (append SubList (list(nth (+ i j) InList ) ))) ; dodaje element do mniejszej listy
(setq j (1+ j ))
)
(setq OutList (append OutList (list SubList))) ; dodaje mniejsze listy do główej listy
(setq i (+ i SubLen )) ; zwiększenie indeksu aktualnego elementu
)
OutList
)


(setq Wybor (entsel "wskaż polilinie")) ; prosi Użytkownika o wskazanie elementu i zwraca ten element oraz współrzędne klikniętego punktu
(setq ElemObj (vlax-ename->vla-object (car Wybor))) ; na podstawie obiektu typu entity zwraca obiekt reprezentujący ten sam element
(setq wspolrzedne(v2l(vlax-get-property ElemObj 'Coordinates ))) ; pobiera współrzędne wierzchołków wybranej polilinii. Dla innych typów obiektu potzebna jest inna funkcja pobierająca współrzędne
(setq wierzcholki (SplitList wspolrzedne 2 )) ; dzieli listę współrzędnych na mniejsze listy
(print wierzcholki) ; wyświetla w pasku poleceń wynik podziału