Cykly v programu slouží k opakovanému provádění úseku kódu. AutoLISP používá dva typy cyklů:
Cykly repeat slouží ve funkcích AutoLISPu k provádění určité skupiny příkazů po pevný, předem daný počet opakování. Cyklus repeat má proto smysl například při provádění několika spolu souvisejících výpočtů, při práci s elementy na obrazovce nebo při zpracování určité množiny vstupních dat.
(repeat int [expr...])
Po vykonání všech příkazů v cyklu se hodnota kroku přičte k čítači int. V tomto okamžiku se buď příkazy v cyklu provedou znovu (na základě stejného testu, podle kterého se cyklus vykonal i původně) nebo se cyklus ukončí a běh pokračuje následující příkazem za funkcí repeat.
Následující úsek programu nejprve nastaví střed a poloměr kružnic. Dále je nastavena proměnná počet - pomocná proměnná pro kreslení kružnic. Následuje tělo cyklu, které je vykonáno 5x. V každém průchodu cyklem je vykreslena jedna kružnice:
(setq stred '(1.1 2.2 0.0)) (setq polomer 50) (setq pocet 5) (repeat 5) (setq pol_kresl (+ polomer (* 3 (- pocet 1)))) ;;; nastavení aktuálního poloměru kružnice (command "_circle" stred pol_kresl) ;;; vykresli kruznici (setq pocet (- pocet 1)) ;;; zmenši počet kružnic o 1 );_ konec repeat
Cyklus while představuje alternativu k cyklu repeat. Opakovaně vyhodnocuje výrazy, dokud testexpr není rovná hodnotě nil. Cykly while tedy mají smysl zejména v případech, kdy nemůžeme dopředu určit počet opakování.
(while testexpr [expr...])
Následující úsek programu nejprve nastaví střed a poloměr kružnic, následuje test podmínky jestli je pocet kružnic, proměnná pocet > 0, pokud ano program vstoupí do smyčky a vykreslí kružnici. Na konci cyklu je proměnná pocet zmenšena o 1. Cyklus se vrátí na začátek a je opět testována podmínka:
(setq stred '(1.1 2.2 0.0)) (setq polomer 50) (while (> pocet 0) ;;; dokud je co kreslit opakuj (setq pol_kresl (+ polomer (* 3 (- pocet 1)))) ;;; nastavení aktuálního poloměru kružnice (command "_circle" stred pol_kresl) ;;; vykresli kruznici (setq pocet (- pocet 1)) ;;; zmenši počet kružnic o 1 );_ konec while
U příkazů, kterým nerozumíte je možné po kliknutí nad příkazem zobrazit referenční příručku.