Error: too many arguments - AutoLISP
Формулировка задачи:
При отладке показывает на кусок кода:
Вот вся запись
(IF (= J 1)
(SETQ TT1 BT ; координаты первого угла офиса
TT2 T1 ; координаты второго угла офиса
TT3 T2 ; координаты третьего угла офиса
TT4 T3 ; координаты четвертого угла офиса
)
; определение координат точек для ввода текста
(SETQ BTT (POLAR BT (+ UR (/ PI 2.7)) (/ H 2))
BTX (POLAR BT (+ UR (/ PI 3.7)) (/ H 1.7))
H1 (ITOA H)
D1 (ITOA D)
TTT " "
TTT (IF (> J 2)
(STRCAT D1 "*" H1)
)
J (+ J 1)
)
; введение текстовой информации в прямоугольник
(COMMAND "TEXT"
"C"
BTT
(/ D 5)
(+ 90 UG)
TXT
"TEXT"
"C"
BTX
" "
" "
TTT
)
) (DEUN BOX
(X Y D H TXT UG)
; определение координат вершин прямоугольника
(SETQ BT (LIST X Y) ; базовая точка офиса (мебели)
UR (* PI (/ UG 180.0)) ; преобразование градусов в радианы
T1 (POLAR BT (+ UR (/ PI 2)) H)
T2 (POLAR T1 UR D)
T3 (POLAR BT UR D)
)
; создание изображения прямоугольника
(COMMAND "LINE" BT T1 T2 T3 BT " ")
(IF (= J 1)
(SETQ TT1 BT ; координаты первого угла офиса
TT2 T1 ; координаты второго угла офиса
TT3 T2 ; координаты третьего угла офиса
TT4 T3 ; координаты четвертого угла офиса
)
; определение координат точек для ввода текста
(SETQ BTT (POLAR BT (+ UR (/ PI 2.7)) (/ H 2))
BTX (POLAR BT (+ UR (/ PI 3.7)) (/ H 1.7))
H1 (ITOA H)
D1 (ITOA D)
TTT " "
TTT (IF (> J 2)
(STRCAT D1 "*" H1)
)
J (+ J 1)
)
; введение текстовой информации в прямоугольник
(COMMAND "TEXT"
"C"
BTT
(/ D 5)
(+ 90 UG)
TXT
"TEXT"
"C"
BTX
" "
" "
TTT
)
)
(DEFUN OFFICE (X Y LDD LD) ; создание плана офиса
(SETVAR "CMDECHO" 0) ; отключение эха команд
(SETVAR "BLIPMODE" 0) ; отключение изображения маркера
(COMMAND "LIMITS" "0,0" "192,168" "ZOOM" "A")
(SETQ N (NTH 0 LDD) ; номер угла отсчета двери
D2 (NTH 1 LDD) ; расстояние от двери до угла
HD (NTH 2 LDD)
) ; ширина двери
(SETQ J 1)
; цикл изображения плана офиса и мебели в нем
(FOREACH EL LD
(SETQ X (NTH 0 EL) ; координаты по оси X
Y (NTH 1 EL) ; координаты по оси Y
D (NTH 2 EL) ; длина офиса (мебели)
H (NTH 3 EL) ; ширина офиса (мебели)
TXT (NTH 4 EL) ; название мебели
U (NTH 5 EL)
) ; угол установки мебели, градусы
(IF (EQ J 1)
(SETQ X1 X)
)
(IF (EQ J 2)
(SETQ H0 (- X X1))
) ; толщина стены офиса
(BOX X Y D TXT U) ; изображение офиса (мебели)
)
; определение координат расположения точек двери
(COND ((= N 1)
(SETQ TR1 (POLAR TT1 (/ PI 2) D2)
TR2 (POLAR TR1 (/ PI 2) HD)
TP1 (POLAR TR1 0 HO)
TP2 (POLAR TR2 0 HO)
)
)
((= N 2)
(SETQ TR1 (POLAR TT2 0 D2)
TR2 (POLAR TR1 0 HD)
TP1 (POLAR TR1 (* (/ 3 2.0) PI) HO)
TP2 (POLAR TR2 (* (/ 3 2.0) PI) HO)
)
)
((= N 3)
(SETQ TR1 (POLAR TT3 (* (/ 3 2.0) PI) D2)
TR2 (POLAR TR1 (* (/ 3 2.0) PI) HD)
TP1 (POLAR TR1 PI HO)
TP2 (POLAR TR2 PI HO)
)
)
((= N 4)
(SETQ TR1 (POLAR TT4 PI D2)
TR2 (POLAR TR1 PI HD)
TP1 (POLAR TR1 (/ PI 2) HO)
TP2 (POLAR TR2 (/ PI 2) HO)
)
)
(SETQ TR3 (POLAR TP1 (- (/ PI 4) (* (/ PI2) (- N1))) HD))
; изображение двери
(COMMAND "BREAK" TR1 TR2
; удаление части стенки офиса
"BREAK" TP1 TP2 ; удаление части стенки офиса
"LINE" TP1 TR1 "" ; соединение кончиков стен офиса
"LINE" TP2 TR2 "" ; соединение кончиков стен офиса
"LINE" TP1 TR3 "" ; изображение открытой двери
"ARC" TR3 "END" TP2 TR2
; изображение следа двери
)
(OFFICE
24
24
'(3 10 30)
'((24 24 144 120 " " 0)
(28 28 136 112 " " 0)
(29 29 24 60 "Стол" 0)
(80 29 30 60 "Доска" 0)
(145 29 18 36 "Шкаф" 0)
(56 48 24 "Кресло" 0)
(132 100 12 18 "Стул" 206)
(140 56 16 24 "Кресло" 162)
)
)
)
)
)Решение задачи: «Error: too many arguments»
textual
Листинг программы
(defun box