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