AS-Platzierungen gefixiert. AS-dz jetzt konsistent flach, Debug-Zeile entfernt
This commit is contained in:
+35
-17
@@ -1175,9 +1175,9 @@
|
||||
(setq ein-hz-as-k (- entry-hz
|
||||
(vf-element-plan-turn (strcat "AS_Element_" gf-as-winkel "_" as-seite))))
|
||||
(setq rad-h-as-k (* (float ein-hz-as-k) (/ pi 180.0)))
|
||||
(setq xu-as-meas (list (* (cos rad-h-as-k)(cos rad-v-korr))
|
||||
(* (sin rad-h-as-k)(cos rad-v-korr))
|
||||
(- (sin rad-v-korr))))
|
||||
;; AS flach (KS_EIN horizontal, keine Neigung) - konsistent zur flachen
|
||||
;; Platzierung; der dz kommt allein aus der Blockgeometrie.
|
||||
(setq xu-as-meas (list (cos rad-h-as-k) (sin rad-h-as-k) 0.0))
|
||||
;; ES-Element: KS_EIN zeigt in Fahrtrichtung (exit-hz)
|
||||
(setq rad-h-es-k (* (float exit-hz) (/ pi 180.0)))
|
||||
(setq xu-es-meas (list (* (cos rad-h-es-k)(cos rad-v-korr))
|
||||
@@ -1238,10 +1238,9 @@
|
||||
(setq ein-hz-as (- entry-hz
|
||||
(vf-element-plan-turn (strcat "AS_Element_" gf-as-winkel "_" as-seite))))
|
||||
(setq rad-h-as (* (float ein-hz-as) (/ pi 180.0)))
|
||||
(setq rad-v-as (* (float grade) (/ pi 180.0)))
|
||||
(setq xu-entry (list (* (cos rad-h-as)(cos rad-v-as))
|
||||
(* (sin rad-h-as)(cos rad-v-as))
|
||||
(- (sin rad-v-as))))
|
||||
;; AS-Element FLACH platzieren (KS_EIN horizontal, keine Neigung) -
|
||||
;; Nutzer-Vorgabe: alle AS_Elemente flach. Nur die Fahrtrichtung dreht.
|
||||
(setq xu-entry (list (cos rad-h-as) (sin rad-h-as) 0.0))
|
||||
(princ (ssg-textf "gf-status-aus-element-detail"
|
||||
(list as-block (rtos entry-hz 2 1) grad-zeichen
|
||||
(rtos ein-hz-as 2 1) grad-zeichen (rtos (caddr startpunkt) 2 1))))
|
||||
@@ -1577,11 +1576,12 @@
|
||||
|
||||
;; KS_EIN-Richtung fuer AS-Element: gemessener Ebenen-Schwenk des Blocks, so
|
||||
;; dass KS_AUS in Fahrtrichtung hz zeigt (ein-hz = hz - plan-turn).
|
||||
;; AS-Element FLACH platzieren (Nutzer-Vorgabe 2026-07-22): KS_EIN horizontal,
|
||||
;; KEINE 3-Grad-Neigung (Z-Komponente 0). Das Gefaelle beginnt erst mit der
|
||||
;; Staustrecke danach. Nur die Fahrtrichtung dreht KS_EIN.
|
||||
(setq ein-hz (- hz (vf-element-plan-turn (strcat "AS_Element_" as-winkel "_" as-seite))))
|
||||
(setq rad-ein (* (float ein-hz) (/ pi 180.0)))
|
||||
(setq xu-ein (list (* (cos rad-ein)(cos rad-v))
|
||||
(* (sin rad-ein)(cos rad-v))
|
||||
(- (sin rad-v))))
|
||||
(setq xu-ein (list (cos rad-ein) (sin rad-ein) 0.0))
|
||||
|
||||
;; 1/4: AUS-Element (KS_EIN an xu-ein ausrichten, damit KS_AUS in hz zeigt)
|
||||
;; Block-Ursprung (nicht KS_EIN!) in X/Y auf startpunkt setzen, damit die
|
||||
@@ -2066,7 +2066,8 @@
|
||||
;; ============================================================
|
||||
(defun gf-baue-parallel-vf (gf-start hz deltaL as-seite hoehe-bis /
|
||||
abstand rad hz-vf deltaH gf-end-x gf-end-y
|
||||
perp-x perp-y vf-start vf-seite)
|
||||
perp-x perp-y vf-start vf-seite
|
||||
ziel-es vf-erg vf-insert vf-endpunkt korr os-alt)
|
||||
(if (null (car (atoms-family 1 '("VFS-STANDARD-DIALOG-BERECHNEN-EINFUEGEN"))))
|
||||
(alert (ssg-text "gf-vf-modul-fehlt"))
|
||||
(progn
|
||||
@@ -2089,12 +2090,29 @@
|
||||
hoehe-bis))
|
||||
(setq hz-vf (rem (+ hz 180.0) 360.0))
|
||||
(setq vf-seite as-seite) ; VF-AS/ES-Seite: Default = GF-AS-Seite
|
||||
(princ (strcat "\n[DEBUG-VFPAR] GF-hz=" (rtos hz 2 1) " -> VF-hz=" (rtos hz-vf 2 1)
|
||||
" | as-seite=" as-seite
|
||||
" | gf-start=" (vl-princ-to-string gf-start)
|
||||
" | vf-start=" (vl-princ-to-string vf-start)))
|
||||
(vfs-standard-dialog-berechnen-einfuegen
|
||||
(vf-next-number) deltaL deltaH "Auf" vf-start hz-vf vf-seite nil)
|
||||
;; Zielpunkt: VF-ES-KS_AUS soll auf GF-AS-KS_EIN liegen, nur um 'abstand'
|
||||
;; quer versetzt, gleiche Hoehe.
|
||||
(setq ziel-es (list (+ (car gf-start) (* abstand perp-x))
|
||||
(+ (cadr gf-start) (* abstand perp-y))
|
||||
(caddr gf-start)))
|
||||
;; VF bauen; Rueckgabe (vf-insert vf-endpunkt), vf-endpunkt = tatsaechl.
|
||||
;; ES-KS_AUS als Weltpunkt (aus vfs-es-teil/insert-block-by-ks).
|
||||
(setq vf-erg (vfs-standard-dialog-berechnen-einfuegen
|
||||
(vf-next-number) deltaL deltaH "Auf" vf-start hz-vf vf-seite nil))
|
||||
(setq vf-insert (car vf-erg) vf-endpunkt (cadr vf-erg))
|
||||
;; Selbstkorrektur: fertigen VF-Block so verschieben, dass sein
|
||||
;; tatsaechliches ES-KS_AUS exakt auf ziel-es faellt (analog GF_n-Move;
|
||||
;; OSMODE=0, damit der Zielpunkt nicht umgefangen wird). Damit ist der
|
||||
;; seitliche Versatz UND die Hoehe unabhaengig von der VF-Innengeometrie 0.
|
||||
(if (and vf-insert vf-endpunkt)
|
||||
(progn
|
||||
(setq korr (mapcar '- ziel-es vf-endpunkt))
|
||||
(setq os-alt (getvar "OSMODE"))
|
||||
(setvar "OSMODE" 0)
|
||||
(if (> (distance '(0.0 0.0 0.0) korr) 1e-6)
|
||||
(command "_.MOVE" vf-insert "" '(0.0 0.0 0.0) korr))
|
||||
(setvar "OSMODE" os-alt))
|
||||
)
|
||||
(princ (ssg-text "gf-vf-gebaut"))
|
||||
)
|
||||
)
|
||||
|
||||
Reference in New Issue
Block a user