2. gyakorlat: Termelési szintű kötegfájl létrehozása

Ez a példa azt mutatja be, hogyan exportálhat DWG-fájlokat több mappából egyszerre. Egy továbbfejlesztett kötegfájlt használ, amely tartalmaz hibaészlelési és naplózási funkciókat is.

A kötegfájl három paramétert kap minden egyes végrehajtásakor:

Naplófájl használata

A naplófájl minden egyes DWG-fájl teljes parancs ablakának előzményeit naplózza. A copyhist AutoCAD parancsot használja, amely a parancs ablak előzményeit a rendszer vágólapjára helyezi. Az előzmény másolására a naplófájlba ez a példa a winclip.exe programot használja, amely egy ingyenes, nyílt forráskódú eszköz.

Külső kötegfájl használata

A kötegfájl meghívható egy „külső” kötegfájlból: ez egy mester kötegfájl, amely csak a paramétereket megadó, alárendelt kötegfájlra vonatkozó hívásokat tartalmazza.

Tegyük fel például, három város rajzával rendelkezik. Ha a kötegelt művelet exportálja az egyik város rajzait egy mappából, a külső kötegfájl a következőket tartalmazhatja:

batchexport Redding\DWGs Redding\SDFs Redding\DefExport.epf
batchexport Spokane\DWGs Spokane\SDFs Spokane\DefExport.epf
batchexport Dubuque\DWGs Dubuque\SDFs Dubuque\DefExport.epf
Megjegyzés:

A módszer használatához adjon meg minden híváshoz egy különböző export.log fájlt, vagy helyezze át a következő sort a külső kötegfájlba: if exist export.log del export.log. Ellenkező esetben mindegyik hívás felülírja az előző naplót.

Minta termelési kötegfájl

A következő minta termelési kötegfájl neve: batchexport.bat. Az előző eljárásokhoz hasonlóan a Jegyzettömbben hozhatja létre.

@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

Az eredmény

Létrehozott egy továbbfejlesztett kötegfájlt hibaészlelési és naplózási képességekkel a DWG-fájlok több mappából egyszerre történő exportálásához.