AutoCad - renombrar todas las capas

 
Vista:
sin imagen de perfil

renombrar todas las capas

Publicado por Olaya (7 intervenciones) el 16/12/2021 14:14:12
Hola,
Necesito cambiar la codificación de todas las capas que hay en la plantilla de CAD. Hay alguna manera de hacerlo a través de un excel para no ir una a una cambiando todo el nombre?
por ejemplo,
en la plantilla una de las capas es: 22INST (Solar Anada)
el nuevo nombre sería: 50.12_Solar Térmico. Impulsión
Son un total de 220 capas a renombrar sabeis alguna manera de hacerla que no sea una a una?
Un saludo
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil
Val: 1.285
Oro
Ha mantenido su posición en AutoCad (en relación al último mes)
Gráfica de AutoCad

renombrar todas las capas

Publicado por Gerardo (986 intervenciones) el 17/12/2021 20:35:39
Prueba con este código

*Ponlo en un archivo de texto simple

*Reemplaza cada "viejo#" por el nombre de una capa a renombrar y el "nuevo#" al lado por el respectivo nuevo nombre. (Si los tienes en excel puedes hacer una concatenacion en excel agregando comillas y paréntesis y copiar todos de una sola vez al archivo de texto. Las tabulaciones no importan, solo las comillas y los paréntesis)

*Agrega tantas líneas como necesites sin perder la lógica de los paréntesis

Finalmente guarda el archivo con extension .LSP

En cada dibujo que quieras renombrar capas solo debes arrastrar el icono del archivo .lsp sobre el area gráfica de autocad y soltarlo ahí. Las capas deberían renombrarse con eso.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
(foreach
  par
    '(
      ("Viejo 1" "Nuevo 1")
      ("Viejo 2" "Nuevo 2")
      ("Viejo 3" "Nuevo 3")
      ("Viejo 4" "Nuevo 4")
    )
  (if (setq ent (tblobjname "LAYER" (car par)))
    (progn
      (setq lent (entget ent))
      (entmod (subst (cons 2 (cadr par)) (cons 2 (car par)) lent))
    )
  )
)


y nos cuentas si te funciona
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar

renombrar todas las capas

Publicado por Olaya (2 intervenciones) el 27/12/2021 16:30:11
Hola,
Disculpa que no haya contestado antes, estaba a final de año y ha sido un poco locura. No he podido probar la ruta espero en estos dias probarla y te digo
Un saludo y Felicas Fiestas
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 1.285
Oro
Ha mantenido su posición en AutoCad (en relación al último mes)
Gráfica de AutoCad

renombrar todas las capas

Publicado por Gerardo (986 intervenciones) el 17/12/2021 20:41:20
(si no te funciona puedes subir un dwg donde la probaste y el codigo con el nombre de las capas para probarlo)
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

renombrar todas las capas

Publicado por Olaya (2 intervenciones) el 29/12/2021 12:45:05
Hola
He probado el código y me da este error

Command: (LOAD "I:/InsNueva/10_MejoraCont/A. CAD/00_Recursos Autocad/Renombrar capas.lsp") ; error: malformed string on input

SI quieres te envio el LSP y el CAD para que lo mires , lo he provado varias veces y no encuentro el error
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

renombrar todas las capas

Publicado por Olaya (7 intervenciones) el 29/12/2021 12:51:26
Te adjunto el archivo de CAD y el LSP que he generado con tu rutina
Muchas gracias por la ayuda
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 1.285
Oro
Ha mantenido su posición en AutoCad (en relación al último mes)
Gráfica de AutoCad

renombrar todas las capas

Publicado por Gerardo (986 intervenciones) el 29/12/2021 20:13:00
Hola

Para que el AutoCad reconozca y ejecute el código solo debes corregir un pequeño error en la primera capa que pusiste, que le faltan las comillas de cierre después de la x


Sin-titulo


Ahora, hay otras diferencias que no sé si los omitiste a propósito o se te escaparon. La mayoría de las capas en el archivo que subiste de ejemplo tienen una parte de su nombre entre paréntesis. Pero en el lsp no incluiste ninguna con paréntesis.

Por ejemplo
"40INST (PCI Extincio Txt)" es distinto a "40INST PCI Extincio Txt" y es suficiente para que la rutina no encuentre coincidencia.

Pero como te digo, no sé si es a propósito que lo pusiste así o se te escapó el detalle. Yo la probé y las que no tienen paréntesis se renombran sin problema
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

renombrar todas las capas

Publicado por Olaya (7 intervenciones) el 30/12/2021 09:40:46
Hola
he realizado los cambios que me comentas en el LSP con los nombres de las capas ya corregidos y ahora me da este error

Command:
Command: (LOAD "I:/InsNueva/10_MejoraCont/A. CAD/00_Recursos Autocad/Renombrar capas.lsp") ; error: bad argument type: consp " "
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 1.285
Oro
Ha mantenido su posición en AutoCad (en relación al último mes)
Gráfica de AutoCad

renombrar todas las capas

Publicado por Gerardo (986 intervenciones) el 29/12/2021 20:35:10
Te regalo este otro pequeño código. Este carga un nuevo comando llamado listacapas que te escribe todas las capas de un archivo en un archivo .txt

1
2
3
4
5
6
7
8
9
10
(defun c:listacapas (/ f fd L)
	(setq F (getfiled (getvar "dwgname") (strcat (getvar "dwgprefix") (vl-filename-base (getvar "dwgname")) ".txt") "txt" 1)
			fd (open f "w")
	)
	(write-line (cdr (assoc 2 (tblnext "LAYER" t))) fd)
	(while (setq L (tblnext "LAYER"))
		(write-line (cdr (assoc 2 L)) fd)
	)
	(close fd)
)

Entonces puedes ponerlo en un archivo .lsp y cargarlo como el otro, o solo copiarlo tal cual y pegarlo en la línea de comandos y dar intro. En cualquier caso al hacerlo no se ejecutará nada sino que solo quedará cargado el nuevo comando en la sesión actual para el dibujo actual. Entonces después de eso al escribir el nombre del comando en linea de comandos (listacapas) y presionar intro se ejecutará el proceso de exportación al archivo .txt que indiques

Así puedes copiar y pegar de una los nombres de capas en excel para preparar la lista de cambios o en el otro lsp para completar con los nombres nuevos manualmente
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

renombrar todas las capas

Publicado por Olaya (7 intervenciones) el 30/12/2021 09:41:57
Muchas gracias ha sido muy util,
Te adjunto el LSP modificado
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 1.285
Oro
Ha mantenido su posición en AutoCad (en relación al último mes)
Gráfica de AutoCad

renombrar todas las capas

Publicado por Gerardo (986 intervenciones) el 30/12/2021 22:57:28
A que ese modificado no te funciona bien, porque ahora le agregaste otras comillas que no estaban antes en cada cadena después del paréntesis interno.

Te lo voy a corregir yo, pero si agregas más capas debes ser más cuidados@, cada nombre exacto debe abrir y cerrar con comillas y si aparecen comillas intermedias estas cerrarán la cadena antes de tiempo, el texto sobrante hasta las otras comillas será tomado como valores en vez de texto y las comillas que finalmente cerrarían el nombre de la capa más bien estarán abriendo un nuevo nombre.

Además le agregué que para cada capa escriba al final si se renombró o si hubo algún error, así me enteré que no quería renombrar por "58.10_ITC CCTV " porque había un espacio al final de ese nombre y no se aceptan cadenas con espacios al final

(otra cosa, cuando edites los archivos en notepad trata de usar codificación ANSI, porque de lo contrario las tildes, eñes y otros caracteres pueden ser interpretados diferente en el autocad - para más seguridad en vez del block de notas puedes editar en la interfaz de programación de autolisp, que se abre con el comando VLIDE de autocad. Ahí abres, editas y guardas igual con la ventaja de que las cadenas de texto entre comillas se pintan de un color específico permitiendo encontrar errores de comillas)

En fin, espero que te sirva ya de una el que te adjunto
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
sin imagen de perfil

renombrar todas las capas

Publicado por Olaya (7 intervenciones) el 04/01/2022 09:37:31
Muchisimas gracias por la ayuda, ahora si que ha funcionado perfectamente. Estas cosas siempre me cuestan un poco ser un poco mas cuidadosa y darme cuenta de los errores, yo pensaba que lo tenía bien y eso que lo repase varias veces.
Que tengas un año increible y muchas gracias
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 1.285
Oro
Ha mantenido su posición en AutoCad (en relación al último mes)
Gráfica de AutoCad

renombrar todas las capas

Publicado por Gerardo (986 intervenciones) el 05/01/2022 00:43:07
Me alegro que te fuera util

Muchos exitos para este 2022!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar