export_csv: sepliste-Koordinaten (x/y) entfernen, nur noch typ/lfdnr/id
Validiert (Nutzer-Befund): die sepliste-XDATA-Koordinaten sind der rohe Gruppencode-10-Punkt des jeweiligen Bau-Primitivs und teils gespiegelt/um mehrere 100mm verschoben (z.B. Separator 0037: x=-5070.1 statt 5070.1, ausserhalb der VF_1-Boundingbox). Die eigene Export-Zeile jedes Bauteils (x/y aus der echten Proxy-Kopie) ist dagegen verlaesslich und liegt korrekt in der Boundingbox. sepliste dient nur noch der ID-Zuordnung/Reihenfolge, nicht mehr als Koordinatenquelle. Der Python-Faellback in map_sepliste_kette_items (nur fuer SEP-Eintraege ohne aufloesbares "id"-Feld, Altbestand) matchte bisher per naechstem sepliste-Punkt - jetzt erster unverbrauchter Kandidat je Zuordnung, da keine Koordinate mehr vorliegt. lib/dump_vf_kette_inhalt.py zeigt Position/Typ jetzt ueber die ID-Verknuepfung zur eigenen Bauteil-Zeile statt ueber die entfernten sepliste-Felder. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Sonnet 5
parent
42309c77d2
commit
4f1a0e0b5b
@@ -1153,7 +1153,8 @@ def _asel_collision_boxes(item, half_tol, box_dims):
|
||||
# "sepliste" (item["sepliste"], von csv:block-to-json aus SSG_VF_SEP/
|
||||
# SSG_GF_SEP-XDATA gelesen) ist die beim Bau in Baureihenfolge gesammelte
|
||||
# Liste der Separator-/AS-/ES-Sub-Bloecke EINER VF_n/GF_n-Kette:
|
||||
# [{"typ": "AS"|"SEP"|"ES", "lfdnr": int, "x": float, "y": float}, ...].
|
||||
# [{"typ": "AS"|"SEP"|"ES", "lfdnr": int, "id": str}, ...] (kein x/y - siehe
|
||||
# compute_sep_kette-Docstring).
|
||||
# Ersetzt das bisherige Raten der Ketten-internen Reihenfolge (die Linie
|
||||
# selbst wird nicht exportiert) durch die tatsaechliche Bau-Reihenfolge.
|
||||
|
||||
@@ -1168,7 +1169,7 @@ def compute_sep_kette(items, dbg=None):
|
||||
naechste Eintrag in der Sepliste (die bereits in Baureihenfolge vorliegt)
|
||||
- kein Rateverfahren noetig.
|
||||
|
||||
Rueckgabe: dict {key: {"typ", "x", "y", "id", "strecke_id", "vorgaenger",
|
||||
Rueckgabe: dict {key: {"typ", "id", "strecke_id", "vorgaenger",
|
||||
"nachfolger"}} - vorgaenger/nachfolger sind wieder solche keys, oder None
|
||||
am jeweiligen Kettenende (Verkettung mit dem Kreisel-Umlauf uebernimmt
|
||||
compute_kreisel_umlauf). "id" ist die TeileId des Bauteils, das diesen
|
||||
@@ -1176,6 +1177,12 @@ def compute_sep_kette(items, dbg=None):
|
||||
ZZ_ASES_MARKER, SEP ueber die beim Export ausgepackte temporaere
|
||||
Separator_SP-Kopie - siehe csv:sepliste-ids-setzen, Lisp/export.lsp) -
|
||||
leerer String, wenn (noch) keine ID zugewiesen wurde (Altbestand).
|
||||
|
||||
Kein x/y mehr: die sepliste-XDATA traegt seit 2026-09-25 keine
|
||||
Koordinaten mehr (der rohe Gruppencode-10-Punkt des jeweiligen
|
||||
Bau-Primitivs war teils gespiegelt/verschoben und keine verlaessliche
|
||||
Positionsquelle - siehe export.lsp-Kommentar bei sepliste-teile). Die
|
||||
verlaessliche Position steht an der eigenen Export-Zeile des Bauteils.
|
||||
"""
|
||||
result = {}
|
||||
for item in items:
|
||||
@@ -1190,8 +1197,6 @@ def compute_sep_kette(items, dbg=None):
|
||||
key = keys[i]
|
||||
result[key] = {
|
||||
"typ": entry.get("typ", ""),
|
||||
"x": entry.get("x", 0.0),
|
||||
"y": entry.get("y", 0.0),
|
||||
"id": str(entry.get("id", "")).strip(),
|
||||
"strecke_id": sid,
|
||||
"vorgaenger": keys[i - 1] if i > 0 else None,
|
||||
|
||||
Reference in New Issue
Block a user