1. Este sitio usa cookies. Al continuar usando este sitio, estás aceptando nuestro uso de cookies. Más información.

AutoCAD Redibujado y purgado de dibujos

Discusión en 'CAD arquitectura' iniciada por Aitor Solozabal Merino, 04/10/2006.

  1. Dado que ha habido varios mensajes en diferentes momentos relacionados con el excesivo y desmesurado tamaño (varios megas) y elevado numero de objetos (varios miles) dentro de ficheros de Autocad , aparentemente vacios, y que no decrecian aun cuando se ejecutaba el comando de PURGE.
    Esto suele ocurrir con ficheros creados con programas de terceros de ayuda al dibujo pero que crean innumerables objetos que no son eliminados facilmente.
    He escrito una rutina en BATCH (Lotes) para el purgado automático, de una manera desatendida, de todos los ficheros de un directorio, conforme al esquema que se ha enseñado otras veces de insertar un dibujo como referencia externa en un dibujo nuevo y luego hacer un enlazado en modo INSERT , explotar el elemento y purgar finalmente el dibujo, metodo que funciona perfectamente pero que es engorroso dibujo a dibujo.
    Código:
    for %%f in (*.DWG) do echo bindtype 1 -xref a "%%f" 0,0,0 -xref b * explode l zoom E purge all N saveas "%%f" y quit >%%f.scr
    for %%f in (*.DWG) do "C:\AutoCAD 2002\ACAD.EXE" /b %%f.SCR
    for %%f in (*.DWG) do del %%f.scr
    del *.bak
    
    Copiar y pegar estas instrucciones con cualquier editor de textos ( bloc de notas, notepad, wordpad, etc.. ) en un fichero de texto con el nombre que querais pero con la extension .BAT y lo copiais , luego, a cada directorio donde tengais ficheros de AutoCAD que querais purgar.

    Esta rutina tambien sirve para regenerar los dibujos con el Zoom Extents y que guarde la imagen global del dibujo para cuando se busca el fichero. Con pequeños cambios se pueden añadir otros comandos o salvar en una versión inferior de Autocad, plotear o imprimir, etc.. Tambien se puede sustituir el *.dwg por algo más restringido como por ejemplo: 06-102-P*.DWG

    Copiar exactamente lo que hay porque los espacios en blanco cuentan y son importantes, dado que equivalen a la tecla ENTER del teclado.

    Hay que sustituir la palabras C:\AutoCAD 2002\ACAD.EXE por el camino hasta el ejecutable que exista en tu ordenador, sino no funcionará.

    Para ejecutar simplemente desde el explorador de windows seleccionar el subdirectorio donde se ecuentran los dibujos y el fichero por lotes y pulsar 2 veces (clicks) del ratón encima de su nombre.

    Espero que os sea de utilidad. :)
     
  2. Lo que funciona bien en la versión de AutoCAD 2002, no funciona exactamente igual en la versión AutoCAD 2006/2007 :mad: así que corrijo el anterior codigo por el siguiente que sirve para las 2 versiones (o eso creo):

    Código:
    for %%f in (*.DWG) do echo bindtype 1 -xref a "%%f" 0,0,0 -xref b * zoom E explode L purge all N saveas 2000(LT2000) "%%f" y quit >%%f.scr
    for %%f in (*.DWG) do "C:\AutoCAD 2006\acad.exe" /b %%f.SCR
    for %%f in (*.DWG) do del %%f.scr
    del *.bak
    
    La diferencia entre esta rutina y la anterior estriba simplemente en situar la instrucción del zoom extents antes del explode del objeto. El ejecutable es el de la version 2006 y se ha modificado el salvado del fichero en versión 2002.

    Otra utilidad puede ser el auditar los ficheros y salvarlos en un formato de versión de autocad anterior por ejemplo:
    Código:
    for %%f in (*.DWG) do echo OPEN "%%f" zoom E AUDIT Y saveas 2000(LT2000) "%%f" y quit >%%f.scr
    for %%f in (*.DWG) do "C:\AutoCAD 2006\acad.exe" /b %%f.SCR
    for %%f in (*.DWG) do del %%f.scr
    del *.bak
    
    ;) Estas rutinas estan hechas para las versiones en Ingles, para las versiones en Español, hay que modificarlas en los nombres de los comandos y las respuestas que esperan ó poner el guion bajo antes del comando ejemplo _open _xref _save _quit :cool:

    :) Para que funcionen todos los comandos con Autocad LT es necesario adquirir (85$) las herramientas Autocad LT Extender 2000 PLUS que dotan al LT de las características de interpretación de LISP y la activación de nuevo de un monton de comandos desactivados en la versión, una maravilla.:p

    Como ejemplo para Autocad LT en Español quedaria la última rutina de la siguiente manera:

    Código:
    for %%f in (*.DWG) do echo _OPEN "%%f" _zoom E _AUDIT S _save _quit >%%f.scr
    for %%f in (*.DWG) do "C:\Archivos de programa\AutoCAD LT 2002 Esp\aclt.exe" /b %%f.SCR
    for %%f in (*.DWG) do del %%f.scr
    del *.bak
    
    Se ha sustituido OPEN por _OPEN , SAVE por _SAVE (podria también ser GUARDAR ) etc.. y las respuestas Y por S y puede funcionar sin mayor problema, pero comandos que son de las versiones completas de AutoCAD no funcionaran sino se tienen la rutinas comentadas anteriormente.


    La rutina con el purgado automatico y para Autocad LT 2000 en Español quedaria así:
    Código:
    for %%f in (%1*.dwg) do echo -Refx e "%%f" 0,0,0 -Refx u * _zoom E _explode LT -LIMPIA T N _saveas 2000 "%%f" S _quit >%%f.scr
    for %%f in (%1*.dwg) do "C:\Archivos de programa\AutoCAD LT 2002 Esp\aclt.exe" /b %%f.SCR
    for %%f in (%1*.dwg) do del %%f.scr
    del %1*.bak
    
    !Voila¡

    UNA COSA IMPORTANTE:
    No utilizar la letra Ññ en los nombres de los ficheros porque estas rutinas (SCRIPTS) de AutoCAD no funcionan bien así como los espacios en blanco dentro de los nombres, es mejor usar guiones (medios-bajos) en su lugar.
     
  3. germangelv

    germangelv Novel

    Excelente tutorial, podrias actualizarlo para CAD 2009 O 2010 en Ingles y en Español
    Muchas Gracias
     
  4. Como no.

    Adjunto la rutina para Autocad 2010 en la versión en Ingles - en castellano se puede poner el guión bajo delante del comando de Autocad ó sustituir por los comandos equivalentes.

    Ojo con los espacios en blanco ya que son necesarios en las instrucciones de Autocad.

    Por otro lado recordar que en el proceso por lotes los nombres de los dibujos de autocad a purgar no deben contener espacios en blanco ( sustituir por guiones medios o bajos ) ni tampoco caracteres especiales como la Ññ o vocales acentuadas ya que Autocad no lo entendería y pararía el proceso.

    Código:
    for %%f in (*.DWG) do echo bindtype 1 -xref a "%%f" 0,0,0 -xref b * zoom E explode L purge all N SAVEAS 2000 "%%f" y quit >%%f.scr
    for %%f in (*.DWG) do "C:\Archivos de programa\AutoCAD 2010\acad.exe" /b %%f.SCR
    for %%f in (*.DWG) do del %%f.scr
    del *.bak
    
    La rutina salva el fichero al formato ACAD 2000 que es más universalmente compatible a la hora de enviar ficheros a otras empresas ó profesionales pero ocupa más espacio en disco y puede perder algunas características del Autocad 2010, pero eso es fácilmente modificable.
     

Compartir esta página