Übung 2: Erstellen einer Produktionsstapeldatei

In diesem Beispiel wird gezeigt, wie Sie DWG-Dateien aus mehreren Ordnern gleichzeitig exportieren. Hierzu wird eine erweiterte Stapeldatei verwendet, die Fehlererkennung und -protokollierung unterstützt.

Die Stapeldatei empfängt bei jeder Ausführung drei Parameter:

Verwenden einer Protokolldatei

In der Protokolldatei wird das gesamte Befehlsfenster für jede DWG-Datei erfasst. Mit dem AutoCAD-Befehl KOPIEBISHER wird der Befehlsfensterverlauf in die Zwischenablage des Systems kopiert. In diesem Beispiel wird winclip.exe verwendet, ein kostenloses Open Source-Tool, um den Inhalt der Zwischenablage in die Protokolldatei einzufügen.

Verwenden einer übergeordneten Stapeldatei

Sie können die Stapeldatei von einer übergeordneten Stapeldatei aus aufrufen, d. h. von einer Master-Stapeldatei, die nur Aufrufe der untergeordneten Stapeldatei enthält, welche wiederum die Parameter bereitstellt.

Angenommen Sie verfügen über Zeichnungen für drei Städte. Wenn der Stapelvorgang einen Ordner mit Zeichnungen für eine Stadt exportiert, kann die übergeordnete Stapeldatei Folgendes enthalten:

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

Geben Sie für diese Methode entweder ein separates Exportprotokoll export.log für jeden Aufruf an, oder verschieben Sie die Zeile if exist export.log del export.log in die übergeordnete Stapeldatei. Andernfalls wird bei jedem Aufruf das vorherige Protokoll überschrieben.

Beispiel für eine Produktionsstapeldatei

Im folgenden Beispiel wird die Produktionsstapeldatei namens batchexport.bat verwendet. Erstellen Sie diese Datei im Windows-Editor, ebenso wie die Dateien in den vorherigen Verfahren.

@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

Aktueller Stand

Sie haben eine erweiterte Stapeldatei mit Fehlererkennung und -protokollierung erstellt, um DWG-Dateien aus mehreren Ordnern gleichzeitig zu exportieren.