[FIX] GEFAELLESTRECKE_LINIENZUG: ES-Element hatte Rest-Hoehenversatz (~65mm) nach dem vorigen Fix
Der vorige Fix (80e5e62) nutzte insert-block-mixed-to-ks mit z-ref="KS_AUS" (sep-endpunkt als Ziel-Z) - das zwingt aber den BLOCKAUSGANG des ES-Elements auf diese Hoehe, nicht den Blockeingang, an dem die Kette tatsaechlich anschliesst. Der ganze Block wurde dadurch zusaetzlich um seine eigene KS_EIN<->KS_AUS-Innenhoehe nach oben verschoben.
Modus 1/2 (gefaellestrecke-einfuegen) macht das bereits richtig: dort haengt das EIN-Element ueber reines insert-block-ks-to-ks (keine erzwungene Ziel-Z) an den Ketten-Pfad, die Endhoehe ergibt sich danach von selbst aus KS_AUS. GEFAELLESTRECKE_LINIENZUG (Modus 3) auf dasselbe Muster umgestellt - sowohl im normalen Bau (gf-linienzug-modus) als auch im Doppelklick-Rebuild (gf-linienzug-rebuild).
Manuell in BricsCAD verifiziert: Hoehenversatz jetzt korrekt, kein Rest-Sprung mehr.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
+16
-19
@@ -1178,21 +1178,20 @@
|
||||
(- (sin rad-v-es))))
|
||||
(setq sep-frame (make-frame-from-dir sep-endpunkt xu-exit))
|
||||
|
||||
;; EIN-Element: KS_EIN bleibt in X/Y auf dem Ketten-Pfad (sep-frame),
|
||||
;; seine eigene Achse verlaeuft damit trivial durch diesen Punkt.
|
||||
;; Die Z-Hoehe wird an KS_EIN des ES-Elements auf die TATSAECHLICH
|
||||
;; durch die Kette (Geraden/Boegen mit grade) aufgebaute Hoehe gesetzt
|
||||
;; (caddr sep-endpunkt) - NICHT auf endpunkt-ref.Z (die Z-Koordinate
|
||||
;; des zweiten Mausklicks). endpunkt-ref dient nur zur deltaH-Schaetzung
|
||||
;; fuer die Winkelberechnung (gf-winkel-berechnen); klickt der Nutzer
|
||||
;; beide Punkte auf derselben Hoehe (z.B. in einer 2D-Draufsicht ohne
|
||||
;; 3D-Objektfang), landete das ES-Element bisher trotz korrekt
|
||||
;; geneigter Kette wieder auf Starthoehe (realer Bug).
|
||||
;; EIN-Element: reine KS-zu-KS-Verkettung (wie bei Modus 1/2 in
|
||||
;; gefaellestrecke-einfuegen) statt insert-block-mixed-to-ks mit
|
||||
;; erzwungener Ziel-Z. sep-frame richtet KS_EIN des ES-Elements exakt
|
||||
;; am Ketten-Pfad (Position UND Neigung) aus; die Endhoehe ergibt sich
|
||||
;; danach von selbst aus KS_AUS, es wird nichts nachtraeglich
|
||||
;; verschoben. Zwei vorherige Versuche waren beide falsch: endpunkt-ref
|
||||
;; (Mausklick-Z, meist = Starthoehe) UND z-ref="KS_AUS" bei
|
||||
;; insert-block-mixed-to-ks (zwang den BLOCKAUSGANG statt -eingang auf
|
||||
;; die Zielhoehe, Rest-Versatz = Blockinnenhoehe KS_EIN<->KS_AUS,
|
||||
;; ~65mm). endpunkt-ref/der zweite Mausklick dient weiterhin nur zur
|
||||
;; groben deltaH-Schaetzung fuer den Winkel-Vorschlag im Dialog.
|
||||
(setq es-aus-frame (insert-block-ks-to-ks es-block sep-frame))
|
||||
(princ (ssg-textf "gf-status-ein-element-detail"
|
||||
(list es-block (rtos (caddr sep-endpunkt) 2 1))))
|
||||
(setq es-aus-frame
|
||||
(insert-block-mixed-to-ks es-block sep-frame
|
||||
(caddr sep-endpunkt) "KS_EIN" "KS_AUS"))
|
||||
(princ (ssg-textf "gf-status-z-hoehe-ks-aus" (list (rtos (caddr (car es-aus-frame)) 2 1))))
|
||||
|
||||
;; --- GF_N-Block erstellen ---
|
||||
@@ -1413,12 +1412,10 @@
|
||||
(* (sin rad-h-es)(cos rad-v-es))
|
||||
(- (sin rad-v-es))))
|
||||
(setq sep-frame (make-frame-from-dir sep-endpunkt xu-exit))
|
||||
;; Z-Ziel = tatsaechlich durch die Kette aufgebaute Hoehe (caddr
|
||||
;; sep-endpunkt), NICHT die gespeicherte Soll-Endhoehe end-z - identischer
|
||||
;; Fix wie in gf-linienzug-modus (end-z diente nur zur deltaH-Schaetzung
|
||||
;; fuer die Winkelberechnung oben).
|
||||
(setq es-aus-frame
|
||||
(insert-block-mixed-to-ks es-block sep-frame (caddr sep-endpunkt) "KS_EIN" "KS_AUS"))
|
||||
;; Reine KS-zu-KS-Verkettung wie in gf-linienzug-modus (siehe dortiger
|
||||
;; Kommentar) - end-z (gespeicherte Soll-Endhoehe) wird nur zur
|
||||
;; deltaH-Schaetzung fuer die Winkelberechnung oben gebraucht, nicht hier.
|
||||
(setq es-aus-frame (insert-block-ks-to-ks es-block sep-frame))
|
||||
|
||||
;; Echter Endpunkt (fuer DELTA_L-Attribut/Label) erst jetzt aus der
|
||||
;; gebauten Geometrie bekannt - KS_AUS des ES-Elements.
|
||||
|
||||
Reference in New Issue
Block a user