Erdungskabel und Erdungen werden gesucht und ein Kabellayout erzeugt
This commit is contained in:
@@ -10,6 +10,7 @@ QM
|
||||
BG
|
||||
BP
|
||||
BX
|
||||
PO
|
||||
|
||||
|
||||
# Kürzel die im Routing Prozess ignoriert werden sollen, zum Beispiel bauteile innerhalb der Schaltschränke
|
||||
@@ -32,6 +33,7 @@ BG = WD_I
|
||||
BG-829422026 = WD_I-829422026
|
||||
BG-720002003 = WD_I-720002003
|
||||
BX = WF_B, WD_I
|
||||
PO = WD_PO
|
||||
|
||||
|
||||
# Anpassung von berechneter kabellänge um Betrag x aufgrund von z.b. an Sensor existierenden Kabelschwänzen
|
||||
|
||||
@@ -53,6 +53,19 @@ REALE_POSITION_IO
|
||||
0-0-Omniflo_MOTOR
|
||||
0-0_A-GRUPPE
|
||||
MOTOR
|
||||
0-0_ILS_POT Pritsche
|
||||
0-0_ILS_POT-CT
|
||||
0-0_ILS_POT-DP
|
||||
0-0_ILS_POT-MA
|
||||
0-0_ILS_POT-RA
|
||||
0-0_Omniflo_POT Pritsche
|
||||
0-0_Omniflo_POT-CT
|
||||
0-0_Omniflo_POT-DP
|
||||
0-0_Omniflo_POT-MA
|
||||
0-0_Omniflo_POT-RA
|
||||
0-0_Omniflo_AM_POT_FS
|
||||
0-0_Omniflo_AM_POT_Pritsche
|
||||
|
||||
|
||||
|
||||
# Maße des zur genauen Bestimmung der Mitte
|
||||
|
||||
@@ -91,6 +91,20 @@
|
||||
85.0=726001060
|
||||
95.0=726001061
|
||||
|
||||
[WD_PO]
|
||||
0.25=726001062
|
||||
0.5=726001040
|
||||
1.0=726001041
|
||||
5.0=726001045
|
||||
10.0=726001046
|
||||
15.0=726001047
|
||||
20.0=726001048
|
||||
25.0=726001049
|
||||
30.0=726001050
|
||||
35.0=726001051
|
||||
40.0=726001052
|
||||
45.0=726001053
|
||||
100.0=726001049
|
||||
|
||||
# Bezeichner jeder Verbindungsleitung (gekürzt)
|
||||
# Name of every cable (shortened)
|
||||
|
||||
+1
-1
@@ -609,7 +609,7 @@ def map_sensor_to_cable_cfg(plines):
|
||||
mapping = config_BMK["Cable-Mapping"]
|
||||
|
||||
for pl in plines.kabel:
|
||||
sensor_name = pl.id.split('-')[-1]
|
||||
sensor_name = '-'.join(pl.id.split('-')[1:])
|
||||
cable_length = round(pl.length/1000, 1)
|
||||
sensor_artinr = pl.s_artinr
|
||||
name_prefix = sensor_name[:2]
|
||||
|
||||
+34
-15
@@ -1,16 +1,13 @@
|
||||
import argparse
|
||||
import configparser
|
||||
import ezdxf.document
|
||||
from ezdxf import readfile
|
||||
import ezdxf
|
||||
import os
|
||||
import sys
|
||||
import json
|
||||
import re
|
||||
from shapely import Point
|
||||
from itertools import combinations
|
||||
from ezdxf.addons import iterdxf
|
||||
import re
|
||||
import time
|
||||
from pathlib import Path
|
||||
|
||||
|
||||
"""
|
||||
@@ -97,6 +94,11 @@ def get_attributes_of_insert(insert):
|
||||
#print(f"Attribut Name: {attrib.dxf.tag}, Wert: {attrib.dxf.text}")
|
||||
ld[attr_tag] = attr_text
|
||||
|
||||
if attr_tag == "NAME": # die neueren Bläcke heissen nicht IO, sondern haben einen Namen
|
||||
typ = get_type_of_name_cfg(attr_text)
|
||||
id = attr_text
|
||||
# pos = attrib.dxf.insert #Position aufzeichnen und bei Bedarf später mit REAL_POS überschreiben
|
||||
# ld["pos"] = (round(pos.x, 1), round(pos.y, 1))
|
||||
if attr_tag == "IO":
|
||||
typ = get_type_of_name_cfg(attr_text)
|
||||
id = attr_text
|
||||
@@ -389,11 +391,12 @@ def get_dxf_file(filepath):
|
||||
sys.exit(2)
|
||||
return doc
|
||||
|
||||
def check_file_in_work(work_dir, filename):
|
||||
def check_file_in_work(work_dir:Path, filename:Path):
|
||||
fexists = True
|
||||
if not os.path.exists(filename):
|
||||
mypath = os.path.join(work_dir, filename)
|
||||
if not os.path.exists(mypath):
|
||||
if not filename.exists(): # dann schau im Work Ordner nach
|
||||
mypath = work_dir.joinpath(filename)
|
||||
ex = mypath.exists()
|
||||
if not mypath.exists():
|
||||
fexists = False
|
||||
else:
|
||||
mypath = filename
|
||||
@@ -455,6 +458,14 @@ def validate_configs():
|
||||
else:
|
||||
print ("No inconsistencies found")
|
||||
|
||||
def check_environment_var(env_str:str) -> Path:
|
||||
out_path = os.environ.get(env_str)
|
||||
if out_path:
|
||||
return Path(out_path)
|
||||
else:
|
||||
print(f"Umgebungsvariable {env_str} ist nicht gesetzt oder leer.")
|
||||
exit()
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
parser = argparse.ArgumentParser(description='fetches the x/y positions from a dxf file', prog='getpositions')
|
||||
@@ -467,13 +478,21 @@ if __name__ == '__main__':
|
||||
|
||||
args = parser.parse_args()
|
||||
|
||||
out_dir = os.environ.get('PROJECT_DATA')
|
||||
work_dir = os.environ.get('PROJECT_WORK')
|
||||
config_dir = os.environ.get("PROJECT_CFG")
|
||||
|
||||
filename = args.filename
|
||||
(dxf_path, dexists) = check_file_in_work(work_dir, filename)
|
||||
out_dir = check_environment_var('PROJECT_DATA')
|
||||
work_dir = check_environment_var('PROJECT_WORK')
|
||||
config_dir = check_environment_var("PROJECT_CFG")
|
||||
|
||||
filename = Path(args.filename)
|
||||
if not filename.suffix == ".dxf":
|
||||
print("only available for .dxf files")
|
||||
exit()
|
||||
|
||||
(dxf_path, dexists) = check_file_in_work(work_dir, filename)
|
||||
if dexists == False:
|
||||
print("no such file ")
|
||||
parser.print_help()
|
||||
exit()
|
||||
|
||||
if dxf_is_binary(dxf_path): # Wenn dxf eine binary ist, dann komplett parsen und modelspace anlegen
|
||||
print("Given .dxf-file is binary dxf. Proceeding to read file. Watch RAM-usage.")
|
||||
doc = get_dxf_file(dxf_path)
|
||||
|
||||
Reference in New Issue
Block a user