Тема: Помогите переделать программу автоматической нумерации
Собственно вопрос уже задан в теме. Вот текст программы:
;;;--------------------------------------------------------- ;;; Программа автоматической нумерации текста ;;; Позволяет быстро сформировать последовательность чисел ;;; начиная с начального, например 24,25,26,27 ... 56, что ;;; может быть особенно полезно при ручном редактировании ;;; спецификаций. ;;; Программа работает предельно просто: введите целое ;;; число - начало последовательности, например 24, затем ;;; указывайте на текстовые примитивы, и последовательно ;;; получите 25,26,27... Если требуется пропустить какое-то ;;; число, то просто щелкайте на примитиве нужное число раз. ;;; v.1.1. По просьбе пользователей добавлена возможность ;;; указания префикса - наверно будет удобно тем, кто часто ;;; рисует схемы. Если не требуется префикс можно не ;;; задавать. ;;; 03 ноября 2002 г. ;;; 26 декабря 2002 г. ;;; Copyright by Sash (Александр Косенко) ;;; СКБ ТО "Автоагрегат" ;;; E-Mail: здесь было мыло автора, но ;;; светить я не стал ;;;--------------------------------------------------------- (defun c:sashrenpr(/ nach prim imprim spis subspis tpara pref) (initget 6) (setq nach (getint "Введите начальный номер:")) (setq pref (getstring "Введите префикс:")) (if (/= nach nil) (progn (setq prim (entsel "Укажите заменяемое число:")) (while prim (setq spis (entget (setq imprim (car prim)))) (setq subspis (assoc 1 spis)) (setq tpara (vl-list* 1 (strcat pref (rtos nach)))) (setq spis (subst tpara subspis spis)) (entmod spis) (setq nach (1+ nach)) (setq prim (entsel "Укажите заменяемое число:")) ) ) ) )
Теперь суть проблемы:
Программа работает, но есть несколько нюансов:
а) Внутренний счетчик переходит на следующее число при указании любого примитива, а не только текста (что, в принципе, правильно, судя по описанию комманды "entmod")
б) Атрибуты в блоке не меняются, только отдельный текст.
Кто-нибудь из знающих сможет помочь в решении этого небольшого вопроса?
Или хотя бы подсказать направление "думания".
Я думаю, что Sash (Александр Косенко) не будет против изменения программы (IMHO).