Пакетное переименование блоков и примечаний
(defun ru-block-rename-with-descr (names_descr_file_name
replace_file_name
/
block_descr
block_lst
block_new_name
block_old_name
replacer_list
str_list
err_list
)
;;;Пакетное переименование блоков и примечаний
;|
Файл имен создается программой ru_block_names_file.lsp в формате
Формат строк файла:
имя_блока|Примечание к блоку, а если его нет, имя_блока|имя блока
В конце строки повторяем имя_блока, чтобы из него удобнее было сделать
новое имя. Этот же файл может использоваться для переименования блоков
и для пакетного создания примечаний Результаты переименований
записываются в файл, который может использоваться программой
ru_replacer для пакетной замены в XML и меню в формате:
старое_имя_блока=новое_имя_блока
|;
(if (setq str_list (ru-list-read-from-file names_descr_file_name))
(progn
(ru-splash-show "Переименовываю блоки...")
(foreach str str_list
(setq block_lst (ru-string-to-list str "|")
block_old_name (nth 0 block_lst)
block_descr (nth 1 block_lst)
block_new_name (nth 2 block_lst)
) ;_ end of setq
(if (/= block_old_name block_new_name)
;;Переименование блока
(progn
(ru-splash-set-text
(strcat block_old_name
"
в "
block_new_name
) ;_ end of strcat
) ;_ end of ru-splash-set-text
(if (and (/= block_old_name "")
(/= block_new_name "")
(tblobjname "block" block_old_name)
(not (tblobjname "block" block_new_name)
) ;_ end of not
) ;_ end of and
(progn
(ru-block-set-description
block_old_name
block_descr
) ;_ end of ru-block-set-description
(vla-put-name
(vla-item
(vla-get-blocks
(ru-obj-get-active-document)
) ;_ end of vla-get-blocks
block_old_name
) ;_ end of vla-item
block_new_name
) ;_ end of vla-put-name
(setq replacer_list
(cons
(strcat
block_old_name
"="
block_new_name
) ;_ end of strcat
replacer_list
) ;_ end of cons
) ;_ end of setq
) ;_ end of progn
(setq err_list
(cons
(strcat
"ОШИБКА переименования "
block_old_name
" в "
block_new_name
) ;_ end of strcat
err_list
) ;_ end of cons
) ;_ end of setq
) ;_ end of if
) ;_ end of progn
) ;_ end of if
) ;_ end of foreach
(ru-list-write-to-file replace_file_name replacer_list)
;; запись списка замен
(ru-splash-hide)
) ;_ end of progn
(ru-msg-alert
(strcat "Не могу прочитать
" names_descr_file_name)
) ;_ end of ru-msg-alert
) ;_ end of if
err_list
) ;_ end of defun