K2 für die Bögen werden jetzt richtig gesetzt

This commit is contained in:
2026-05-13 12:08:48 +02:00
parent 854b5e3bd5
commit bf8b7756ea
4 changed files with 280 additions and 62 deletions
+15 -50
View File
@@ -33,6 +33,7 @@ import ezdxf
from utils import (
ROW_GROUPS, TEXT_HEIGHT, TEXT_MARGIN, CROSS_SIZE, ROW_LABEL_WIDTH,
SWITCH_FILTERS,
build_row_layout, import_element_as_block, draw_cross,
)
@@ -225,59 +226,23 @@ def horizontal_midpoint_insertion(doc):
# ---------------------------------------------------------------------------
# Schalter-Definitionen: (Label, JSON-Datei, Filter, Einfuegepunkt-Funktion)
# Filter kommen aus SWITCH_FILTERS in utils.py.
# ---------------------------------------------------------------------------
_INSERTION_FUNCS = {
"boegen": boegen_insertion_point,
"weichen45": weichen_insertion_point,
"weichen90": weichen_insertion_point,
"weichenkoerper": weichenkoerper_insertion_point,
"weichen_parallel": weichenkoerper_insertion_point,
"sternweiche": horizontal_midpoint_insertion,
"delta": horizontal_midpoint_insertion,
"dreifachweiche": horizontal_midpoint_insertion,
}
SWITCH_DEFS = {
"boegen": (
"Boegen",
"omniflo_boegen.json",
lambda item: True,
boegen_insertion_point,
),
"weichen45": (
"Weichen 45 Grad",
"omniflo_weichen.json",
lambda item: item["KurvenWinkel"] == 45
and item["WeichenTyp"] not in ("Dreifachweiche", "Deltaweiche"),
weichen_insertion_point,
),
"weichen90": (
"Weichen 90 Grad",
"omniflo_weichen.json",
lambda item: item["KurvenWinkel"] == 90
and item["WeichenTyp"] not in ("Dreifachweiche", "Deltaweiche"),
weichen_insertion_point,
),
"weichenkoerper": (
"Weichenkoerper",
"omniflo_weichen.json",
lambda item: item["KurvenWinkel"] == 22.5,
weichenkoerper_insertion_point,
),
"weichen_parallel": (
"Weichen Parallel",
"omniflo_weichen.json",
lambda item: item["KurvenWinkel"] == 0 and item["WeichenTyp"] != "Sternweiche",
weichenkoerper_insertion_point,
),
"sternweiche": (
"Sternweiche",
"omniflo_weichen.json",
lambda item: item["WeichenTyp"] == "Sternweiche",
horizontal_midpoint_insertion,
),
"delta": (
"Deltaweichen",
"omniflo_weichen.json",
lambda item: item["WeichenTyp"] == "Deltaweiche",
horizontal_midpoint_insertion,
),
"dreifachweiche": (
"Dreifachweichen",
"omniflo_weichen.json",
lambda item: item["WeichenTyp"] == "Dreifachweiche",
horizontal_midpoint_insertion,
),
key: (*SWITCH_FILTERS[key], _INSERTION_FUNCS[key])
for key in SWITCH_FILTERS
}