missing section wieder daz
This commit is contained in:
Vendored
+48
@@ -40,6 +40,54 @@
|
||||
"easy_positions.json"
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "getpositions with easyhoehe.dxf",
|
||||
"type": "debugpy",
|
||||
"request": "launch",
|
||||
"program": "${file}",
|
||||
"console": "integratedTerminal",
|
||||
"args": [
|
||||
"--filename",
|
||||
"easyhoehe.dxf",
|
||||
"--sensors",
|
||||
"--rack",
|
||||
"--console",
|
||||
"--write",
|
||||
"easyhoehe_positions.json"
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "getpositions with easysps.dxf",
|
||||
"type": "debugpy",
|
||||
"request": "launch",
|
||||
"program": "${file}",
|
||||
"console": "integratedTerminal",
|
||||
"args": [
|
||||
"--filename",
|
||||
"easysps.dxf",
|
||||
"--sensors",
|
||||
"--rack",
|
||||
"--console",
|
||||
"--write",
|
||||
"easysps_positions.json"
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "getpositions with easy_hdiff_nb.dxf",
|
||||
"type": "debugpy",
|
||||
"request": "launch",
|
||||
"program": "${file}",
|
||||
"console": "integratedTerminal",
|
||||
"args": [
|
||||
"--filename",
|
||||
"easy_hdiff_nb.dxf",
|
||||
"--sensors",
|
||||
"--rack",
|
||||
"--console",
|
||||
"--write",
|
||||
"easy_hdiff_nb_positions.json"
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "getpositions with ST500592_Omniflo.dxf",
|
||||
"type": "debugpy",
|
||||
|
||||
Vendored
+1
-1
@@ -1,5 +1,5 @@
|
||||
{
|
||||
"python.languageServer": "Pylance",
|
||||
"python.languageServer": "None",
|
||||
"cSpell.words": [
|
||||
"DXFATTRIBS",
|
||||
"ezdxf"
|
||||
|
||||
@@ -1,33 +0,0 @@
|
||||
@echo off
|
||||
REM ~dp0 steht für das Verzeichnis, in der diese Datei liegt
|
||||
pushd %~dp0\..
|
||||
|
||||
set PROJECT=c:\Kabellaengen
|
||||
set PROJECT_BIN=%PROJECT%\bin
|
||||
set PROJECT_CFG=%PROJECT%\cfg
|
||||
set PROJECT_DOC=%PROJECT%\doc
|
||||
set PROJECT_LIB=%PROJECT%\lib
|
||||
set PROJECT_DATA=%PROJECT%\data
|
||||
set PROJECT_WORK=%PROJECT%\work
|
||||
set PROJECT_TEST=%PROJECT%\testdata
|
||||
|
||||
set SIVAS_TEILESTAMM=\\195.243.223.3\sivas\jit\programme\KSbExcelExportSivasTeilestamm.exe
|
||||
set SIVAS_EXCEL_EXPORT_DIR=%PROJECT_DATA%
|
||||
|
||||
if not exist %PROJECT%\work mkdir %PROJECT%\work
|
||||
if not exist %PROJECT%\data mkdir %PROJECT%\data
|
||||
|
||||
set PROJECT_IO_RESULTS=Z:\Automatisierung\Konvertierungstools\4_io-Konvertierer
|
||||
set PROJECT_BOM_RESULTS="Z:\Automatisierung\Konvertierungstools\3_Kabellängen-Konvertierer"
|
||||
set INSTALL_DIR="%ONEDRIVE%\Desktop\Kabeltool"
|
||||
|
||||
set PATH=%PROJECT_BIN%;%PATH%
|
||||
|
||||
set NETWORK_INTERPRETER_PATH=U:\Programmierumgebung\Python312
|
||||
|
||||
|
||||
popd
|
||||
goto :eof
|
||||
|
||||
|
||||
|
||||
@@ -1,29 +0,0 @@
|
||||
@echo off
|
||||
REM ~dp0 steht für das Verzeichnis, in der diese Datei liegt
|
||||
pushd %~dp0\..
|
||||
|
||||
set PROJECT=C:\10-Develop\gitrepos\kabellaengen
|
||||
set PROJECT_BIN=%PROJECT%\bin
|
||||
set PROJECT_CFG=%PROJECT%\cfg
|
||||
set PROJECT_DOC=%PROJECT%\doc
|
||||
set PROJECT_LIB=%PROJECT%\lib
|
||||
set PROJECT_DATA=%PROJECT%\data
|
||||
set PROJECT_WORK=%PROJECT%\work
|
||||
set PROJECT_TEST=%PROJECT%\testdata
|
||||
|
||||
set SIVAS_TEILESTAMM=\\195.243.223.3\sivas\jit\programme\KSbExcelExportSivasTeilestamm.exe
|
||||
set SIVAS_EXCEL_EXPORT_DIR=%PROJECT_DATA%
|
||||
|
||||
if not exist %PROJECT%\work mkdir %PROJECT%\work
|
||||
if not exist %PROJECT%\data mkdir %PROJECT%\data
|
||||
|
||||
set INSTALL_DIR="%ONEDRIVE%\Desktop\Kabeltool"
|
||||
|
||||
set PATH=%PROJECT_BIN%;%PATH%
|
||||
|
||||
|
||||
popd
|
||||
goto :eof
|
||||
|
||||
|
||||
|
||||
Executable
+4
@@ -0,0 +1,4 @@
|
||||
#!/bin/bash
|
||||
source manage_interpreter.sh activate_interpreter
|
||||
python "$PROJECT_LIB/drawdxf.py" "$@"
|
||||
source manage_interpreter.sh deactivate_interpreter
|
||||
+5
-4
@@ -6,6 +6,7 @@ for %%i in ("%~1") do (
|
||||
set "EXT=%%~xi"
|
||||
set "DIR=%%~dpi"
|
||||
)
|
||||
call C:\kabellaengen\bin\setenv.bat
|
||||
|
||||
REM echo Dateiname ohne Erweiterung: %FILENAME%
|
||||
REM echo Erweiterung: %EXT%
|
||||
@@ -19,12 +20,12 @@ set ERROR_DOUBLE=%FILENAME%_errors.json
|
||||
set EXCEL_RES=%FILENAME%_cables.xlsx
|
||||
set DXF_RES=%FILENAME%_cables.dxf
|
||||
|
||||
echo on
|
||||
call C:\kabellaengen\bin\setenv.bat
|
||||
if exist "_setenv_local.bat" (
|
||||
call _setenv_local.bat
|
||||
if exist "%~dp0_setenv.bat" (
|
||||
echo Lade lokale Umgebungseinstellungen aus _setenv.bat...
|
||||
call "%~dp0_setenv.bat"
|
||||
)
|
||||
|
||||
echo on
|
||||
echo.
|
||||
echo === Fetching Positions ===
|
||||
call getpositions.bat --filename %1 -s -r -w %JSON_POS% -e %ERROR_DOUBLE%
|
||||
|
||||
@@ -0,0 +1,68 @@
|
||||
#!/bin/bash
|
||||
|
||||
usage() {
|
||||
echo "Usage: $0 <dxfinWorkOrdner.dxf>"
|
||||
exit 1
|
||||
}
|
||||
|
||||
if [ $# -eq 0 ]; then
|
||||
usage
|
||||
fi
|
||||
|
||||
INPUT_FILE="$1"
|
||||
FILENAME=$(basename "$INPUT_FILE" .dxf)
|
||||
DIR=$(dirname "$INPUT_FILE")
|
||||
|
||||
# Namen der Zwischenergebnis Dateien
|
||||
JSON_POS="${FILENAME}_positionsdraw.json"
|
||||
JSON_TODRAW="${FILENAME}_todraw.json"
|
||||
# Namen der Ergebnisdateien
|
||||
ERROR_DOUBLE="${FILENAME}_errors.json"
|
||||
EXCEL_RES="${FILENAME}_cables.xlsx"
|
||||
DXF_RES="${FILENAME}_cables.dxf"
|
||||
|
||||
source $HOME/dxf-calculator/kabellaengen/bin/setenv.sh
|
||||
|
||||
echo
|
||||
echo "=== Fetching Positions ==="
|
||||
./getpositions.sh --filename "$1" -s -r -w "$JSON_POS" -e "$ERROR_DOUBLE"
|
||||
|
||||
if [ -f "$PROJECT_WORK/$ERROR_DOUBLE" ]; then
|
||||
echo "-failed- duplicate IDs in given layout"
|
||||
read -p "Press any key to continue..."
|
||||
mv "$PROJECT_WORK/$ERROR_DOUBLE" "$PROJECT_BOM_RESULTS"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if [ ! -f "$PROJECT_WORK/$JSON_POS" ]; then
|
||||
echo "-failed- getpositions"
|
||||
read -p "Press any key to continue..."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
echo
|
||||
echo "=== Creating Graph for Routing ==="
|
||||
./routing.sh --filename "$JSON_POS" -w "$JSON_TODRAW"
|
||||
|
||||
if [ ! -f "$PROJECT_WORK/$JSON_TODRAW" ]; then
|
||||
echo "-failed- routing"
|
||||
read -p "Press any key to continue..."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
echo
|
||||
echo "=== Writing Output Files ==="
|
||||
./draw_dxf.sh --filename "$JSON_TODRAW" --new "$DXF_RES" -x "$EXCEL_RES"
|
||||
|
||||
if [ ! -f "$PROJECT_WORK/$EXCEL_RES" ]; then
|
||||
echo "-failed- draw_dxf"
|
||||
read -p "Press any key to continue..."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
echo
|
||||
|
||||
mkdir -p "$PROJECT_BOM_RESULTS/$FILENAME"
|
||||
mv "$PROJECT_WORK/${FILENAME}_"* "$PROJECT_BOM_RESULTS/$FILENAME"
|
||||
read -p "Press any key to continue..."
|
||||
|
||||
Executable
+6
@@ -0,0 +1,6 @@
|
||||
#!/bin/bash
|
||||
# getpositions.sh
|
||||
#!/bin/bash
|
||||
source manage_interpreter.sh activate_interpreter
|
||||
python "$PROJECT_LIB/getpositions.py" "$@"
|
||||
source manage_interpreter.sh deactivate_interpreter
|
||||
Executable
+16
@@ -0,0 +1,16 @@
|
||||
#!/bin/bash
|
||||
source setenv.sh
|
||||
|
||||
if [ ! -d "$PROJECT/.venv" ]; then
|
||||
echo "Initialisiere Python virtual environment..."
|
||||
python3 -m venv "$PROJECT/.venv" --upgrade-deps
|
||||
echo "Erfolgreich."
|
||||
|
||||
source "$PROJECT/.venv/bin/activate"
|
||||
echo "Installiere erforderliche Python Packages..."
|
||||
pip install -r "$PROJECT_LIB/requirements.txt" -q
|
||||
echo "Erfolgreich"
|
||||
deactivate
|
||||
else
|
||||
echo "Erforderliche Python Packages bereits installiert!"
|
||||
fi
|
||||
+7
-2
@@ -6,6 +6,7 @@ for %%i in ("%~1") do (
|
||||
set "EXT=%%~xi"
|
||||
set "DIR=%%~dpi"
|
||||
)
|
||||
call C:\kabellaengen\bin\setenv.bat
|
||||
|
||||
REM echo Dateiname ohne Erweiterung: %FILENAME%
|
||||
REM echo Erweiterung: %EXT%
|
||||
@@ -18,8 +19,11 @@ REM Namen der Ergebnisdateien
|
||||
set ERROR_DOUBLE=%FILENAME%_errors.json
|
||||
set RESULT_TIA=%FILENAME%-*_TIA.xlsx
|
||||
|
||||
|
||||
call C:\kabellaengen\bin\setenv.bat
|
||||
if exist "%~dp0_setenv.bat" (
|
||||
echo Lade lokale Umgebungseinstellungen aus _setenv.bat...
|
||||
call "%~dp0_setenv.bat"
|
||||
)
|
||||
|
||||
|
||||
|
||||
echo.
|
||||
@@ -44,6 +48,7 @@ if not exist "%PROJECT_WORK%\%RESULT_TIA%" (
|
||||
goto :eof
|
||||
)
|
||||
mkdir %PROJECT_IO_RESULTS%\%FILENAME%
|
||||
echo move %PROJECT_WORK%\%FILENAME%-* %PROJECT_IO_RESULTS%\%FILENAME%
|
||||
move %PROJECT_WORK%\%FILENAME%-* %PROJECT_IO_RESULTS%\%FILENAME%
|
||||
pause
|
||||
goto :eof
|
||||
|
||||
Executable
+54
@@ -0,0 +1,54 @@
|
||||
#!/bin/bash
|
||||
|
||||
usage() {
|
||||
echo "Usage: $0 <dxfinWorkOrdner.dxf>"
|
||||
exit 1
|
||||
}
|
||||
|
||||
if [ $# -eq 0 ]; then
|
||||
usage
|
||||
fi
|
||||
|
||||
INPUT_FILE="$1"
|
||||
FILENAME=$(basename "$INPUT_FILE" .dxf)
|
||||
DIR=$(dirname "$INPUT_FILE")
|
||||
|
||||
source $HOME/dxf-calculator/kabellaengen/bin/setenv.sh
|
||||
|
||||
# Namen der Zwischenergebnis Dateien
|
||||
JSON_POS="${FILENAME}_positionsconv.json"
|
||||
JSON_TODRAW="${FILENAME}_todraw.json"
|
||||
# Namen der Ergebnisdateien
|
||||
ERROR_DOUBLE="${FILENAME}_errors.json"
|
||||
RESULT_TIA="${FILENAME}-*_TIA.xlsx"
|
||||
|
||||
echo
|
||||
echo "=== Fetching Positions ==="
|
||||
./getpositions.sh --filename "$1" -s -r -w "$JSON_POS" -e "$ERROR_DOUBLE"
|
||||
|
||||
if [ -f "$PROJECT_WORK/$ERROR_DOUBLE" ]; then
|
||||
echo "== failed: duplicate IDs in given layout"
|
||||
read -p "Press any key to continue..."
|
||||
mv "$PROJECT_WORK/$ERROR_DOUBLE" "$PROJECT_IO_RESULTS"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if [ ! -f "$PROJECT_WORK/$JSON_POS" ]; then
|
||||
echo "== failed: getpositions"
|
||||
read -p "Press any key to continue..."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
echo "=== Creating Excel Files for TIA, WSCAD, .. ==="
|
||||
./portalexport.sh --filename "$JSON_POS" --outname "$FILENAME"
|
||||
|
||||
if [ ! -f "$PROJECT_WORK/$RESULT_TIA" ]; then
|
||||
echo "== failed: creating .xlsx files"
|
||||
read -p "Press any key to continue..."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
mkdir -p "$PROJECT_IO_RESULTS/$FILENAME"
|
||||
echo "move $PROJECT_WORK/${FILENAME}-* $PROJECT_IO_RESULTS/$FILENAME"
|
||||
mv "$PROJECT_WORK/${FILENAME}"-* "$PROJECT_IO_RESULTS/$FILENAME"
|
||||
read -p "Press any key to continue..."
|
||||
Executable
+30
@@ -0,0 +1,30 @@
|
||||
#!/bin/bash
|
||||
|
||||
activate_interpreter() {
|
||||
if [ -f "$PROJECT/.venv/bin/activate" ]; then
|
||||
source "$PROJECT/.venv/bin/activate"
|
||||
else
|
||||
echo "Virtual environment not found. Run install_py.sh first."
|
||||
exit 1
|
||||
fi
|
||||
}
|
||||
|
||||
deactivate_interpreter() {
|
||||
if [ -n "$VIRTUAL_ENV" ]; then
|
||||
deactivate
|
||||
fi
|
||||
}
|
||||
|
||||
# Call function based on argument
|
||||
case "$1" in
|
||||
activate_interpreter)
|
||||
activate_interpreter
|
||||
;;
|
||||
deactivate_interpreter)
|
||||
deactivate_interpreter
|
||||
;;
|
||||
*)
|
||||
echo "Usage: $0 {activate_interpreter|deactivate_interpreter}"
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
@@ -0,0 +1,4 @@
|
||||
#!/bin/bash
|
||||
source manage_interpreter.sh activate_interpreter
|
||||
python "$PROJECT_LIB/portalexport.py" "$@"
|
||||
source manage_interpreter.sh deactivate_interpreter
|
||||
Executable
+4
@@ -0,0 +1,4 @@
|
||||
#!/bin/bash
|
||||
source manage_interpreter.sh activate_interpreter
|
||||
python "$PROJECT_LIB/routing.py" "$@"
|
||||
source manage_interpreter.sh deactivate_interpreter
|
||||
+8
-4
@@ -1,6 +1,8 @@
|
||||
@echo off
|
||||
REM falls Umlaute in den Pfaden sind:
|
||||
chcp 65001 > nul
|
||||
|
||||
set PROJECT=c:\Kabellaengen
|
||||
set PROJECT=c:\kabellaengen
|
||||
set PROJECT_BIN=%PROJECT%\bin
|
||||
set PROJECT_CFG=%PROJECT%\cfg
|
||||
set PROJECT_DOC=%PROJECT%\doc
|
||||
@@ -19,11 +21,13 @@ set PROJECT_IO_RESULTS=Z:\Automatisierung\Konvertierungstools\4_io-Konvertierer
|
||||
set PROJECT_BOM_RESULTS=Z:\Automatisierung\Konvertierungstools\3_Kabellaengen-Konvertierer
|
||||
set INSTALL_DIR="%ONEDRIVE%\Desktop\Kabeltool"
|
||||
|
||||
if exist "%~dp0_setenv.bat" (
|
||||
echo Lade lokale Umgebungseinstellungen aus _setenv.bat...
|
||||
call "%~dp0_setenv.bat"
|
||||
)
|
||||
|
||||
set PATH=%PROJECT_BIN%;%PATH%
|
||||
|
||||
|
||||
popd
|
||||
goto :eof
|
||||
|
||||
|
||||
|
||||
|
||||
Executable
+26
@@ -0,0 +1,26 @@
|
||||
#!/bin/bash
|
||||
|
||||
export PROJECT=$HOME/dxf-calculator/kabellaengen
|
||||
export PROJECT_BIN="$PROJECT/bin"
|
||||
export PROJECT_CFG="$PROJECT/cfg"
|
||||
export PROJECT_DOC="$PROJECT/doc"
|
||||
export PROJECT_LIB="$PROJECT/lib"
|
||||
export PROJECT_DATA="$PROJECT/data"
|
||||
export PROJECT_WORK="$PROJECT/work"
|
||||
export PROJECT_TEST="$PROJECT/testdata"
|
||||
|
||||
# Linux executable instead of Windows .exe
|
||||
export SIVAS_TEILESTAMM="/usr/local/bin/KSbExcelExportSivasTeilestamm"
|
||||
export SIVAS_EXCEL_EXPORT_DIR="$PROJECT_DATA"
|
||||
|
||||
# Create directories if they don't exist
|
||||
mkdir -p "$PROJECT/work"
|
||||
mkdir -p "$PROJECT/data"
|
||||
|
||||
# Samba shares (adjust mount points as needed)
|
||||
export PROJECT_IO_RESULTS=$PROJECT_WORK
|
||||
export PROJECT_BOM_RESULTS=$PROJECT_WORK
|
||||
export INSTALL_DIR="$HOME/kabeltool"
|
||||
|
||||
# Add project bin to PATH
|
||||
export PATH="$PROJECT_BIN:$PATH"
|
||||
@@ -37,6 +37,7 @@ UNTERVERTEILER
|
||||
# Layernames of Tunnels
|
||||
[GetPos-Layer_Tunnel]
|
||||
Busverteiler-Kennzeichnung
|
||||
0-0_Tunnel
|
||||
|
||||
|
||||
# Layernamen des Equipments (Sensoren, Motoren, etc.)
|
||||
|
||||
@@ -83,3 +83,5 @@
|
||||
200000375 = Halter mit Sensor für Abfrage VARIO Finger
|
||||
720000007 = Sensor induk. M8x1, NO/ST-M12x1 4.pol, L=66 mm
|
||||
829434306 = INKREMENTALGEBER 800 5V KPL.
|
||||
|
||||
[Missing]
|
||||
|
||||
+17
-3
@@ -621,10 +621,11 @@ def check_file_in_work(work_dir: Path, filename: Path) -> tuple[Path, bool]:
|
||||
mypath = filename
|
||||
return mypath, fexists
|
||||
|
||||
def check_existance(res_mappings: dict, res_dist: dict, res_pos: dict) -> dict:
|
||||
def check_existance(res_mappings: dict, res_dist: dict, res_pos: dict, res_tunnel: dict) -> dict:
|
||||
ret = dict()
|
||||
ret["missing_distributors"] = list()
|
||||
ret["missing_sensors"] = list()
|
||||
ret["missing_tunnel"] = list()
|
||||
for dname in res_mappings.keys():
|
||||
if dname not in res_dist:
|
||||
ret["missing_distributors"].append(dname)
|
||||
@@ -632,7 +633,13 @@ def check_existance(res_mappings: dict, res_dist: dict, res_pos: dict) -> dict:
|
||||
for s in lofsensors:
|
||||
if s not in res_pos:
|
||||
ret['missing_sensors'].append(s)
|
||||
|
||||
for tname in res_tunnel.keys():
|
||||
if len(res_tunnel[tname]) < 2 :
|
||||
ret["missing_tunnel"].append(tname)
|
||||
if len(res_tunnel[tname]) > 2 :
|
||||
if "overdefined_tunnel" not in ret:
|
||||
ret["overdefined_tunnel"] = list()
|
||||
ret["overdefined_tunnel"].append(tname)
|
||||
return ret
|
||||
|
||||
def dxf_is_binary(dxf_path: Path) -> bool:
|
||||
@@ -810,11 +817,18 @@ if __name__ == '__main__':
|
||||
|
||||
if args.write:
|
||||
basename = os.path.splitext(args.write)[0]
|
||||
res_not_found = check_existance(res_mappings, res_dist, res_sens)
|
||||
res_not_found = check_existance(res_mappings, res_dist, res_sens, res_tunnel)
|
||||
if args.errors and "overdefined_tunnel" in res_not_found:
|
||||
print("unorrect tunnels found. Writing errors-file.")
|
||||
err_ids = list(res_not_found["overdefined_tunnel"])
|
||||
write_results(to_json(list(err_ids)), work_dir, args.errors)
|
||||
|
||||
added_warnings = merge_two_dicts(warnings, missing_attribs)
|
||||
res_not_found["missing_attributes"] = added_warnings
|
||||
output_results["not_found"] = res_not_found
|
||||
output_results["double_ids"] = res_double
|
||||
|
||||
|
||||
write_results(to_json(output_results), work_dir, f"{basename}.json")
|
||||
|
||||
else:
|
||||
|
||||
+7
-5
@@ -434,11 +434,13 @@ class Anlage():
|
||||
die Rückage enthält ein Tuple, welche Tunnel keinem Rack zugeordnet werden konnten
|
||||
'''
|
||||
for tname, pos in self._tunnels.items():
|
||||
tunbeg = pos[0]
|
||||
tunend = pos[1]
|
||||
trackname = f"t-Rack-{tname}"
|
||||
self._racks.add_rack(tunbeg, tunend, trackname)
|
||||
|
||||
if len(pos) == 2:
|
||||
tunbeg = pos[0]
|
||||
tunend = pos[1]
|
||||
trackname = f"t-Rack-{tname}"
|
||||
self._racks.add_rack(tunbeg, tunend, trackname)
|
||||
else:
|
||||
raise Exception("Tunnel has more than one begin and end/ just one begin")
|
||||
errors = list()
|
||||
for name, pos in self._tunnels.items():
|
||||
p1 = self._tunnels[name][0]
|
||||
|
||||
Reference in New Issue
Block a user