Код:
(defun c:28 (/ rline rline2 rline3 rline4 rline5 rline6 rline7 cv fun vid prim file r1 r2 r3)
(setq x 0)
(while (= x 0)
(initget "ПРимитив Точка Цвет Файл Рисовать выХод")
(setq fun(getkword "Выбирете ?[ПРимитив/Точка/Цвет/Файл/Рисовать/выХод]"))
(cond
((= fun "ПРимитив") (initget "2d 3d")
(setq vid(getkword "Вид примитива ?[2d/3d]"))
(cond
((= vid "2d")(initget "эЛЛипс Окружность Полилиния Шестиугольник")
(setq prim(getkword "Выбирите примитив ?[эЛЛипс/Окружность/Полилиния/Шестиугольник]")))
((= vid "3d")(initget "Пиримида ПРизма УсечённыйКонус Куб")
(setq prim(getkword "Выбирите примитив ?[Пиримида/ПРизма/УсечённыйКонус/Куб]")))
)
)
((= fun "Точка")(setq centr (getpoint "Задайте точку вставки:")))
((= fun "Цвет")(setq cv (acad_colordlg 9 nil)))
((= fun "Файл")(setq file (open (getfiled "Выбирете файл" "E:\\учёба\\3 курс\\ОСАП\\Готовые контрольные программы\\zadanie28\\file" "txt" 0) "r"))
(setq rline (String->List (setq rline(read-line file)) " "))
(setq rline1 (String->List (setq rline1(read-line file)) " "))
(setq rline2 (String->List (setq rline2(read-line file)) " "))
(setq rline3 (String->List (setq rline3(read-line file)) " "))
(setq rline4 (String->List (setq rline4(read-line file)) " "))
(setq rline5 (String->List (setq rline5(read-line file)) " "))
(setq rline6 (String->List (setq rline6(read-line file)) " "))
(setq rline7 (String->List (setq rline7(read-line file)) " "))
(close file))
((= fun "Рисовать")(command "_color" cv "")
(if (= vid "2d")(command "ПСК" "в"))
(if (= vid "3d")(command "ПСК" "М"))
(setq x 1 )
(cond
((= prim "эЛЛипс")(setq r1 (atof (nth 0 rline ))
r2 (atof (nth 1 rline )))
(setq r1 (list (+ (car centr) r1) (+ (cadr centr) r2)))
(command "_ellipse" "_c" centr r1 r2 ""))
((= prim "Окружность")(setq r1 (atof (nth 0 rline )))
(command "_circle" centr r1 ""))
((= prim "Полилиния")(setq r1 (list (atof (nth 0 rline2)) (atof (nth 1 rline2)))
r2 (list (atof (nth 2 rline2)) (atof (nth 3 rline2)))
r3 (list (atof (nth 4 rline2)) (atof (nth 5 rline2))))
(command "_pline" centr r1 r2 r3 ""))
((= prim "Шестиугольник")(setq r1 (atof (nth 0 rline3 )))
(command "_polygon" 6 centr "в" r1 ""))
((= prim "Пиримида")(setq r1 (atof (nth 0 rline4 ))
r2 (atof (nth 1 rline4 )))
(command "_pyramid" centr r1 r2))
((= prim "ПРизма")(setq r1 (atof (nth 0 rline5 ))
r2 (atof (nth 1 rline5 ))
r3 (atof (nth 2 rline5 )))
(command "_pyramid" centr r1 "Р" r2 r3))
((= prim "УсечённыйКонус")(setq r1 (atof (nth 0 rline6 ))
r2 (atof (nth 1 rline6 ))
r3 (atof (nth 2 rline6 )))
(command "_cone" centr r1 "Р" r2 r3))
((= prim "Куб")(setq r1 (list (atof (nth 0 rline7)) (atof (nth 1 rline7))(atof (nth 2 rline7)))
r2 (list (atof (nth 3 rline7)) (atof (nth 4 rline7))(atof (nth 5 rline7))))
(command "_box" centr r2 r3))
(t (alert "Не выбрат примитив")(setq a 0))
)
)
((= fun "выХод")(setq a 1))
)
)
)
(defun String->List (_str _br / _pos);; Перевод строк в список
(if (setq _pos (vl-string-search _br _str))
(cons (substr _str 1 _pos)
(String->List (substr _str (+ (strlen _br) _pos 1)) _br))
(list _str)
))
Не могу понять почему не отрабатывает код, про ошибки программа не пишет.