Files
dxfmakros/bin/show_exportcsv.bat

173 lines
6.7 KiB
Batchfile

@echo off
REM ================================================================
REM DXFMAKROS - Export-CSV als Boundingbox-Draufsicht (SVG) anzeigen
REM ================================================================
REM Zeichnet jede Zeile der Export-CSV (EXPORTCSV) als achsparalleles
REM Rechteck aus Position + Boundingbox, mit Legende und Tooltip je
REM Rechteck sowie den Anschluss-Koordinatensystemen K1-K4 (rotes Kreuz,
REM blaue Linie K1->K2->K3->K4), und oeffnet das Ergebnis im Browser.
REM Optional zusaetzlich Materialfluss-, Bahnzusammenhang- und TRO-Fluss-Graph.
REM
REM Die Darstellung uebernimmt sps_skel (bin\material_flow.bat,
REM Option --show-bbs, bzw. bin\tro_flow.bat fuer 'tro'). sps_skel wird
REM neben dxfmakros erwartet (..\sps_skel) oder ueber die Umgebungs-
REM variable SPS_SKEL_HOME.
REM
REM Aufruf:
REM bin\show_exportcsv.bat results\export.csv, alle Zeilen
REM bin\show_exportcsv.bat meine_export.csv andere CSV in results\ (oder Pfad)
REM bin\show_exportcsv.bat export.csv flow ohne VF/GF-Einzelbausteine
REM bin\show_exportcsv.bat export.csv mflow zusaetzlich Materialfluss-Graph
REM bin\show_exportcsv.bat export.csv track zusaetzlich Bahnzusammenhang-Graph
REM bin\show_exportcsv.bat export.csv tro zusaetzlich TRO-Fluss-Graph (lagerichtig)
REM bin\show_exportcsv.bat export.csv flow mflow track tro alles kombiniert
REM
REM mflow/track/tro brauchen Graphviz ('dot' bzw. 'neato' im PATH).
REM
REM Ergebnis: %SKEL_RESULTS%\<name>_bbs.svg
REM %SKEL_RESULTS%\<name>_material_flow.svg (nur mit 'mflow')
REM %SKEL_RESULTS%\<name>_track.svg (nur mit 'track')
REM %SKEL_RESULTS%\<name>_tro_flow.svg (nur mit 'tro')
REM ================================================================
setlocal
if /i "%~1"=="--help" goto :help
if /i "%~1"=="-h" goto :help
if "%~1"=="/?" goto :help
goto :main
:help
echo Aufruf:
echo bin\show_exportcsv.bat results\export.csv, alle Zeilen
echo bin\show_exportcsv.bat meine_export.csv andere CSV in results\ ^(oder Pfad^)
echo bin\show_exportcsv.bat export.csv flow ohne VF/GF-Einzelbausteine
echo bin\show_exportcsv.bat export.csv mflow zusaetzlich Materialfluss-Graph
echo bin\show_exportcsv.bat export.csv track zusaetzlich Bahnzusammenhang-Graph
echo bin\show_exportcsv.bat export.csv tro zusaetzlich TRO-Fluss-Graph ^(lagerichtig^)
echo bin\show_exportcsv.bat export.csv flow mflow track tro alles kombiniert
echo.
echo Schalter ^(2.-5. Argument, Reihenfolge beliebig^):
echo all Darstellungsmodus: alle Zeilen ^(Default^)
echo flow Darstellungsmodus: ohne VF/GF-Einzelbausteine
echo mflow zusaetzlich Materialfluss-SVG erzeugen und oeffnen
echo track zusaetzlich Bahnzusammenhang-SVG erzeugen und oeffnen
echo tro zusaetzlich TRO-Fluss-SVG ^(lagerichtig^) erzeugen und oeffnen
echo.
echo mflow/track/tro brauchen Graphviz ^('dot' bzw. 'neato' im PATH^).
echo.
echo Ergebnis:
echo %%SKEL_RESULTS%%\^<name^>_bbs.svg
echo %%SKEL_RESULTS%%\^<name^>_material_flow.svg ^(nur mit 'mflow'^)
echo %%SKEL_RESULTS%%\^<name^>_track.svg ^(nur mit 'track'^)
echo %%SKEL_RESULTS%%\^<name^>_tro_flow.svg ^(nur mit 'tro'^)
endlocal & exit /b 0
:main
REM Umgebung dxfmakros (DXFM_RESULTS ...)
call "%~dp0setenv.bat" >nul
REM sps_skel suchen
if not defined SPS_SKEL_HOME set "SPS_SKEL_HOME=%DXFMAKRO%\..\sps_skel"
if not exist "%SPS_SKEL_HOME%\bin\material_flow.bat" (
echo FEHLER: sps_skel nicht gefunden: %SPS_SKEL_HOME%
echo SPS_SKEL_HOME auf den sps_skel-Ordner setzen.
endlocal & exit /b 1
)
REM Umgebung sps_skel (SKEL_RESULTS ...) - material_flow.bat ruft setenv
REM zwar selbst auf, SKEL_RESULTS wird hier aber zum Oeffnen der SVG gebraucht.
call "%SPS_SKEL_HOME%\bin\setenv.bat" >nul
REM Eingabe-CSV: Dateiname wird in DXFM_RESULTS gesucht, Pfade bleiben
set "CSV=%~1"
if "%CSV%"=="" set "CSV=export.csv"
if exist "%DXFM_RESULTS%\%CSV%" set "CSV=%DXFM_RESULTS%\%CSV%"
if not exist "%CSV%" (
echo FEHLER: CSV nicht gefunden: %CSV%
echo Erst in BricsCAD EXPORTCSV ausfuehren.
endlocal & exit /b 1
)
for %%F in ("%CSV%") do (
set "CSV=%%~fF"
set "SVG=%SKEL_RESULTS%\%%~nF_bbs.svg"
set "MF_SVG=%SKEL_RESULTS%\%%~nF_material_flow.svg"
set "TRACK_SVG=%SKEL_RESULTS%\%%~nF_track.svg"
set "TRO_SVG=%SKEL_RESULTS%\%%~nF_tro_flow.svg"
)
REM Weitere Argumente (Reihenfolge beliebig):
REM all (Default) / flow - Darstellungsmodus der Boundingbox-Ansicht
REM mflow - zusaetzlich Materialfluss-SVG erzeugen und oeffnen
REM track - zusaetzlich Bahnzusammenhang-SVG erzeugen und oeffnen
REM tro - zusaetzlich TRO-Fluss-SVG (lagerichtig) erzeugen und oeffnen
set "MODE=all"
set "MFLOW="
set "TRACK="
set "TRO="
for %%A in (%2 %3 %4 %5) do (
if /i "%%~A"=="all" set "MODE=all"
if /i "%%~A"=="flow" set "MODE=flow"
if /i "%%~A"=="mflow" set "MFLOW=1"
if /i "%%~A"=="track" set "TRACK=1"
if /i "%%~A"=="tro" set "TRO=1"
)
REM Beide Graphen entstehen erst mit --tosvg (Graphviz 'dot')
set "OPTS="
if defined MFLOW set "OPTS=--tosvg"
if defined TRACK set "OPTS=--track --tosvg"
REM Alte SVGs entfernen, damit nie eine veraltete Ansicht geoeffnet wird
if exist "%SVG%" del "%SVG%"
if defined MFLOW if exist "%MF_SVG%" del "%MF_SVG%"
if defined TRACK if exist "%TRACK_SVG%" del "%TRACK_SVG%"
if defined TRO if exist "%TRO_SVG%" del "%TRO_SVG%"
call "%SPS_SKEL_HOME%\bin\material_flow.bat" --file "%CSV%" --show-bbs %MODE% --show-kx %OPTS%
set "RC=%ERRORLEVEL%"
if defined TRO (
call "%SPS_SKEL_HOME%\bin\tro_flow.bat" --file "%CSV%" --tosvg --use-cords
)
if not exist "%SVG%" (
echo FEHLER: SVG wurde nicht erzeugt ^(material_flow Exit-Code %RC%^).
endlocal & exit /b 1
)
echo.
echo Boundingbox-Ansicht: %SVG%
REM Vorschau direkt im Standardprogramm fuer .svg (Browser) oeffnen
start "" "%SVG%"
REM Graphen: material_flow meldet Graphviz-Fehler teils nur, ohne
REM abzubrechen - daher hier ueber die Datei pruefen.
if defined MFLOW (
if exist "%MF_SVG%" (
echo Materialfluss: %MF_SVG%
start "" "%MF_SVG%"
) else (
echo WARNUNG: Materialfluss-SVG wurde nicht erzeugt ^(Graphviz 'dot' vorhanden?^).
)
)
if defined TRACK (
if exist "%TRACK_SVG%" (
echo Bahnzusammenhang: %TRACK_SVG%
start "" "%TRACK_SVG%"
) else (
echo WARNUNG: Bahnzusammenhang-SVG wurde nicht erzeugt ^(Graphviz 'dot' vorhanden?^).
)
)
if defined TRO (
if exist "%TRO_SVG%" (
echo TRO-Fluss: %TRO_SVG%
start "" "%TRO_SVG%"
) else (
echo WARNUNG: TRO-Fluss-SVG wurde nicht erzeugt ^(Graphviz 'neato' vorhanden?^).
)
)
endlocal & exit /b 0