53 lines
1.5 KiB
Python
53 lines
1.5 KiB
Python
import sys
|
|
from pathlib import Path
|
|
from dxf_analyzer import IntersectionAnalyzer
|
|
from datetime import datetime
|
|
|
|
def main():
|
|
if len(sys.argv) < 2:
|
|
print("Bitte eine DXF-Datei angeben.")
|
|
sys.exit(1)
|
|
|
|
dxf_file = Path(sys.argv[1])
|
|
if not dxf_file.exists():
|
|
print(f"Datei nicht gefunden: {dxf_file}")
|
|
sys.exit(1)
|
|
|
|
# Kommandozeilenparameter auslesen oder Standardwerte verwenden
|
|
layers = sys.argv[2] if len(sys.argv) > 2 else "D-1,D-5"
|
|
tolerance = float(sys.argv[3]) if len(sys.argv) > 3 else 0.04
|
|
mark_radius = float(sys.argv[4]) if len(sys.argv) > 4 else 100
|
|
|
|
layer_list = [layer.strip() for layer in layers.split(",")]
|
|
|
|
base_name = dxf_file.stem
|
|
script_dir = Path(__file__).resolve().parent
|
|
output_dir = (script_dir / ".." / "output").resolve()
|
|
output_dir.mkdir(parents=True, exist_ok=True)
|
|
|
|
datum = datetime.now().strftime("%Y%m%d_%H-%M")
|
|
|
|
output_dxf = output_dir / f"{base_name}_markiert_{datum}.dxf"
|
|
output_txt = output_dir / f"{base_name}_analyse_{datum}.txt"
|
|
|
|
analyzer = IntersectionAnalyzer(
|
|
dxf_path=str(dxf_file),
|
|
layer_names=layer_list,
|
|
tolerance=tolerance,
|
|
mark_radius=mark_radius
|
|
)
|
|
|
|
success = analyzer.analyze(
|
|
output_dxf=str(output_dxf),
|
|
output_txt=str(output_txt)
|
|
)
|
|
|
|
if success:
|
|
print(f"Ergebnis-DXF: {output_dxf}")
|
|
print(f"Analyse-Textdatei: {output_txt}")
|
|
else:
|
|
print("Analyse konnte nicht erfolgreich abgeschlossen werden.")
|
|
|
|
if __name__ == "__main__":
|
|
main()
|