Exercice 2 : Créer un fichier de commandes de production

Cet exemple montre comment exporter des fichiers DWG dans plusieurs dossiers à la fois. Il utilise un fichier de commandes qui inclut la détection et la journalisation des erreurs.

Le fichier de commandes reçoit trois paramètres à chaque exécution :

Utilisation d'un fichier journal

Le fichier journal répertorie toute la fenêtre de commande pour chaque fichier DWG. Il utilise la commande AutoCAD COPIERHIST qui déplace l'historique de la fenêtre de commande dans le Presse-papiers du système. Cet exemple utilise winclip.exe, un outil Open Source gratuit, pour coller l'historique dans le fichier journal.

Utilisation d'un fichier de commandes externe

Vous pouvez appeler le fichier de commandes à partir d'un fichier de commandes "externe", un fichier de commandes principal qui ne contient que des appels à d'autres fichiers de commande en leur fournissant des paramètres.

Par exemple, si vous disposez de dessins pour trois villes. Si l'opération par lots exporte un dossier de dessins d'une ville, le fichier de commande externe peut contenir les éléments suivants :

batchexport Redding\DWGs Redding\SDFs Redding\DefExport.epf
batchexport Spokane\DWGs Spokane\SDFs Spokane\DefExport.epf
batchexport Dubuque\DWGs Dubuque\SDFs Dubuque\DefExport.epf
Remarque :

Pour utiliser cette méthode, vous pouvez spécifier un fichier export.log différent pour chaque appel ou déplacer la ligne if exist export.log del export.log dans le fichier de commandes externe. Dans le cas contraire, chaque appel remplace le journal précédent.

Exemple de fichier de commandes de production

Dans l'exemple suivant, le fichier de commandes de production est appelé batchexport.bat. Créez-le dans le Bloc-notes, comme vous l'avez fait précédemment.

@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

Résultat obtenu

Vous avez créé un fichier de commandes amélioré avec détection et journalisation des erreurs pour exporter des fichiers DWG de plusieurs dossiers à la fois.