Тема: в чем причина некоректной работы кода?
доброго времени суток!
наваял код
для нумерации вершин полилинии
до недавнего времени работал код нормально,только теперь в одном файле при попытке пронумеровать
условная таблица которая формирутеся ввиде текстовых объектов вместо записей появляются нули как это можно исправить?
сам код
(defun c:num_ug (/ list_ver n_lin n lin_sp i koord_ver nom_ug c p4 txt_ug nom res y xp)
(setq res
(vl-catch-all-apply
(function
(lambda ()
(repeat 1000
(setq list_ver '())
(setq n_lin (car (nentsel "\nУкажите контур <ESC для выхода>:")))
(setq xp (getpoint "\nУкажите точку вставки таблицы : "))
(setq lin_sp (entget n_lin))
(setq n (cdr(assoc 90 lin_sp)))
(setq i 10); присваиваем значение переменной i
(repeat n
(setq i (+ i 4));последовательно увеличиваем переменную i
(setq koord_ver (cdr (nth i lin_sp))); получаем координаты вершин полилинии по их порядковму номеру необходимо условие: полилиния значения "Послою" у всехсвойсв
(setq list_ver (append list_ver (list koord_ver))));создаем список списков коодинат вершин полилинии конец repeat
;Подпись углов
(initget 7)
(setq nom (getint "\nВведите номер <1> :"))
(setq c -1)
(setq nom_ug (- nom 1))
(setq z (getvar "TEXTSIZE"))
(repeat n
(setq c (1+ c));увеличиваем значение с на один, n раз
(setq z(+ (1+ z) 5.0 ))
(setq p4 (nth c list_ver))
(setq nom_ug (1+ nom_ug));увеличиваем значение nom_ug на один, n раз
(setq txt_ug (rtos nom_ug 2 0)); создаем подпись для угла
(entmake (mapcar 'cons
(list 0 100 67 410 100 10 40 1 50 41 51 7 71 72 11 210 100 73 8 62)
(list "TEXT" "AcDbEntity" 0 "Model" "AcDbText" (mapcar '- p4 '(5.0 10.0 0.0)) 5.0 txt_ug
0.0 0.7 0.0 (getvar "TEXTSTYLE") 0 0 '(0.0 0.0 0.0)
'(0.0 0.0 1.0) "AcDbText" 0 (getvar "CLAYER") 10)));создаем тексты объекты
(command "_insert" "point_red" p4 "" "" "")
(command "_text" (mapcar '- xp (list 0.0 z 0.0)) (getvar "TEXTSIZE") 0 txt_ug "")
(command "_text" (mapcar '- xp (list(*(+(caadr(textbox (entget (entlast))))5.0)-1.0) z 0.0)) 2.6 0 (rtos (car p4) 2 2) )
(command "_text" (mapcar '- xp (list(*(+(caadr(textbox (entget (entlast))))15.0)-1.0) z 0.0)) 2.6 0 (rtos (car(cdr p4)) 2 2))
)
)
)
)))
(princ))