export_csv.py und omniflo_utils.py bereinigt und korrigiert

lib/export_csv.py:
  - CSV-Header vereinfacht: NachbarIds, Planquadrat und rotation-Spalten
    entfernt (nicht im Sivas-Format benoetigt). Anzahl-Spalte auf festen
    Wert 1 gesetzt.
  - format_planquadrat() entfernt (war unused nach Header-Aenderung).
  - process_blocks(): elem_nr startet bei 0 statt -1 (erster Block war
    mit Nummer -1 ausgegeben worden).
  - build_bogen_merkmale(), build_weiche_merkmale(): KurvenWinkel und
    Radius werden jetzt explizit als float() gecastet, um sicherzustellen
    dass JSON-Werte aus dem Katalog als Zahl und nicht als String landen.
  - Felder nachbarids, planquadrat, rotation aus den item-Dicts entfernt.

lib/omniflo_utils.py:
  - import_element_as_block(): prueft jetzt zuerst ob eine Block-
    definition mit dem Zielnamen in der Quelldatei existiert (erzeugt
    durch set_attributs.py). Falls ja, wird diese direkt importiert
    statt des gesamten Modelspace. Das verhindert doppelte Entities wenn
    set_attributs.py die Geometrie bereits in einen Block gefasst hat.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-06-12 11:26:41 +02:00
parent 9f78ff7f0a
commit 1f2ebe5c86
2 changed files with 18 additions and 32 deletions
+12 -2
View File
@@ -212,11 +212,21 @@ def build_row_layout(data_dir, results_dir):
def import_element_as_block(source_doc, target_doc, block_name):
"""Importiert alle Modelspace-Entities eines Quell-Dokuments als Block."""
"""
Importiert ein Quell-Dokument als Block in target_doc.
Wenn das Quell-Dokument eine Blockdefinition mit dem Namen block_name
enthaelt (erzeugt durch set_attributs.py), wird diese direkt importiert.
Andernfalls werden alle Modelspace-Entities als Block importiert.
"""
importer = Importer(source_doc, target_doc)
importer.import_tables()
blk = target_doc.blocks.new(name=block_name)
for entity in source_doc.modelspace():
if block_name in source_doc.blocks:
source_layout = source_doc.blocks[block_name]
else:
source_layout = source_doc.modelspace()
for entity in source_layout:
importer.import_entity(entity, blk)
importer.finalize()
return block_name