feat: Eckrad-Dialog, Kreiselname, Hoehen-Neuberechnung beim Export

- Eckrad: eigener DCL-Dialog (eckrad_edit.dcl) beim Einfuegen und per
  Doppelklick (EckradEdit); Sivas-Merkmale am Kreisel ausgerichtet
  (2950, 3381, 3992 Ja/Nein); bei Sep./Scanner-Zaehlung ausgenommen
- Kreisel: eigener Name bleibt in Bezeichnung + Beschriftung erhalten
- Sivas: Kreisel/Eckrad unterschiedlicher Hoehe nicht mehr zusammengefasst
- Export: Hoehen-Attribute in Z verschobener Kreisel/Eckrad/VF/GF neu
  berechnet
- GF-Edit: Einfuegehoehe aus aktueller Z-Koordinate
This commit is contained in:
2026-10-13 14:24:01 +02:00
parent ea0e46a441
commit 6044c35957
15 changed files with 453 additions and 68 deletions
+10 -1
View File
@@ -2496,6 +2496,8 @@
es-winkel (nth 3 xd)
z-start (atof (nth 4 xd))
deltaL (atof (nth 5 xd)))
;; aktuelle Z statt XDATA (Block evtl. in Z verschoben)
(if (caddr startpunkt) (setq z-start (caddr startpunkt)))
(setq as-seite (cond ((cdr (assoc "SEITE_AS" attribs))) ("links")))
(setq es-seite (cond ((cdr (assoc "SEITE_ES" attribs))) ("links")))
;; bestehende Geruest-Einstellungen erhalten
@@ -2599,6 +2601,10 @@
z-start (atof (cond ((cdr (assoc "HOEHE_VON_mm" attribs))) ("0")))
deltaL (atof (cond ((cdr (assoc "DELTA_L_mm" attribs))) ("0"))))
)
;; Einfuegehoehe = aktuelle Z des Einfuegepunkts (= Kettenstart). XDATA und
;; HOEHE_VON_mm sind veraltet, wenn der Block in Z verschoben wurde - OK im
;; Dialog baut dann direkt auf der neuen Hoehe neu auf (wie Kreisel/Eckrad).
(if (caddr startpunkt) (setq z-start (caddr startpunkt)))
(setq prefill
(list (cons "deltaL" deltaL)
@@ -2616,7 +2622,10 @@
;; AS-Seite + untere Hoehe fuer den optionalen parallelen VF-Bau
(setq as-seite (cond ((cdr (assoc "SEITE_AS" attribs))) ("links")))
(setq hoehe-bis (atof (cond ((cdr (assoc "HOEHE_BIS_mm" attribs))) ("0"))))
;; um dieselbe Z-Verschiebung korrigiert: BIS = Z - (VON_alt - BIS_alt)
(setq hoehe-bis (- z-start
(- (atof (cond ((cdr (assoc "HOEHE_VON_mm" attribs))) ("0")))
(atof (cond ((cdr (assoc "HOEHE_BIS_mm" attribs))) ("0"))))))
;; 2. Argument (hoehe-vorbelegung) explizit nil: BricsCAD verlangt die exakte
;; Argumentzahl (setzt fehlende NICHT automatisch auf nil). Im Edit kommt die