Тема: Слишком мало аргументов в функции. Программа из учебника.
Здравствуйте, познаю необъятный мир autolisp и прошу помощи
Вылезает ошибка: Слишком мало аргументов
Программу переписал из учебника Полещука в приложении 11. Буду очень благодарен, если не только скажут где ошибка, но и объяснять почему она возникла. Заранее всем спасибо!
(defun c:setiout (fdcl / yn all_loutn dcl_id)
; Запрос: перейти в пространство листа?
(if (/= (getvar "TILEMODE") 0) ; проверка системной переменной (1 модель, 0 лист)
(progn
(initget "Y N")
(setq yn (getkword "\nПерейти в пространство листа [Y/N]? <Y> "))
(if (or (null yn) (= yn "Y"))
(progn
(setq all_loutn (layoutlist) loname (car all_loutn) kl_new 0)
(if (< (setq dcl_id (load_dialog fdcl)) 0)
(progn
(alert "Не найден DCL-файл")
(exit)
) ;progn
) ; if
(if (not (new_dialog "lout" dcl_id))
(progn
(alert "Не загружается диалог")
(exit)
) ;progn
) ; if
(start_list "louts_old")
(mapcar add_list all_loutn)
(end_list)
(action_tile "louts_old"
"(setq loname (nth (atoi $value) all_loutn))"
) ; action_tile
(action_tile "lout_new" "(setq loname $value)")
(action_tile "kl_new"
(strcat
"(mode_tile \"lout_new\" (- 1 (setq kl_new (atoi $value))))"
"(mode_tile \"louts_old\" kl_new)"
) ;strcat
) ; action_tile
(action_tile "accept" "(done_dialog)")
(action_tile "cancel" "(setq kl_new -1)(done_dialog)")
(start_dialog)
(unload_dialog dcl_id)
(command "TILEMODE" 0)
(if (= kl_new 1)(command "_-LAYOUT" "_N" loname))
(if (>= kl_new 0)(command "CTAB" loname))
)
)
)
)
(princ)
)