diff --git a/Lisp/Gefaellestrecke.lsp b/Lisp/Gefaellestrecke.lsp index 83a7871..afa655f 100644 --- a/Lisp/Gefaellestrecke.lsp +++ b/Lisp/Gefaellestrecke.lsp @@ -1180,13 +1180,19 @@ ;; 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 jedoch an KS_AUS gemessen, damit KS_AUS.Z exakt - ;; auf endpunkt-ref.Z landet (garantiert die gewuenschte DeltaH). + ;; 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). (princ (ssg-textf "gf-status-ein-element-detail" - (list es-block (rtos (caddr endpunkt-ref) 2 1)))) + (list es-block (rtos (caddr sep-endpunkt) 2 1)))) (setq es-aus-frame (insert-block-mixed-to-ks es-block sep-frame - (caddr endpunkt-ref) "KS_EIN" "KS_AUS")) + (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 --- @@ -1226,14 +1232,18 @@ ) ;; delta-l-gf bereits vor der Zusammenfassung berechnet - ;; Block mit allen Attributen erstellen. Geruest fuer Einzelmodul/ - ;; Geruestoption sind in diesem Linienzug-Ablauf (Modus 3, keine DCL- - ;; Eingabe) nicht abfragbar - bleiben auf Schema-Default. + ;; Block mit allen Attributen erstellen. HOEHE_BIS_mm kommt aus der + ;; TATSAECHLICH gebauten Endhoehe (es-aus-frame), nicht aus der + ;; geklickten endpunkt-ref.Z - sonst wiche das Attribut von der + ;; echten Geometrie ab (derselbe Bug wie bei der ES-Platzierung oben). + ;; Geruest fuer Einzelmodul/Geruestoption sind in diesem Linienzug- + ;; Ablauf (Modus 3, keine DCL-Eingabe) nicht abfragbar - bleiben auf + ;; Schema-Default. (setq gf-lz-insert (gf-block-erstellen "gruppe" as-seite gf-nummer (caddr startpunkt) - (caddr endpunkt-ref) + (caddr (car es-aus-frame)) deltaH delta-l-gf L-gf-str @@ -1403,8 +1413,12 @@ (* (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 end-z "KS_EIN" "KS_AUS")) + (insert-block-mixed-to-ks es-block sep-frame (caddr sep-endpunkt) "KS_EIN" "KS_AUS")) ;; Echter Endpunkt (fuer DELTA_L-Attribut/Label) erst jetzt aus der ;; gebauten Geometrie bekannt - KS_AUS des ES-Elements.