| Правила | Регистрация | Пользователи | Поиск | Сообщения за день | Все разделы прочитаны |  Справка по форуму | Файлообменник |

Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > Готовые программы > Массовое переименование слоев в группе файлов

Массовое переименование слоев в группе файлов

Ответ
Поиск в этой теме
Непрочитано 30.09.2011, 12:46 #1
Массовое переименование слоев в группе файлов
nik_mb
 
конструктор
 
Волгоград
Регистрация: 23.03.2009
Сообщений: 120

Иногда, работая со смежниками и получая от них задания, вставляешь в свой чертеж чужой фрагмент со множеством разнообразных слоев. При желании отфильтровать приходится каждому слою добавлять начальный символ специальности.
Случайно нашел тему "Нужно решение (программа) для массового переименования всех блоков"
И из того кода слепил этот.
Не сказать, что это полностью законченная программа - скорее полуфабрикат. Самый трудоемкий процесс это добавление списка слоев. Разнообразие слоев бывает большим - более 100 (даже после всепуржения). В программу встроен модуль получения списка слоев из папки с чертежами на текстовый экран. Этот список копипастим в Word, сортируем и можно сохранить в текстовом файле, из которого можно копировать некоторые экзотические названия.
Код:
[Выделить все]
 
;|    Переименовать слои в чертежах командой renamlay
    Необходимо перед началом действия
   1. Загрузить новый чертеж
   2. Поместить в особую папку (легко доступную) изменяемые чертежи
   3. Составить список слоев для переименования и вставть в программу - место
   отмечено строкой решеток.
    Для работы с неактивным документом используется метод ObjectDBX
        http://autolisp.ru/2010/04/08/proceed-unactive-document/
|;
(defun _lispru-acad-version ()
  (atof (getvar "acadver"))
) ;_ end of defun

(defun _lispru-odbx (/)
  (cond
    ((< (_lispru-acad-version) 15.06)
     (alert "ObjectDBX метод не применим\nв этой версии AutoCAD"
     ) ;_ end of KPBLC-MSG-ALERT
     nil
    )
    ((= (fix (_lispru-acad-version)) 15)
     (if (not (vl-registry-read
		"HKEY_CLASSES_ROOT\\ObjectDBX.AxDbDocument\\CLSID"
	      )
	 ) ;_ end of not
       (startapp "regsvr32.exe"
		 (strcat "/s \"" (findfile "axdb15.dll") "\"")
       ) ;_ end of startapp
     ) ;_ end of if
     (vla-getinterfaceobject
       (vlax-get-acad-object)
       "ObjectDBX.AxDbDocument"
     ) ;_ end of vla-getinterfaceobject
    )
    (t
     (vla-getinterfaceobject
       (vlax-get-acad-object)
       (strcat "ObjectDBX.AxDbDocument."
	       (itoa (fix (_lispru-acad-version)))
       )
     ) ;_ end of vla-getinterfaceobject
    )
  ) ;_ end of cond
) ;_ end of defun

; Исходный код http://www.caduser.ru/forum/index.php?PAGE_NAME=message&FID=23&TID=48293&MID=269115#message269115 пост #2
(defun Directory-Dia (Message / sh folder folderobject result)
  (vl-load-com)
  (setq	sh (vla-getInterfaceObject
	     (vlax-get-acad-object)
	     "Shell.Application"
	   )
  )
  (setq	folder (vlax-invoke-method
		 sh
		 'BrowseForFolder
		 (vla-get-HWND (vlax-get-Acad-Object))
		 Message
		 0
;;; This is the bit number to change.
;;; Вместо 0 можно попробовать (+ 16 64)
;;; 16 - позволяет набирать путь 
;;; 64 - позволяет создавать новую папку
		 ""			; - корневой каталог, не обязательный параметр !!! НЕЛЬЗЯ БУДЕТ ВЕРНУТЬСЯ НА УРОВЕНЬ ВЫШЕ !!!
	       )
  )
  (vlax-release-object sh)
  (if folder
    (progn
      (setq folderobject
	     (vlax-get-property folder 'Self)
      )
      (setq result (vlax-get-property FolderObject 'Path))
      (vlax-release-object folder)
      (vlax-release-object FolderObject)
      2
      (if (/= (substr result (strlen result)) "\\")
	(setq result (strcat result "\\"))
	result
      )
    )
  )
) ;_ end of defun

(defun c:renamlay (/  path_folder lst_files   path_file
		   odbx	       lay_def
		     )
  (if (setq path_folder (Directory-Dia "Укажите папку: "))
    (if	(setq
	  lst_files (mapcar '(lambda (x) (strcat path_folder x))
			    (vl-directory-files path_folder "*.dwg" 1)
		    )
	)
      (foreach path_file lst_files
	(if (setq odbx (_lispru-odbx))
	  (progn
	    (vla-open odbx path_file)
	    ;; открыть файл
	    (setq laynabnam nil)
	    (vlax-for lay_def (vla-get-layers odbx)
	      ;; цикл по набору блоков чертежа
	      (if (vl-catch-all-error-p
		    (setq err
			   (vl-catch-all-apply
			     (function
			       (lambda ()
				 (setq laynamp (vla-get-name lay_def))
				 ;; берем каждый слой 
				 (setq laynabnam (cons laynamp laynabnam))
				 ;; собираем в общий набор для проверки совпадения
			       )
			     )
			   )
		    )
		  )
		(setq err_lst (cons
				(cons (vla-get-name lay_def)
				      (vl-catch-all-error-message err)
				)
				err_lst
			      ) ;_ end of cons
		)
	      )
	    )
	    (vlax-for lay_def (vla-get-layers odbx)
	      ;; цикл по набору блоков чертежа
	      (if (vl-catch-all-error-p
		    (setq err
			   (vl-catch-all-apply
			     (function
			       (lambda ()
				 (setq laynamp (vla-get-name lay_def))
				 (cond
((= (substr (strcase laynamp) 1 16) "2_ПОДВАЛ_СТП.DWG")
;; если несколько слоев с похожими названиями то берем только часть названия
;; присваеваем новое имя
(setq laymannw "А_Линия") )
((= (strcase laynamp) "2-АРХ-ШТЗИХОВКА-0.15")
;; присваеваем новое имя
(setq laymannw "А_Штриховка"))
;; И так далее для всех слоев для которых необходимо переименование
;; ################################################################
;;По типу
;;((= (strcase laynamp) "Имя_Слоя_Старое")(setq laymannw "Имя_Слоя_Новое"))
;; Получить список используемый в чертеже командой "sobla"
;; Список выводится в текстовом окне автокада
				   (laynamp (setq laymannw laynamp))
				   ;; другие слои остаются как есть
				 )
			       ) ;_ end of lambda
			     ) ;_ end of function
			   ) ;_ end of vl-catch-all-apply
		    )
		  )
		(setq err_lst (cons
				(cons (vla-get-name lay_def)
				      (vl-catch-all-error-message err)
				)
				err_lst
			      ) ;_ end of cons
		) ;_ end of setq
	      ) ;_ end of if
	      (if (not (equal laymannw laynamp))
;; Если старое и новое имя слоя совпадают то не менять ничего
		(progn 
		       (prov_sov_layers)
		       ;; проверяем совпадение слоев
		       (while treb_prov
			 ;; пока стоит метка на изменение нового имени
			 (poim_lay)
			 ;; дать оригинальную метку
		       )
		       (setq laynabnam (cons laymannw laynabnam))
		       (vla-put-name lay_def laymannw)
		)
	      );; Если
	    ) ;_ end of vlax-for
	    (vla-saveas odbx path_file)
	    ;; сохранить файл
	    (vlax-release-object odbx)
	    (setq odbx nil)
	  )
	)
      )
      ;; forea
    )
    ;; if
  )
  ;; if
) ;_ end of defun

(defun prov_sov_layers (/ laysu n)
  (setq	n 0
	treb_prov nil
  )
  (while (< n (length laynabnam))
    ;; по всему набору слоев
    (setq laysu (nth n laynabnam))
    ;; каждый слой для сравнения
    (if	(= (strcase laysu) (strcase laymannw))
      (progn
	(setq treb_prov	T
	      n		(1+ (length laynabnam))
	)
	;; Если имена совпали, то прекратить поиск и установить признак повторной проверки
      )
    )
    (setq n (1+ n))
  )
)

(defun poim_lay	(/ l_nam nol);; присвоение оригинальной метки
  (setq	l_nam	(strlen laymannw)
	nol	1
	po_indx	(strlen laymannw)
  )
  ;; Присвоить начальную метку 1
  (setq po_indx (vl-string-search "_" laymannw (- l_nam 3)))
  ;; Поиск метки
  (if po_indx
    (progn
      ;; если метка есть
      (setq nol (1+ (atoi (substr laymannw (+ 2 po_indx)))))
      ;; взять номер и установить следующий
    )
  )
  (setq laymannw (strcat (substr laymannw 1 po_indx) "_" (itoa nol)))
  ;; Сделать имя слоя с (новой) меткой
  (prov_sov_layers)
  ;; проверить на совпадение
)

(defun c:sobla (/ path_folder lst_files path_file)
  (setq	nofl 0
	laynabnam nil
  )
  (if (setq path_folder (Directory-Dia "Укажите папку: "))
    (if	(setq
	  lst_files (mapcar '(lambda (x) (strcat path_folder x))
			    (vl-directory-files path_folder "*.dwg" 1)
		    )
	)
      (foreach path_file lst_files
	(if (setq odbx (_lispru-odbx))
	  (progn
	    (vla-open odbx path_file)
	    ;; открыть файл
	    (vlax-for lay_def (vla-get-layers odbx)
	      ;; цикл по набору блоков чертежа
	      (if (vl-catch-all-error-p
		    (setq err
			   (vl-catch-all-apply
			     (function
			       (lambda ()
				 (setq laynamp (vla-get-name lay_def))
				 (if (> nofl 0)
				   (prov_sovpad_layers)
				   (progn (setq
					    laynabnam (cons laynamp laynabnam)
					  )
					  (princ "\n")
					  (princ laynamp)
				   )
				 )
			       )
			     )
			   )
		    )
		  )
		(setq err_lst (cons
				(cons (vla-get-name lay_def)
				      (vl-catch-all-error-message err)
				)
				err_lst
			      ) ;_ end of cons
		)
	      )
	    ) ;_ end of vlax-for
	    (setq nofl (1+ nofl))
	    (vla-saveas odbx path_file)
	    (vlax-release-object odbx)
	    (setq odbx nil)
	  )
	)
      )
      ;; forea
    )
    ;; if
  )
  ;; if
) ;_ end of defun

(defun prov_sovpad_layers ()
  (setq	n	0
	eq_prov	nil
	l_nab	(length laynabnam)
  )
  (while (< n l_nab)
    (setq laysu (nth n laynabnam))
    (if	(equal (strcase laysu) (strcase laynamp))
      (progn
	(setq eq_prov T
	      n	(1+ l_nab)
	)
      )
    )
    (setq n (1+ n))
  )
  ;; while
  (if (not eq_prov)
    (progn
      (setq laynabnam (cons laynamp laynabnam))
      (princ laynamp)
      (princ "\n")
    )
  )
)

__________________
Мой сайт ingnmb.wixsite.com/acad-s

Последний раз редактировалось nik_mb, 30.09.2011 в 23:15.
Просмотров: 11835
 
Непрочитано 30.09.2011, 20:31
#2
Нефтепроводчик


 
Регистрация: 17.03.2009
Сообщений: 114


Можно подробное руководство, что как делать? И желательно пример.
Нефтепроводчик вне форума  
 
Непрочитано 30.09.2011, 21:41
#3
Кулик Алексей aka kpblc
Moderator

LISP, C# (ACAD 200[9,12,13,14])
 
Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,787


Я не анализировал и не проверял код, вопрос немного "в воздух": а что будет, если слой с "новым" именем уже есть в файле?
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Автор темы   Непрочитано 30.09.2011, 23:08 Вроде работает
#4
nik_mb

конструктор
 
Регистрация: 23.03.2009
Волгоград
Сообщений: 120


Собрал чертежи в особую папку. Открыл новый (пустой) чертеж. Подгрузил программу. Разумеется заранее вбил нужное переименование слоев. Фрагмент внутри функции "cond" выглядит так:
Код:
[Выделить все]
 ((= (strcase laynamp) "ДВЕРИ")(setq laymannw "А_Двери"))
((= (substr (strcase laynamp) 1 15) "ДВЕРИ _НОМ_ПЕРА")(setq laymannw "А_Двери"))
((= (substr (strcase laynamp) 1 14) "ДВЕРИ ARCHICAD")(setq laymannw "А_Двери"))
Были такие слои: "Выноски, Двери, Двери _Ном_пера__1, Двери _Ном_пера__21, Двери ArchiCAD, Двери ArchiCAD_Ном_пера__1, Двери ArchiCAD_Ном_пера__21".
Стали такие: "А_Выноски, А_Двери, А_Двери_1, А_Двери_2, А_Двери_3, А_Двери_4, А_Двери_5, А_Двери_6".
При совпадении слоев программа добавляет, в конце, числовой индекс.
__________________
Мой сайт ingnmb.wixsite.com/acad-s
nik_mb вне форума  
 
Непрочитано 05.10.2011, 10:54
#5
Вовочка

пищевая технология
 
Регистрация: 02.06.2009
Киев
Сообщений: 283
<phrase 1=


Нефтепроводчик прав. Нужен более полный мануал. А так у вас инструкции расписаны в самом коде. Спасибо. Идея замечательная.
Вовочка вне форума  
 
Непрочитано 05.10.2011, 11:11
#6
Сергей Богатов


 
Регистрация: 21.02.2009
Сообщений: 825


Offtop: это не программирование, но есть транслятор слоёв laytrans
__________________
Я-проектировщик бывший проектировщик!
Сергей Богатов вне форума  
 
Автор темы   Непрочитано 05.10.2011, 21:13
1 | #7
nik_mb

конструктор
 
Регистрация: 23.03.2009
Волгоград
Сообщений: 120


Цитата:
Сообщение от Вовочка Посмотреть сообщение
Нефтепроводчик прав. Нужен более полный мануал. А так у вас инструкции расписаны в самом коде. Спасибо. Идея замечательная.
Возможно упустил, для тех кто не силен в лиспе, то, что в коде после "(= (strcase laynamp)" строка "Имя_Слоя_Старое" набирается заглавными буквами. Как в примере поста #4.
Технология переименования слоев проста.
1. Копипастим код из поста в редактор "Visual Lisp" как есть и кнопочкой "загрузить активное окно редактора" загружаем в чертеж (пустой)
2. Переходим в окно Автокада и в командной строке набираем команду "sobla". Выбираем папку с файлами у которых будут изменятся слои.
3. Нажав F2 из текстового окна копипастим все используемые слои сначала в какой-нибудь текстовый редактор (например AkeIPad) и переводим весь список слоев в прописные. А от туда копируем в функцию COND (там где много #).
4. Вставляем перед каждым слоем - ((= (strcase laynamp) " а после - ")(setq laymannw "новое имя")). Понятно, что "новое имя" (можно писать одинаковые - программа доставит в конце нового имени слоя индексы) это назначенное новое имя для слоя записанного прописными.
5. Когда работа будет пройдена и убран "мусор", опять кнопочкой "загрузить активное окно редактора" загружаем код в чертеж.
6. Теперь в командной строке Автокада набираем "renamlay". Выбирам опять папку с файлами чертежей, где будут менятся слои. После нескольких секунд все файлы будут изменены.

Конечно, для тех, кто хотел бы меньше заморочек можно усовершенствовать программу. Код сразу загружать в чертеж, а имена перезначаемых слоев записать в текстовый файл разделив старое и новое название слоев каким-нибудь малоупотребимым символом (например "#"). Но составлять свой список (возможно и не маленький) все равно придется пользователю. Такой вариант кода пишется и может быть, если время позволит, будет скоро выложен.
__________________
Мой сайт ingnmb.wixsite.com/acad-s
nik_mb вне форума  
 
Непрочитано 06.10.2011, 09:43
#8
Вовочка

пищевая технология
 
Регистрация: 02.06.2009
Киев
Сообщений: 283
<phrase 1=


Вопросы: почему весь текст нужно выполнять прописными (ну не силен я в лиспе , я пользователь ваших идей. И если разобраться, то ради таких как я вы и создаете все это)? Можно ли это автоматизировать средствами данной программы? Плюс к этому хотелось бы диалог старое имя-новое имя упростить. Я имею в виду можно ли как то функциям ((= (strcase laynamp) и ")(setq laymannw "новое имя")) дать более простые псевдоимена или что то такое. Спасибо!!!
Вовочка вне форума  
 
Автор темы   Непрочитано 06.10.2011, 11:47 Новый вариант
#9
nik_mb

конструктор
 
Регистрация: 23.03.2009
Волгоград
Сообщений: 120


Подкорректировал програмку. Теперь вся трасляция слоев записывается в текстовый файл с именем "lay_trans.txt". Этот файл создается (копируется или переносится) в папке из которой будут меняться слои в чертежах (чтобы дважды не указывать положение). Образец прилагается. Каждая строка для каждого переименования, по типу "Имя_Старого_Слоя#Имя_Нового_Слоя". Имена старых слоев можно указывать прописными или строчными буквами. Новых - так как они должны быть записаны. В файле программы менять ничего не надо.
Технология почти как и предыдущая.
Вложения
Тип файла: zip Renamlay.zip (3.1 Кб, 180 просмотров)
__________________
Мой сайт ingnmb.wixsite.com/acad-s
nik_mb вне форума  
 
Непрочитано 06.10.2011, 15:28
#10
ASLYS

Delineante
 
Регистрация: 26.12.2006
Ростов-на-Дону/Madrid
Сообщений: 396
<phrase 1=


почему в каждом чертеже к новому имени добавляет _1, _2, _3 и т.д. ?
ASLYS вне форума  
 
Автор темы   Непрочитано 06.10.2011, 16:58
#11
nik_mb

конструктор
 
Регистрация: 23.03.2009
Волгоград
Сообщений: 120


Цитата:
Сообщение от ASLYS Посмотреть сообщение
почему в каждом чертеже к новому имени добавляет _1, _2, _3 и т.д. ?
При выполнении программы, когда назначается новое имя слоя совпадающие с уже существующим, такому новому слою добавляется порядковый индекс в конце. В общем - количество слоев до и после переименования должно остатся одинаковым. Слить примитивы в один слой из других слоев средствами LISPа (при обработке нескольких файлов) не получается. При этой технологии открытия файлов, кажется (и не пробывал) не поддерживается "PurgeAll" метод, позволяющий удалить неиспользуемые объекты.
__________________
Мой сайт ingnmb.wixsite.com/acad-s
nik_mb вне форума  
 
Непрочитано 06.10.2011, 18:05
#12
ASLYS

Delineante
 
Регистрация: 26.12.2006
Ростов-на-Дону/Madrid
Сообщений: 396
<phrase 1=


например
у меня есть 10 чертежей. в каждом есть только один слой ААА. Я хочу, чтобы он назывался в каждом чертеже ВВВ. Но в результате получаю
чертеж1 - слой ВВВ
чертеж2 - слой ВВВ_1
чертеж3 - слой ВВВ_2
чертеж4 - слой ВВВ_3 и т.д.
ASLYS вне форума  
 
Автор темы   Непрочитано 06.10.2011, 19:11
#13
nik_mb

конструктор
 
Регистрация: 23.03.2009
Волгоград
Сообщений: 120


Цитата:
Сообщение от ASLYS Посмотреть сообщение
например
у меня есть 10 чертежей. в каждом есть только один слой ААА. Я хочу, чтобы он назывался в каждом чертеже ВВВ. Но в результате получаю
чертеж1 - слой ВВВ
чертеж2 - слой ВВВ_1
чертеж3 - слой ВВВ_2
чертеж4 - слой ВВВ_3 и т.д.
Да, мой косяк. Подправил.
Вложения
Тип файла: zip RenamLay.zip (2.8 Кб, 209 просмотров)
__________________
Мой сайт ingnmb.wixsite.com/acad-s
nik_mb вне форума  
 
Непрочитано 06.10.2011, 20:05
#14
ASLYS

Delineante
 
Регистрация: 26.12.2006
Ростов-на-Дону/Madrid
Сообщений: 396
<phrase 1=


спасибо,
работает как надо, пригодится
ASLYS вне форума  
 
Непрочитано 29.11.2011, 01:33
#15
maotai


 
Регистрация: 29.11.2011
Сообщений: 5


Помогите, не получается переименовать слои:
---------------------------------------------------------
Команда: (LOAD "C:/Users/MikhailKozlov/Downloads/RenamLay/Rename Layer
new.LSP") PROV_SOVPAD_LAYERS

Команда: SOBLA

0
Слой1
Слой2
Слой3nil

Команда:
Команда: RENAMLAY
nil


Сборка:
ACADVER = "18.2s (LMS Tech)"

Примерно с тем же результатом пробовал на 2008 и 2011.

Помогите код очень нужен, пусть даже с обрезанной пакетностью (работа только с активным документом). Сложно ли дописать этот лисп, чтобы аналогичным способом переименовывать блоки?
maotai вне форума  
 
Непрочитано 16.12.2011, 13:22
#16
Al_ufa


 
Регистрация: 03.09.2009
Сообщений: 5


Цитата:
Сообщение от nik_mb Посмотреть сообщение
Подкорректировал програмку. Теперь вся трасляция слоев записывается в текстовый файл с именем "lay_trans.txt". Этот файл создается (копируется или переносится) в папке из которой будут меняться слои в чертежах (чтобы дважды не указывать положение). Образец прилагается. Каждая строка для каждого переименования, по типу "Имя_Старого_Слоя#Имя_Нового_Слоя". Имена старых слоев можно указывать прописными или строчными буквами. Новых - так как они должны быть записаны. В файле программы менять ничего не надо.
Технология почти как и предыдущая.
после запуска сначала выдавал ошибку

Команда: renamlay
; ошибка: неверный тип аргумента: FILE nil

после переноса файла lay_trans.txt в папку, в которой расположены файлы для переименования начал выдавать ошибку:

Команда:
RENAMLAY ; ошибка: неверный тип аргумента: stringp nil

в чем проблема?

у меня задача добавить перед всеми названиями слоев, которые есть в чертежах (в папке) нижнее подчеркивание. как можно малой кровью это сделать чтобы не перелопачивать все чертежи и не переименовывать имеющиеся в них слои?

Последний раз редактировалось Al_ufa, 16.12.2011 в 15:58.
Al_ufa вне форума  
 
Автор темы   Непрочитано 17.12.2011, 11:31
#17
nik_mb

конструктор
 
Регистрация: 23.03.2009
Волгоград
Сообщений: 120


В программе была (ошибочно) заложена зависимость по способу формирования списка трансляции. Программа работала, если в конце списка была пустая строка. Добавил в код такой фрагмент (if (not str_lay)(setq str_lay "")) и теперь программа принимает также списки без последней пустой строки. Обновленная программа и образец списка переименования прикреплены.

ЗЫ. Изменяемые файлы не должны быть загружены в Автокаде или других программах!
Вложения
Тип файла: zip RENAMLAY.zip (3.0 Кб, 238 просмотров)
__________________
Мой сайт ingnmb.wixsite.com/acad-s

Последний раз редактировалось nik_mb, 17.12.2011 в 18:16.
nik_mb вне форума  
 
Непрочитано 19.12.2011, 14:25
#18
Al_ufa


 
Регистрация: 03.09.2009
Сообщений: 5


Цитата:
Сообщение от nik_mb Посмотреть сообщение
В программе была (ошибочно) заложена зависимость по способу формирования списка трансляции. Программа работала, если в конце списка была пустая строка. Добавил в код такой фрагмент (if (not str_lay)(setq str_lay "")) и теперь программа принимает также списки без последней пустой строки. Обновленная программа и образец списка переименования прикреплены.

ЗЫ. Изменяемые файлы не должны быть загружены в Автокаде или других программах!
заработало! спасибо

но как говорится чем дальше в лес, тем толще партизаны...
не могли бы вы сделать универсальный универсальный инструмент чтобы в названия всех слоев, которые встречаются в файле добавлялось нижнее подчеркивание?

(вызвано это тем, что в различных файлах одни и те же слои могут называться по-разному)
Al_ufa вне форума  
 
Автор темы   Непрочитано 20.12.2011, 18:33
#19
nik_mb

конструктор
 
Регистрация: 23.03.2009
Волгоград
Сообщений: 120


Цитата:
Сообщение от Al_ufa Посмотреть сообщение
не могли бы вы сделать универсальный универсальный инструмент чтобы в названия всех слоев, которые встречаются в файле добавлялось нижнее подчеркивание?
Ну, не совсем универсальный. Вариант с добавление введенных символов перед именами всех имеющихся слоев, за исключением "0" и "Defpoits".
Команда на выполнение: ADDRENAMLAY. Вроде работает, так что можно использовать "как есть".
Вложения
Тип файла: zip AddRenamLay.zip (2.8 Кб, 329 просмотров)
__________________
Мой сайт ingnmb.wixsite.com/acad-s
nik_mb вне форума  
 
Непрочитано 26.12.2011, 17:20
#20
maotai


 
Регистрация: 29.11.2011
Сообщений: 5


Заработало!
Спасибо!
З.Ы.
Решил свою проблему. Чтобы переименовывались и возвращались слои блоки, достаточно заменить функцию vla-get-layers на vla-get-blocks

Последний раз редактировалось maotai, 26.12.2011 в 19:18.
maotai вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > Готовые программы > Массовое переименование слоев в группе файлов

Размещение рекламы
Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Групповое переименование слоев (rename layers) ElectroBOG AutoCAD 5 27.09.2023 07:28
1000 слоев. Нормально или плохо? И другие аспекты правильного черчения в автокаде Vova AutoCAD 96 07.09.2019 16:26
Для чего нужны фильтры слоев?Как ими пользоваться? Aysulu AutoCAD 43 17.04.2019 10:59
Переименование стандартных слоев в AutoCAD Architecture 2008 Кристи Вертикальные решения на базе AutoCAD 2 14.10.2008 15:22
Переименование файлов Солидворкер Разное 21 28.03.2008 10:30