En este ejemplo se muestra cómo exportar archivos DWG en varias carpetas a la vez. Utiliza un archivo por lotes mejorado que incluye el registro y la detección de errores.
El archivo por lotes recibe tres parámetros cada vez que se ejecuta:
En el ejemplo anterior, cada DWG debe contar con un perfil de exportación correspondiente. Este ejemplo permite utilizar un perfil correspondiente o bien uno por defecto. Si un archivo DWG no tiene su propio perfil, se utiliza el valor por defecto.
El archivo de registro captura toda la ventana de comandos para cada archivo DWG. Utiliza el comando de AutoCAD copiahist, que mueve el historial de la ventana de comandos al portapapeles del sistema. Este ejemplo utiliza winclip.exe, una herramienta de código abierto gratuita para pegarla en el archivo de registro.
Puede invocar al archivo por lotes desde un archivo por lotes "exterior": un archivo por lotes principal que solo invoca al archivo por lotes subordinados, proporcionando los parámetros.
Por ejemplo, supongamos que dispone de dibujos para tres ciudades. Si la operación por lotes exporta una carpeta de dibujos para una ciudad, el archivo por lotes exterior podría contener lo siguiente:
batchexport Redding\DWGs Redding\SDFs Redding\DefExport.epf batchexport Spokane\DWGs Spokane\SDFs Spokane\DefExport.epf batchexport Dubuque\DWGs Dubuque\SDFs Dubuque\DefExport.epf
Para utilizar este método, especifique un archivo export.log diferente para cada llamada, o bien mueva la línea if exist export.log del export.log al archivo por lotes exterior. De lo contrario, cada llamada sobrescribirá el registro anterior.
El siguiente ejemplo de archivo por lotes de producción se denomina batchexport.bat. Créelo en el Bloc de notas, como hizo en los procedimientos anteriores.
@echo off setlocal rem Get and verify the command parameters set srcDir=%1 set outDir=%2 set defEpf=%3 if '%srcDir%' == '' goto usage if '%outDir%' == '' goto usage if '%defEpf%' == '' goto usage if not exist %srcDir% ( echo Source Directory "%srcDir%" not found. goto done ) if not exist %srcDir%\*.dwg ( echo No DWG files found in "%srcDir%". goto done ) if not exist %outDir% ( echo Destination Directory "%outDir%" not found. goto done ) if not exist %defEpf% (echo Default Export Profile "%defEpf%" not found. goto done ) if exist export.log del export.log rem Loop through the DWGs, exporting each for %%f in (%srcDir%\*.dwg) do ( if exist %outDir%\%%~nf.sdf del %outDir%\%%~nf.sdf echo. >> export.log echo ******* EXPORTING %%f TO %outDir%\%%~nf.sdf ******* >> export.log echo ******* EXPORTING %%f TO %outDir%\%%~nf.sdf ******* rem Create the Export Script ... echo _-mapexport> export.scr echo FDO_SDF>> export.scr echo %outDir%\%%~nf.sdf>> export.scr echo _yes>> export.scr if exist %%~df%%~pf%%~nf.epf ( rem Use a profile that has the same name as the DWG echo %%~df%%~pf%%~nf.epf>> export.scr ) else ( rem Use the default profile echo %defEpf%>> export.scr ) echo _proceed>> export.scr echo _copyhist>> export.scr echo _quit>> export.scr "C:\Program Files\AutoCAD Map 3D 2009\acad.exe" %%f /nologo /b export.scr winclip -p >> export.log ) goto done :usage echo USAGE: %0 [sourceDir] [destDir] [defaultExportProfile] echo example: %0 Redding\dwgs Redding\sdfs Redding\defExport.epf :done
Ha creado un archivo por lotes mejorado con registro y detección de errores para exportar archivos DWG en varias carpetas a la vez.