logging in plant2dxf.py, svg2dxf.py und dxf2lib.py implementiert
SVG2DXF: Inkscape-Option hinzugefügt, die mit einem SVG Parser arbeitet
This commit is contained in:
+4
-74
@@ -4,31 +4,10 @@ from ezdxf.math import Vec2
|
||||
import argparse
|
||||
import sys
|
||||
import shutil
|
||||
import datetime
|
||||
import configparser
|
||||
import logging
|
||||
from utils import check_environment_var, setup_logger
|
||||
|
||||
|
||||
def check_environment_var(env_str: str, fallback: str) -> str:
|
||||
"""
|
||||
Prüft eine Umgebungsvariable und gibt den Wert oder einen Fallback zurück.
|
||||
|
||||
Args:
|
||||
env_str (str): Name der zu prüfenden Umgebungsvariable
|
||||
fallback (str): Fallback-Wert, falls die Variable nicht gesetzt ist
|
||||
|
||||
Returns:
|
||||
str: Wert der Umgebungsvariable oder Fallback-Wert
|
||||
|
||||
Note:
|
||||
Gibt eine Warnung aus, falls die Umgebungsvariable nicht gesetzt ist
|
||||
"""
|
||||
out_path = os.environ.get(env_str)
|
||||
if out_path:
|
||||
return out_path
|
||||
print(f"[WARN] Umgebungsvariable {env_str} ist nicht gesetzt oder leer. Verwende '{fallback}'.")
|
||||
return fallback
|
||||
|
||||
def get_bbox(entities):
|
||||
"""
|
||||
Berechnet die Bounding Box für eine Liste von DXF-Entities.
|
||||
@@ -75,51 +54,6 @@ def get_bbox(entities):
|
||||
return Vec2((min_x + max_x) / 2, (min_y + max_y) / 2)
|
||||
|
||||
|
||||
def setup_logger(log_dir):
|
||||
"""
|
||||
Erstellt und konfiguriert einen Logger für die DXF2LIB Verarbeitung.
|
||||
|
||||
Args:
|
||||
log_dir (str): Verzeichnis für die Log-Dateien
|
||||
|
||||
Returns:
|
||||
logging.Logger: Konfigurierter Logger
|
||||
|
||||
Note:
|
||||
Erstellt eine Log-Datei mit Zeitstempel und formatiert die Ausgaben
|
||||
"""
|
||||
# Logger erstellen
|
||||
logger = logging.getLogger('dxf2lib')
|
||||
logger.setLevel(logging.INFO)
|
||||
|
||||
# Bestehende Handler entfernen (falls Logger bereits existiert)
|
||||
for handler in logger.handlers[:]:
|
||||
logger.removeHandler(handler)
|
||||
|
||||
# Zeitstempel für Log-Datei
|
||||
timestamp = datetime.datetime.now().strftime("%Y%m%d_%H%M%S")
|
||||
log_file = os.path.join(log_dir, f"dxf2lib_{timestamp}.log")
|
||||
|
||||
# File Handler erstellen
|
||||
file_handler = logging.FileHandler(log_file, encoding='utf-8')
|
||||
file_handler.setLevel(logging.INFO)
|
||||
|
||||
# Console Handler erstellen
|
||||
console_handler = logging.StreamHandler()
|
||||
console_handler.setLevel(logging.INFO)
|
||||
|
||||
# Formatter erstellen
|
||||
formatter = logging.Formatter('%(asctime)s - %(levelname)s - %(message)s')
|
||||
file_handler.setFormatter(formatter)
|
||||
console_handler.setFormatter(formatter)
|
||||
|
||||
# Handler zum Logger hinzufügen
|
||||
logger.addHandler(file_handler)
|
||||
logger.addHandler(console_handler)
|
||||
|
||||
return logger, log_file
|
||||
|
||||
|
||||
def create_block_library(input_dir, output_file, config, logger=None):
|
||||
"""
|
||||
Erstellt eine DXF-Block-Bibliothek aus einzelnen DXF-Dateien.
|
||||
@@ -299,12 +233,8 @@ if __name__ == "__main__":
|
||||
sys.exit(1)
|
||||
|
||||
# Verzeichnisse über Umgebungsvariablen oder Fallback
|
||||
if args.input:
|
||||
INPUT_DIR = args.input
|
||||
print(f"Verwende Input-Verzeichnis: {INPUT_DIR} \n")
|
||||
else:
|
||||
INPUT_DIR = os.path.join(check_environment_var("PROJECT_WORK", "."), "converted_dxfs")
|
||||
print(f"Kein Input-Verzeichnis angegeben, verwende Standard: {INPUT_DIR} \n")
|
||||
INPUT_DIR = check_environment_var("PROJECT_WORK", ".")
|
||||
print(f"Verwende Input-Verzeichnis: {INPUT_DIR} \n")
|
||||
|
||||
OUTPUT_FILE = os.path.join(check_environment_var("PROJECT_DATA", "."),"block_libaries", f"{args.name}.dxf")
|
||||
|
||||
@@ -315,7 +245,7 @@ if __name__ == "__main__":
|
||||
print(f"Log-Verzeichnis erstellt: {log_dir}")
|
||||
|
||||
# Logger Setup
|
||||
logger, log_file = setup_logger(log_dir)
|
||||
logger, log_file = setup_logger(log_dir, name='dxf2lib')
|
||||
logger.info("=== DXF2LIB Verarbeitung gestartet ===")
|
||||
logger.info(f"Input-Verzeichnis: {INPUT_DIR}")
|
||||
logger.info(f"Output-Datei: {OUTPUT_FILE}")
|
||||
|
||||
Reference in New Issue
Block a user