Files
dxfmakros/tests/create_testbase.py
T

72 lines
1.9 KiB
Python

#!/usr/bin/env python3
# -*- coding: utf-8 -*-
"""
create_testbase.py - Erzeugt Basis-DXF-Dateien fuer die LISP-Tests.
Erstellt pro Modul eine leere DXF mit Hilfsgeometrie (z.B. Linien
als Andockpunkte fuer Kreisel).
Aufruf:
python tests/create_testbase.py [modul]
python tests/create_testbase.py # alle Module
python tests/create_testbase.py kreisel # nur Kreisel
"""
import ezdxf
import json
import sys
import os
TESTS_DIR = os.path.dirname(os.path.abspath(__file__))
TESTDATA_DIR = os.path.join(TESTS_DIR, "testdata")
OUTPUT_DIR = os.path.join(TESTS_DIR, "output")
def create_kreisel_testbase():
"""Erzeugt Basis-DXF fuer Kreisel-Tests mit Hilfslinien."""
doc = ezdxf.new("R2018")
msp = doc.modelspace()
z = 2500.0
# Horizontale Linienpaare (Abstand 5000mm in Y-Richtung)
msp.add_line((0, 0, z), (2000, 0, z),
dxfattribs={"layer": "S_LP", "color": 1})
msp.add_line((0, 5000, z), (2000, 5000, z),
dxfattribs={"layer": "S_LP", "color": 1})
# Vertikale Linienpaare (Abstand 5000mm in X-Richtung)
msp.add_line((0, 0, z), (0, 2000, z),
dxfattribs={"layer": "S_LP", "color": 1})
msp.add_line((5000, 0, z), (5000, 2000, z),
dxfattribs={"layer": "S_LP", "color": 1})
os.makedirs(OUTPUT_DIR, exist_ok=True)
out_path = os.path.join(OUTPUT_DIR, "kreisel_testbase.dxf")
doc.saveas(out_path)
print(f"[testbase] Kreisel-Basis-DXF erstellt: {out_path}")
return out_path
MODULES = {
"kreisel": create_kreisel_testbase,
}
def main():
if len(sys.argv) > 1:
modul = sys.argv[1].lower()
if modul not in MODULES:
print(f"Unbekanntes Modul: {modul}")
print(f"Verfuegbar: {', '.join(MODULES.keys())}")
sys.exit(1)
MODULES[modul]()
else:
for name, func in MODULES.items():
func()
if __name__ == "__main__":
main()