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
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д