acad hispano
¿Quieres reaccionar a este mensaje? Regístrate en el foro con unos pocos clics o inicia sesión para continuar.

Preparación y limpieza de referencias externas

3 participantes

Ir abajo

Preparación y limpieza de referencias externas Empty Preparación y limpieza de referencias externas

Mensaje por supertxull Miér Oct 26, 2022 11:22 am

En mi trabajo recibimos archivos con multitud de entidades que utilizamos como referencias externas. Cuando cargamos estos archivos, ocultamos y congelamos capas para mostrar aquello que nos interesa pero, la referencia sigue conteniendo muchísima información. He pensado en generar un lisp que elimine todas aquellas entidades contenidas en capas ocultas o congeladas y así aligerar muchísimo el archivo. ¿Cuál es el problema? Pues que a su vez, en el archivo hay multitud de bloques (incluso bloques anidados) y a la hora de eliminar entidades, comienzan los problemas.
La idea es recorrer todos los bloques del dibujo, si contiene a su vez bloques anidados, entrar en ellos. Eliminar entidades en capas ocultas o congeladas, guardar el bloque y seguir con el siguiente... Una vez recorridos los bloques del dibujo, eliminar las entidades que no se encuentran dentro de bloques y listo. Elimino capas que no contienen entidades y finalizo el script.
¿Existe algún código que haga algo similar? ¿Lo veis viable? Igual hay algún detalle en el que no he caído y me puede generar problemas a posteriori.
He intentado subir un archivo dwg de muestra, pero no lo consigo (debe ser un problema de privilegios).
Gracias de antemano por cualquier tipo de ayuda que podáis facilitarme.

supertxull

Mensajes : 25
Fecha de inscripción : 21/03/2016

Volver arriba Ir abajo

Preparación y limpieza de referencias externas Empty Re: Preparación y limpieza de referencias externas

Mensaje por Gerardo Calvo Miér Oct 26, 2022 4:23 pm

Hola

No creo que necesites una rutina para eso o no entiendo cual sería la ventaja de la rutina frente al borrado manual por capas
Vas al control de capas, clicas en la cabecera de estado de congelado y todas las capas congeladas se te juntan. (o creas un filtro que te muestre solo las congeladas y apagadas), seleccionas de una sola vez todas las capas que quieres borrar, click derecho y opcióin "delete layer" y listo.

Eso haría lo mismo que quieres para una rutina o se me está escapando algún detalle?

O incluso, buscando la quinta pata del gato; alguien tiene que revisar e ir congelando esas capas, supongo que con los comandos laywalk y layfrz. Que tal si en vez de eso, de una vez van usando laydel, entonces en vez de congelar la capa del objeto de una vez borras la capa del objeto.

Gerardo Calvo

Mensajes : 46
Fecha de inscripción : 29/10/2019

Volver arriba Ir abajo

Preparación y limpieza de referencias externas Empty Re: Preparación y limpieza de referencias externas

Mensaje por Gerardo Calvo Miér Oct 26, 2022 4:30 pm

Por cierto, el único detalle con hacerlo así (pero que podría pasar también con una rutina) es que si en un bloque que está en una capa que no se va a borrar, todo el contenido interno está en capas que se borran, la definición del bloque se mantiene, vacía de entidades, y las referencias a bloques vacíos quedan insertadas. En ese caso el paso adicional sera -revisando que no queden capas apagadas- seleccionar todo con ctrl+A, eliminar todo lo visible de la selección seleccionando todo el dibujo por ventana con la tecla shift presionada, y presionando "delete". Luego purgar los bloques para eliminar las definiciones.

Gerardo Calvo

Mensajes : 46
Fecha de inscripción : 29/10/2019

Volver arriba Ir abajo

Preparación y limpieza de referencias externas Empty Re: Preparación y limpieza de referencias externas

Mensaje por supertxull Miér Oct 26, 2022 4:36 pm

Gerardo Calvo escribió:Por cierto, el único detalle con hacerlo así (pero que podría pasar también con una rutina) es que si en un bloque que está en una capa que no se va a borrar, todo el contenido interno está en capas que se borran, la definición del bloque se mantiene, vacía de entidades, y las referencias a bloques vacíos quedan insertadas. En ese caso el paso adicional sera -revisando que no queden capas apagadas- seleccionar todo con ctrl+A, eliminar todo lo visible de la selección seleccionando todo el dibujo por ventana con la tecla shift presionada, y presionando "delete". Luego purgar los bloques para eliminar las definiciones.  
Ese es el problema. Si un bloque está en una capa oculta pero contiene elementos visibles, al eliminar el bloque, elimino los elementos visibles de ese bloque.

supertxull

Mensajes : 25
Fecha de inscripción : 21/03/2016

Volver arriba Ir abajo

Preparación y limpieza de referencias externas Empty Re: Preparación y limpieza de referencias externas

Mensaje por Gerardo Calvo Miér Oct 26, 2022 4:57 pm

mmm ya veo

Pero en ese caso una rutina tendría que hacer dos tareas: el análisis de bloques y el procesamiento de borrado. La segunda sigue siendo innecesaria si no quieres complicarte la vida más de la cuenta.

Al final lo que necesitas es localizar los bloques que cumplen con ese criterio y llevarlos a otra capa. Porque al final serán objetos visibles de todos modos. Puedes hacer una copia "encendida" de cada capa apagada, para que todos esos bloques sigan ordenados en sus capas respectivas y no sean borrados

Si eso te sirve la respuesta a tu pregunta original es: si se puede, nunca he visto un código parecido pero no es nada complicado de hacer

Gerardo Calvo

Mensajes : 46
Fecha de inscripción : 29/10/2019

Volver arriba Ir abajo

Preparación y limpieza de referencias externas Empty Re: Preparación y limpieza de referencias externas

Mensaje por supertxull Miér Oct 26, 2022 5:25 pm

No acabo de entender... si duplico bloques a capas "encendidas" el tamaño del archivo puede llegar a ser tremendo.
Voy a intentar explicarlo de otro modo, con un ejemplo:
Me envían un plano de arquitectura, con elementos estructurales, carpinterías metálicas, etc. Yo trabajo en una ingeniería de climatización y únicamente necesito visualizar la tabiquería. La idea es generar otro archivo con únicamente la tabiquería, puertas y ventanas (pero eliminando todos los elementos estructurales y tornillería y anotaciones de las carpinterías metálicas.
Digamos que sería una especie de "limpia avanzado" en el que pudiese obtener (aunque fuese en una única capa) todo aquello que estoy visualizando, eliminando todo aquello que no se está visualizando, con el fin de aligerar el tamaño del archivo.
Hasta ahora he trabajado con estado de visualización de capas pero, en proyectos grandes, el trabajo es tedioso.
He conseguido eliminar elementos en capas congeladas o/y ocultas pero el problema lo encuentro con los bloques. La solución más drástica es explotar dichos bloques pero, al final, el peso del archivo llega a ser incluso mayor que el original.

supertxull

Mensajes : 25
Fecha de inscripción : 21/03/2016

Volver arriba Ir abajo

Preparación y limpieza de referencias externas Empty Re: Preparación y limpieza de referencias externas

Mensaje por eliasp Miér Oct 26, 2022 6:22 pm

Buen día señores:

Metiendo mi cuchara. Y si lo haces al revés? Es decir, el lugar de eliminar lo que no te sirve, seleccionas lo que sí te sirve y lo pegas en un archivo nuevo en sus coordenadas. Creo que no te meterías en tanto problema.... bueno, eso creo.

Saludos

eliasp

Mensajes : 195
Fecha de inscripción : 17/03/2016

Volver arriba Ir abajo

Preparación y limpieza de referencias externas Empty Re: Preparación y limpieza de referencias externas

Mensaje por Contenido patrocinado


Contenido patrocinado


Volver arriba Ir abajo

Volver arriba


 
Permisos de este foro:
No puedes responder a temas en este foro.