Pfadprobleme entfernt und erste wieder lauffähige version erstellt
This commit is contained in:
+27
-21
@@ -347,26 +347,7 @@ def main(csv_path: Path, lib_path: Path, cfg_path: Path,
|
|||||||
output_path: Path, verbose=False, logger=None):
|
output_path: Path, verbose=False, logger=None):
|
||||||
|
|
||||||
# Bibliothek nur laden, wenn Datei existiert
|
# Bibliothek nur laden, wenn Datei existiert
|
||||||
lib_doc = None
|
check_dxflibrary_path(lib_path, verbose, logger)
|
||||||
if lib_path.exists():
|
|
||||||
try:
|
|
||||||
lib_doc = ezdxf.readfile(lib_path)
|
|
||||||
if verbose:
|
|
||||||
logger.info(f"[INFO] Bibliothek geladen: {lib_path}") if logger else print(f"[INFO] Bibliothek geladen: {lib_path}")
|
|
||||||
except Exception as e:
|
|
||||||
msg = f"Fehler beim Lesen der Bibliothek '{lib_path}': {e}"
|
|
||||||
if logger:
|
|
||||||
logger.error(msg)
|
|
||||||
else:
|
|
||||||
print(msg)
|
|
||||||
sys.exit(1)
|
|
||||||
else:
|
|
||||||
msg = f"[INFO] Keine Bibliothek gefunden unter {lib_path}."
|
|
||||||
if logger:
|
|
||||||
logger.warning(msg)
|
|
||||||
else:
|
|
||||||
print(msg)
|
|
||||||
sys.exit(1)
|
|
||||||
|
|
||||||
# Neue Zielzeichnung (DXF R2018)
|
# Neue Zielzeichnung (DXF R2018)
|
||||||
doc = ezdxf.new(dxfversion="R2018")
|
doc = ezdxf.new(dxfversion="R2018")
|
||||||
@@ -383,6 +364,9 @@ def main(csv_path: Path, lib_path: Path, cfg_path: Path,
|
|||||||
print(msg)
|
print(msg)
|
||||||
sys.exit(1)
|
sys.exit(1)
|
||||||
|
|
||||||
|
blocklib_dir = data_dir / "block_libraries"
|
||||||
|
lib_docs = dict()
|
||||||
|
|
||||||
# Verarbeitung der Blöcke
|
# Verarbeitung der Blöcke
|
||||||
with csv_path.open(newline="", encoding="utf-8") as fh:
|
with csv_path.open(newline="", encoding="utf-8") as fh:
|
||||||
reader = csv.DictReader(fh, delimiter=';')
|
reader = csv.DictReader(fh, delimiter=';')
|
||||||
@@ -428,7 +412,7 @@ def main(csv_path: Path, lib_path: Path, cfg_path: Path,
|
|||||||
# Funktions-Dispatch: handle_<teileart> (mit _ statt Leerzeichen und Punkten, alles klein)
|
# Funktions-Dispatch: handle_<teileart> (mit _ statt Leerzeichen und Punkten, alles klein)
|
||||||
func_name = f'handle_{normalize_func_name(teileart)}'
|
func_name = f'handle_{normalize_func_name(teileart)}'
|
||||||
handler = globals().get(func_name)
|
handler = globals().get(func_name)
|
||||||
symbols = get_shape_cfg(teileart, shapes_cfg_path, logger=logger)
|
symbols = get_shape_cfg(teileart, cfg_path, logger=logger)
|
||||||
# Mapping für Omniflo-Typen
|
# Mapping für Omniflo-Typen
|
||||||
if func_name.startswith('handle_omniflo'):
|
if func_name.startswith('handle_omniflo'):
|
||||||
handler = globals().get('handle_omniflo')
|
handler = globals().get('handle_omniflo')
|
||||||
@@ -449,6 +433,28 @@ def main(csv_path: Path, lib_path: Path, cfg_path: Path,
|
|||||||
else:
|
else:
|
||||||
print(f"[DONE] DXF gespeichert unter: {output_path}")
|
print(f"[DONE] DXF gespeichert unter: {output_path}")
|
||||||
|
|
||||||
|
def check_dxflibrary_path(lib_path, verbose, logger):
|
||||||
|
lib_doc = None
|
||||||
|
if lib_path.exists():
|
||||||
|
try:
|
||||||
|
lib_doc = ezdxf.readfile(lib_path)
|
||||||
|
if verbose:
|
||||||
|
logger.info(f"[INFO] Bibliothek geladen: {lib_path}") if logger else print(f"[INFO] Bibliothek geladen: {lib_path}")
|
||||||
|
except Exception as e:
|
||||||
|
msg = f"Fehler beim Lesen der Bibliothek '{lib_path}': {e}"
|
||||||
|
if logger:
|
||||||
|
logger.error(msg)
|
||||||
|
else:
|
||||||
|
print(msg)
|
||||||
|
sys.exit(1)
|
||||||
|
else:
|
||||||
|
msg = f"[INFO] Keine Bibliothek gefunden unter {lib_path}."
|
||||||
|
if logger:
|
||||||
|
logger.error(msg)
|
||||||
|
else:
|
||||||
|
print(msg)
|
||||||
|
sys.exit(1)
|
||||||
|
|
||||||
if __name__ == "__main__":
|
if __name__ == "__main__":
|
||||||
parser = argparse.ArgumentParser(
|
parser = argparse.ArgumentParser(
|
||||||
description="Plaziert Anlagenkomponenten aus RuleDesigner CSV.")
|
description="Plaziert Anlagenkomponenten aus RuleDesigner CSV.")
|
||||||
|
|||||||
Reference in New Issue
Block a user