Preparación y limpieza de referencias externas
3 participantes
Página 1 de 1.
Preparación y limpieza de referencias externas
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.
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 : 22
Fecha de inscripción : 21/03/2016
Re: Preparación y limpieza de referencias externas
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.
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 : 32
Fecha de inscripción : 29/10/2019
Re: Preparación y limpieza de referencias externas
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 : 32
Fecha de inscripción : 29/10/2019
Re: Preparación y limpieza de referencias externas
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.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.
supertxull- Mensajes : 22
Fecha de inscripción : 21/03/2016
Re: Preparación y limpieza de referencias externas
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
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 : 32
Fecha de inscripción : 29/10/2019
Re: Preparación y limpieza de referencias externas
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.
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 : 22
Fecha de inscripción : 21/03/2016
Re: Preparación y limpieza de referencias externas
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
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 : 175
Fecha de inscripción : 17/03/2016
Página 1 de 1.
Permisos de este foro:
No puedes responder a temas en este foro.
|
|