vf_*.lsp: verbleibende deutsche Meldungen auf ssg-text/ssg-textf umgestellt

Betrifft VarioFoerderer-Kern, Standard-/Etage-Aufbau und Linienzug (inkl.
altem Vorwaerts-Nachbau-Modus und Vario_Kette_Merge-Diagnose). Neue Keys in
lang/de_DE.json und lang/en_GB.json ergaenzt.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
2026-08-25 23:34:32 +02:00
parent 82ce795b53
commit d7cb17f53f
6 changed files with 207 additions and 108 deletions
+6 -6
View File
@@ -1208,7 +1208,7 @@
(load (strcat *vf-lisp-pfad* "/vf_linienzug.lsp"))
(setq *ssg-vf-submodule-loaded* t)
)
(princ "\n[vf_core] WARNUNG: DXFM_LISP nicht gesetzt - Untermodule konnten nicht geladen werden!")
(princ (ssg-text "vfc-warnung-untermodule-nicht-geladen"))
)
)
)
@@ -1269,11 +1269,11 @@
;; vf_linienzug.lsp. Dispatcht hier direkt und beendet den Standard-Ablauf.
(if (= anlage-typ "linienzug")
(progn
(princ "\n\nLinienzug-Modus waehlen:")
(princ "\n 1 - Manuelle Eingabe (Punkte klicken)")
(princ "\n 2 - 3D-Objekte + Ziel-Hoehe (Randwert-Solver, fertig)")
(princ "\n 3 - 3D-Objekte stueckweise (Vorwaerts-Nachbau, in Arbeit)")
(setq wahl (getint "\nIhre Wahl (1/2/3) [1]: "))
(princ (ssg-text "vfc-linienzug-modus-header"))
(princ (ssg-text "vfc-linienzug-modus-1"))
(princ (ssg-text "vfc-linienzug-modus-2"))
(princ (ssg-text "vfc-linienzug-modus-3"))
(setq wahl (getint (ssg-text "prompt-wahl-1-2-3")))
;; Konsolen-Nummer -> interne Funktion:
;; 2 = fertiger Ziel-Hoehe-Modus (intern vf-linienzug-modus2)
;; 3 = alter Vorwaerts-Nachbau (intern vf-linienzug-modus3, wird umgebaut)
+11 -15
View File
@@ -738,15 +738,13 @@
(setq bogen-dx (car bogen-mass) bogen-dz (caddr bogen-mass))
(if (= richtung "Auf")
(progn
(princ (strcat "\n\n9/15: " bogen-name
" (" (itoa (- 3 best-winkel)) " Grad geneigt)"))
(princ (ssg-textf "vfe-step9-bogen" (list bogen-name (itoa (- 3 best-winkel)))))
(setq aktueller-punkt
(insert-rotated-block-with-ks bogen-name aktueller-punkt
(- 3 best-winkel) bogen-dx bogen-dz cur-hz))
)
(progn
(princ (strcat "\n\n9/15: " bogen-name
" (" (itoa (+ best-winkel 3)) " Grad geneigt)"))
(princ (ssg-textf "vfe-step9-bogen" (list bogen-name (itoa (+ best-winkel 3)))))
(setq aktueller-punkt
(insert-rotated-block-with-ks bogen-name aktueller-punkt
(+ best-winkel 3) bogen-dx bogen-dz cur-hz))
@@ -754,24 +752,23 @@
)
;; 10. Motorstation (3 Grad geneigt)
(princ "\n\n10/15: Motorstation (500mm, 3 Grad geneigt)")
(princ (ssg-text "vfe-step10"))
(setq aktueller-punkt
(insert-rotated-block-with-ks (strcat "Vario_Motorstation_500mm_" (vf-motorseite-aktuell)) aktueller-punkt 3 500 0 cur-hz))
;; 11. L_GF2 (3 Grad geneigt)
(if (> L_GF2 0.1)
(progn
(princ (strcat "\n\n11/15: Gefaellestrecke (3 Grad, L=" (rtos L_GF2 2 2) " mm)"))
(princ (ssg-textf "vfe-step11-gf2" (list (rtos L_GF2 2 2))))
(setq aktueller-punkt
(insert-inclined-scaled-block "Staustrecke_SP_1000_mm" aktueller-punkt L_GF2 3 cur-hz))
)
(princ "\n\n11/15: L_GF2 (uebersprungen)")
(princ (ssg-text "vfe-step11-skip"))
)
;; 12. Gefaellebogen Ende (verkettet: KS_EIN auf cur-hz, dann cur-hz drehen)
(setq bogen-info (vf-element-ks-info gefaelle-blockname))
(princ (strcat "\n\n12/15: " gefaelle-blockname
" (Ende, verkettet cur-hz=" (rtos cur-hz 2 1) ")"))
(princ (ssg-textf "vfe-step12" (list gefaelle-blockname (rtos cur-hz 2 1))))
(setq aktueller-punkt
(insert-block-by-ks gefaelle-blockname aktueller-punkt (- cur-hz (car bogen-info))))
(setq cur-hz (+ cur-hz (- (cadr bogen-info) (car bogen-info))))
@@ -803,25 +800,24 @@
(if (< L-exit 50.0) (setq L-exit 50.0)) ; Schutz gegen negative/zu kurze GF
;; 13. Auslauf-Staustrecke (variabel, folgt cur-hz, 3 Grad vert, KS_EIN)
(princ (strcat "\n\n13/15: Staustrecke (variabel L=" (rtos L-exit 2 1)
", cur-hz=" (rtos cur-hz 2 1) ")"))
(princ (ssg-textf "vfe-step13" (list (rtos L-exit 2 1) (rtos cur-hz 2 1))))
(setq aktueller-punkt
(insert-hz-scaled-block-by-ks "Staustrecke_SP_1000_mm" aktueller-punkt
L-exit cur-hz 3))
;; 14. Separator (verkettet, folgt cur-hz, 3 Grad vert)
(princ (strcat "\n\n14/15: Separator (300mm, cur-hz=" (rtos cur-hz 2 1) ")"))
(princ (ssg-textf "vfe-step14" (list (rtos cur-hz 2 1))))
(setq aktueller-punkt
(insert-hz-rotated-block-with-ks "Staustrecke_Separator_SP_300_mm" aktueller-punkt
cur-hz 3 300 0))
;; 15. ES_30 (verkettet: KS_EIN auf cur-hz; KS_AUS auf der Hauptlinie)
(princ (strcat "\n\n15/15: " es-block " (Ende, verkettet cur-hz=" (rtos cur-hz 2 1) ")"))
(princ (ssg-textf "vfe-step15" (list es-block (rtos cur-hz 2 1))))
(setq endpunkt
(insert-block-by-ks es-block aktueller-punkt (- cur-hz (car es-info))))
(princ "\n\n=========================================")
(princ "\n>>> Etage-VarioFoerderer eingefuegt! <<<")
(princ (ssg-text "vfe-eingefuegt"))
endpunkt
)
@@ -1000,7 +996,7 @@
"etage"
'berechne-etage
'etage-foerderanlage-einfuegen
"Etage VarioFoerderer (AS/ES 30 Grad, direkt uebereinander)")
(ssg-text "vfc-typ-etage-beschreibung"))
(princ "\n>>> vf_etage.lsp geladen - Typ 'etage' registriert")
(princ)
+59 -59
View File
@@ -2226,48 +2226,46 @@
aus ein soll-ende ist-ende run-typ richtn best-w
kvariante L_VF ent-fp rad3 just-open)
(princ "\n\n=========================================")
(princ "\n VF-LINIENZUG - Modus 3: 3D-Objekte stueckweise (Vorwaerts-Nachbau, in Arbeit)")
(princ (ssg-text "vfl-vwnb-titel"))
(princ "\n=========================================")
;; Abhaengigkeit Gefaellestrecke-Modul (GF-Bausteine)
(if (null (car (atoms-family 1 '("GF-INSERT-HZ-INCL-SCALED"))))
(progn (alert "Gefaellestrecke-Modul nicht geladen!") (exit)))
(progn (alert (ssg-text "vfl-m3-alert-gf-modul")) (exit)))
(if (or (not *lib-initialized*) (null bogen-auf)) (init-bibliothek))
;; --- 1. Pfad-Objekte waehlen (LINE/ARC) ---
(princ "\n\nPfad-Objekte waehlen (Linien/Boegen):")
(princ (ssg-text "vfl-m3-pfad-waehlen"))
(setq ss (ssget '((0 . "LINE,ARC"))))
(if (null ss) (progn (princ "\nKeine Objekte gewaehlt - Abbruch.") (exit)))
(if (null ss) (progn (princ (ssg-text "vfl-m3-keine-objekte")) (exit)))
(setq obj-liste '() k 0)
(repeat (sslength ss)
(setq obj-liste (cons (vlax-ename->vla-object (ssname ss k)) obj-liste))
(setq k (1+ k)))
;; --- 2. Startpunkt (hoehere Seite) + Hoehe + AS-Seite ---
(setq startpunkt (vfl-getpoint nil "\n\nStartpunkt der Kette (hoehere Seite) waehlen: "))
(if (null startpunkt) (progn (princ "\nAbgebrochen.") (exit)))
(setq start-hoehe (getreal (strcat "\nHoehe (Z) des Startpunkts ["
(rtos (caddr startpunkt) 2 1) "]: ")))
(setq startpunkt (vfl-getpoint nil (ssg-text "vfl-m3-prompt-startpunkt")))
(if (null startpunkt) (progn (princ (ssg-text "vfl-abgebrochen")) (exit)))
(setq start-hoehe (getreal (ssg-textf "vfl-prompt-hoehe-startpunkt"
(list (rtos (caddr startpunkt) 2 1)))))
(if (null start-hoehe) (setq start-hoehe (caddr startpunkt)))
(setq startpunkt (list (car startpunkt) (cadr startpunkt) start-hoehe))
(setq *vfl-as-winkel* (vf-frage-element-winkel "vf-winkel-aus-header")) ; 30/90 vor Seite
(princ "\n\nAUS-Element - Seite waehlen:\n 1 - Links\n 2 - Rechts")
(setq as-seite (if (= (getstring "\nIhre Wahl (1/2) [1]: ") "2") "rechts" "links"))
(princ (ssg-text "vfl-vwnb-aus-seite-menu"))
(setq as-seite (if (= (getstring (ssg-text "prompt-wahl-1-2")) "2") "rechts" "links"))
(vf-set-as-masse *vfl-as-winkel* as-seite) ; Masse fuer Variante
;; --- 3. Sortieren + Analysieren ---
(setq kette (gf-sortiere-objekte obj-liste startpunkt))
(if (null kette)
(progn (princ "\nFEHLER: Pfad nicht sortierbar (haengt er lueckenlos zusammen?).") (exit)))
(progn (princ (ssg-text "vfl-m3-fehler-nicht-sortierbar")) (exit)))
(setq segmente (gf-analysiere-kette kette))
;; --- 4. Eck-Winkel-Vorpruefung (vor dem Bau) ---
(setq ecke-bad (vfl2-pruefe-eckwinkel kette 5.0))
(if ecke-bad
(progn
(alert (strcat "Kein passender Bogen: Eck-Winkel " (rtos ecke-bad 2 1)
" Grad ist nicht ~30/60/90.\n"
"Bitte die Winkel der Linien anpassen."))
(alert (ssg-textf "vfl-vwnb-alert-eckwinkel" (list (rtos ecke-bad 2 1))))
(exit)))
;; --- 5. Setup ---
@@ -2287,7 +2285,7 @@
(progn (if (< first-line 0) (setq first-line i)) (setq last-line i)))
(setq i (1+ i)))
(if (< first-line 0)
(progn (alert "Pfad enthaelt keine Gerade - eine Kette muss mit einer Geraden beginnen.") (exit)))
(progn (alert (ssg-text "vfl-vwnb-alert-keine-gerade")) (exit)))
;; --- 6. Bau-Schleife (Meilenstein 2: GF + VF-Laeufe, Run-State-Machine) ---
;; run-typ: nil / "GF" / "VF". Beim Wechsel GF<->VF wird die VF-Einheit
@@ -2302,20 +2300,20 @@
;; ===================== GERADE =====================
((= typ "Linie")
(setq laenge (caddr seg))
(princ (strcat "\n\nSegment " (itoa (1+ i)) "/" (itoa n)
": Gerade L=" (rtos laenge 2 0) " mm hz=" (rtos hz 2 1)))
(princ "\n Typ? 1 = GF (<=3 Grad) 2 = VF-Ab 3 = VF-Auf 4 = VF-Horizontal")
(setq antwort (getstring "\nIhre Wahl (1/2/3/4) [1]: "))
(princ (ssg-textf "vfl-m3-seg-gerade"
(list (itoa (1+ i)) (itoa n) (rtos laenge 2 0) (rtos hz 2 1))))
(princ (ssg-text "vfl-vwnb-typ-gerade"))
(setq antwort (getstring (ssg-text "prompt-wahl-1-2-3-4")))
(cond
;; --- GF-Gerade ---
((or (= antwort "") (= antwort "1"))
(if (= run-typ "VF") ; offenen VF-Lauf schliessen
(progn (setq frame (vfl2-vf-close frame (car (frame->hz-winkel frame))))
(setq run-typ nil)))
(setq winkel (getreal "\n GF-Neigung in Grad [3]: "))
(setq winkel (getreal (ssg-text "vfl-m3-prompt-gf-neigung")))
(if (null winkel) (setq winkel 3.0))
(if (> winkel 3.0)
(progn (princ "\n Hinweis: GF max. 3 Grad - auf 3 begrenzt.") (setq winkel 3.0)))
(progn (princ (ssg-text "vfl-m3-hinweis-gf-max")) (setq winkel 3.0)))
(if (null frame)
(setq frame (vfl2-insert-as-gf startpunkt hz winkel as-seite)))
(setq deltaL laenge)
@@ -2341,7 +2339,7 @@
(if (= richtn "horizontal")
(setq best-w 0)
(progn
(setq best-w (getint "\n Vario-Winkel (3..51 Grad) [3]: "))
(setq best-w (getint (ssg-text "vfl-vwnb-prompt-vario-winkel")))
(if (null best-w) (setq best-w 3))
(setq best-w (vfl2-snap-vfwinkel best-w))))
(setq L_VF laenge)
@@ -2353,22 +2351,22 @@
;; ===================== ECK / BOGEN =====================
((= typ "Bogen")
(setq bwinkel (nth 3 seg) bseite (nth 4 seg))
(princ (strcat "\n\nSegment " (itoa (1+ i)) "/" (itoa n)
": Eck/Bogen " (itoa bwinkel) " Grad " bseite))
(princ "\n Typ? 1 = GF-Bogen 2 = Vario-Kurve")
(setq antwort (getstring "\nIhre Wahl (1/2) [1]: "))
(princ (ssg-textf "vfl-m3-seg-bogen"
(list (itoa (1+ i)) (itoa n) (itoa bwinkel) bseite)))
(princ (ssg-text "vfl-m3-typ-bogen"))
(setq antwort (getstring (ssg-text "prompt-wahl-1-2")))
(if (= antwort "2")
;; --- Vario-Kurve (nur im VF-Lauf) ---
(if (not (= run-typ "VF"))
(princ "\n >>> Vario-Kurve nur innerhalb eines VF-Laufs zulaessig - uebersprungen.")
(princ (ssg-text "vfl-vwnb-kurve-nur-vf"))
(progn
(princ "\n Vario-Kurve - Variante? 1 = Aussen 2 = Innen")
(setq kvariante (if (= (getstring "\nIhre Wahl (1/2) [2]: ") "1") "aussen" "innen"))
(princ (ssg-text "vfl-m3-variante-frage"))
(setq kvariante (if (= (getstring (ssg-text "vfl-prompt-wahl-1-2-def2")) "1") "aussen" "innen"))
(setq frame (vfl-insert-vario-kurve-block frame bwinkel bseite kvariante))))
;; --- GF-Bogen ---
(progn
(if (null frame)
(progn (alert "Kette beginnt mit einem Bogen - bitte erst eine Gerade.") (exit)))
(progn (alert (ssg-text "vfl-m3-alert-beginnt-bogen")) (exit)))
(if (= run-typ "VF") ; VF-Lauf vor GF-Bogen schliessen
(progn (setq frame (vfl2-vf-close frame (car (frame->hz-winkel frame))))
(setq run-typ nil)))
@@ -2378,7 +2376,7 @@
(setq i (1+ i)))
;; --- 7. Kettenende: offenen VF-Lauf schliessen, dann Separator + ES ---
(if (null frame) (progn (princ "\nNichts gebaut - Abbruch.") (exit)))
(if (null frame) (progn (princ (ssg-text "vfl-m3-nichts-gebaut")) (exit)))
(setq es-seite (vfl-frage-es-seite))
(if (= run-typ "VF")
(progn
@@ -2396,13 +2394,14 @@
(setq soll-ende (caddr (last kette))) ; Endpunkt des letzten gezeichneten Segments
(setq ist-ende (car frame)) ; ES-KS_AUS
(princ "\n\n=========================================")
(princ "\n>>> VF-Linienzug (Modus 2, GF+VF) eingefuegt! <<<")
(princ (strcat "\n Soll-Ende (Pfad): X=" (rtos (car soll-ende) 2 1)
" Y=" (rtos (cadr soll-ende) 2 1)))
(princ (strcat "\n Ist-Ende (ES): X=" (rtos (car ist-ende) 2 1)
" Y=" (rtos (cadr ist-ende) 2 1) " Z=" (rtos (caddr ist-ende) 2 1)))
(princ (strcat "\n Abweichung XY: dX=" (rtos (- (car ist-ende) (car soll-ende)) 2 1)
" dY=" (rtos (- (cadr ist-ende) (cadr soll-ende)) 2 1) " mm"))
(princ (ssg-text "vfl-vwnb-eingefuegt"))
(princ (ssg-textf "vfl-vwnb-soll-ende"
(list (rtos (car soll-ende) 2 1) (rtos (cadr soll-ende) 2 1))))
(princ (ssg-textf "vfl-vwnb-ist-ende"
(list (rtos (car ist-ende) 2 1) (rtos (cadr ist-ende) 2 1) (rtos (caddr ist-ende) 2 1))))
(princ (ssg-textf "vfl-vwnb-abweichung-xy"
(list (rtos (- (car ist-ende) (car soll-ende)) 2 1)
(rtos (- (cadr ist-ende) (cadr soll-ende)) 2 1))))
(princ "\n=========================================")
(princ)
)
@@ -2648,10 +2647,10 @@
(list (rtos (caddr startpunkt) 2 1)))))
(if (null start-hoehe) (setq start-hoehe (caddr startpunkt)))
(setq startpunkt (list (car startpunkt) (cadr startpunkt) start-hoehe))
(princ "\n\nAS-Element setzen?")
(princ "\n 1 - Ja")
(princ "\n 2 - Nein (Kette beginnt direkt am Startpunkt)")
(setq antwort (getstring "\nIhre Wahl (1/2) [1]: "))
(princ (ssg-text "vfl-as-setzen-frage"))
(princ (ssg-text "vfl-ja"))
(princ (ssg-text "vfl-m3-as-nein"))
(setq antwort (getstring (ssg-text "prompt-wahl-1-2")))
(setq as-vorhanden (/= antwort "2"))
(if as-vorhanden
(progn
@@ -2671,10 +2670,10 @@
(list (rtos (caddr endpunkt) 2 1)))))
(if (null end-hoehe) (setq end-hoehe (caddr endpunkt)))
(setq endpunkt (list (car endpunkt) (cadr endpunkt) end-hoehe))
(princ "\n\nES-Element setzen?")
(princ "\n 1 - Ja")
(princ "\n 2 - Nein (Kette endet direkt am Zielpunkt)")
(setq antwort (getstring "\nIhre Wahl (1/2) [1]: "))
(princ (ssg-text "vfl-es-setzen-frage"))
(princ (ssg-text "vfl-ja"))
(princ (ssg-text "vfl-es-nein-zielpunkt"))
(setq antwort (getstring (ssg-text "prompt-wahl-1-2")))
(setq es-vorhanden (/= antwort "2"))
(if es-vorhanden
(progn
@@ -3598,17 +3597,18 @@
(if (< (length kette) 2)
(progn
(princ (strcat "\n [Diagnose] KS_AUS Startbaustein (" (vfl-kette-rec-bname start-rec) "): X="
(rtos (car (vfl-kette-rec-aus start-rec)) 2 1) " Y="
(rtos (cadr (vfl-kette-rec-aus start-rec)) 2 1) " Z="
(rtos (caddr (vfl-kette-rec-aus start-rec)) 2 1)))
(princ (ssg-textf "vfl-kette-diag-startbaustein"
(list (vfl-kette-rec-bname start-rec)
(rtos (car (vfl-kette-rec-aus start-rec)) 2 1)
(rtos (cadr (vfl-kette-rec-aus start-rec)) 2 1)
(rtos (caddr (vfl-kette-rec-aus start-rec)) 2 1))))
(if naechster-fund
(princ (strcat "\n [Diagnose] Naechster Kandidat: " (vfl-kette-rec-bname (car naechster-fund))
" Abstand=" (rtos (cdr naechster-fund) 2 1)
" mm (Toleranz eng=" (rtos *vfl-kette-tol-eng* 2 1)
" mm, weit=" (rtos *vfl-kette-tol-weit* 2 1) " mm)"))
(princ (strcat "\n [Diagnose] Kein anderer Baustein mit KS_EIN gefunden (insgesamt "
(itoa (length alle-records)) " Bausteine erfasst).")))
(princ (ssg-textf "vfl-kette-diag-naechster-kandidat"
(list (vfl-kette-rec-bname (car naechster-fund))
(rtos (cdr naechster-fund) 2 1)
(rtos *vfl-kette-tol-eng* 2 1)
(rtos *vfl-kette-tol-weit* 2 1))))
(princ (ssg-textf "vfl-kette-diag-kein-anderer" (list (itoa (length alle-records))))))
(princ (ssg-text "vfl-kette-nur-ein-baustein")) (ssg-end) (exit)))
(princ (ssg-textf "vfl-kette-gefunden" (list (itoa (length kette)))))
@@ -3622,8 +3622,8 @@
;; im Layout nahe beieinander liegen).
(if verdaechtig
(foreach v verdaechtig
(princ (strcat "\n [Diagnose] VERDAECHTIG: '" (car v) "' -> '" (cadr v)
"' Abstand=" (rtos (caddr v) 2 3) " mm (innerhalb Toleranz, aber nicht ~0)")))
(princ (ssg-textf "vfl-kette-diag-verdaechtig"
(list (car v) (cadr v) (rtos (caddr v) 2 3)))))
)
;; Attribute aus der Bausteinfolge herleiten, bevor irgendetwas an der
@@ -3724,7 +3724,7 @@
"linienzug"
'vfl-berechne-platzhalter
'vfl-einfuege-platzhalter
"3D-Linienzug (gemischte GF/VF-Kette; Modus 1 manuell / Modus 2 Ziel-Hoehe fertig / Modus 3 stueckweise in Arbeit)")
(ssg-text "vfc-typ-linienzug-beschreibung"))
(princ "\n>>> vf_linienzug.lsp geladen - Typ 'linienzug' registriert")
(princ)
+25 -26
View File
@@ -547,23 +547,22 @@
(progn
(if (= best-winkel 0)
(progn
(princ (strcat "\n\n6/11: Horizontale Zwischenstrecke (0 Grad, L="
(rtos L_VF 2 2) " mm)"))
(princ (ssg-textf "vfs-schritt6-horizontal" (list (rtos L_VF 2 2))))
(setq aktueller-punkt
(insert-inclined-scaled-block "Staustrecke_SP_1000_mm" aktueller-punkt
L_VF 0 hz))
)
(if (= richtung "Auf")
(progn
(princ (strcat "\n\n6/11: Steigungsstrecke ("
(itoa (- (- best-winkel 3))) " Grad, L=" (rtos L_VF 2 2) " mm)"))
(princ (ssg-textf "vfs-schritt6-steigung"
(list (itoa (- (- best-winkel 3))) (rtos L_VF 2 2))))
(setq aktueller-punkt
(insert-inclined-scaled-block "Staustrecke_SP_1000_mm" aktueller-punkt
L_VF (- (- best-winkel 3)) hz))
)
(progn
(princ (strcat "\n\n6/11: Gefaellestrecke ("
(itoa (+ best-winkel 3)) " Grad, L=" (rtos L_VF 2 2) " mm)"))
(princ (ssg-textf "vfs-schritt6-gefaelle"
(list (itoa (+ best-winkel 3)) (rtos L_VF 2 2))))
(setq aktueller-punkt
(insert-inclined-scaled-block "Staustrecke_SP_1000_mm" aktueller-punkt
L_VF (+ best-winkel 3) hz))
@@ -571,7 +570,7 @@
)
)
)
(princ "\n\n6/11: (uebersprungen)")
(princ (ssg-text "vfs-schritt6-skip"))
)
;; 7. 2. Vertikalbogen
@@ -594,22 +593,22 @@
(setq bogen-dx (car bogen-mass) bogen-dz (caddr bogen-mass))
(if (= best-winkel 0)
(progn
(princ (strcat "\n\n7/11: " bogen-name " (3 Grad geneigt)"))
(princ (ssg-textf "vfs-schritt7-bogen1" (list bogen-name)))
(setq aktueller-punkt
(insert-rotated-block-with-ks bogen-name aktueller-punkt
0 bogen-dx bogen-dz hz))
)
(if (= richtung "Auf")
(progn
(princ (strcat "\n\n7/11: " bogen-name
" (" (itoa (- 3 best-winkel)) " Grad geneigt)"))
(princ (ssg-textf "vfs-schritt7-bogen-winkel"
(list bogen-name (itoa (- 3 best-winkel)))))
(setq aktueller-punkt
(insert-rotated-block-with-ks bogen-name aktueller-punkt
(- 3 best-winkel) bogen-dx bogen-dz hz))
)
(progn
(princ (strcat "\n\n7/11: " bogen-name
" (" (itoa (+ best-winkel 3)) " Grad geneigt)"))
(princ (ssg-textf "vfs-schritt7-bogen-winkel"
(list bogen-name (itoa (+ best-winkel 3)))))
(setq aktueller-punkt
(insert-rotated-block-with-ks bogen-name aktueller-punkt
(+ best-winkel 3) bogen-dx bogen-dz hz))
@@ -632,7 +631,7 @@
(if (null hz) (setq hz 0.0))
(setq hz (float hz))
;; Motorstation
(princ "\n\n[VF-Ausgang] Motorstation (500 mm, 3 Grad geneigt)")
(princ (ssg-text "vfs-ausgang-motorstation"))
(setq aktueller-punkt
(insert-rotated-block-with-ks (strcat "Vario_Motorstation_500mm_" (vf-motorseite-aktuell)) aktueller-punkt
(ssg-cfg-or "vario" "gefaelle_winkel" 3)
@@ -641,17 +640,17 @@
;; GF2 (optional, verbindet Motorstation mit der Auslauf-Neigung)
(if (> L_GF2 0.1)
(progn
(princ (strcat "\n[VF-Ausgang] Gefaellestrecke GF2 (3 Grad, L=" (rtos L_GF2 2 2) " mm)"))
(princ (ssg-textf "vfs-ausgang-gf2" (list (rtos L_GF2 2 2))))
(setq aktueller-punkt
(insert-inclined-scaled-block "Staustrecke_SP_1000_mm" aktueller-punkt
L_GF2 (ssg-cfg-or "vario" "gefaelle_winkel" 3) hz))
)
(princ "\n[VF-Ausgang] GF2 (kein / uebersprungen)")
(princ (ssg-text "vfs-ausgang-gf2-skip"))
)
;; Separator (optional, nur Standard-VF)
(if mit-separator
(progn
(princ "\n[VF-Ausgang] Separator (300 mm, 3 Grad geneigt)")
(princ (ssg-text "vfs-ausgang-separator"))
(setq aktueller-punkt
(insert-rotated-block-with-ks "Staustrecke_Separator_SP_300_mm" aktueller-punkt
(ssg-cfg-or "vario" "gefaelle_winkel" 3)
@@ -678,7 +677,7 @@
(if (null hz) (setq hz 0.0))
(setq hz (float hz))
(setq es-block (strcat "ES_Element_90_" seite))
(princ (strcat "\n\n11/11: " es-block " (hz=" (rtos hz 2 1) grad-zeichen ")"))
(princ (ssg-textf "vfs-schritt11-es" (list es-block (rtos hz 2 1) grad-zeichen)))
(insert-block-by-ks es-block aktueller-punkt hz)
)
@@ -697,7 +696,7 @@
(setq endpunkt (vfs-es-teil aktueller-punkt seite hz))
(princ "\n\n=========================================")
(princ "\n>>> Standard VarioFoerderer eingefuegt!")
(princ (ssg-text "vfs-eingefuegt"))
endpunkt
)
@@ -1288,11 +1287,11 @@
(defun c:VARIOFOERDERER_NACHRUESTEN ( / ss i ent ed bname attribs xd typ hz
n-neu n-skip default-hz)
(ssg-start "VARIOFOERDERER_NACHRUESTEN" nil)
(princ "\n=== VF-Bestandsbloecke nachruesten (SSG_VF_EDIT-Marker) ===")
(princ (ssg-text "vfs-nachruesten-titel"))
(setq ss (ssget '((0 . "INSERT") (2 . "VF_*"))))
(if (null ss)
(progn
(princ "\nKeine VF_n-Bloecke ausgewaehlt - abgebrochen.")
(princ (ssg-text "vfs-nachruesten-keine-bloecke"))
(ssg-end)
(exit)))
(setq i 0 n-neu 0 n-skip 0 default-hz 0.0)
@@ -1303,7 +1302,7 @@
(cond
;; Schon markiert (standard/etage) -> ueberspringen
((and xd (member (car xd) '("standard" "etage")))
(princ (strcat "\n " bname ": bereits markiert (" (car xd) ") - uebersprungen"))
(princ (ssg-textf "vfs-nachruesten-bereits-markiert" (list bname (car xd))))
(setq n-skip (1+ n-skip)))
(t
(setq attribs (ssg-attrib-read ent))
@@ -1311,17 +1310,17 @@
(setq typ
(if (or (assoc "GF_Bogen_R_60" attribs) (assoc "GF_Bogen_L_60" attribs))
"etage" "standard"))
(princ (strcat "\n " bname ": erkannt als Typ '" typ "'"))
(setq hz (getreal (strcat "\n Baurichtung hz in Grad [" (rtos default-hz 2 1) "]: ")))
(princ (ssg-textf "vfs-nachruesten-erkannt" (list bname typ)))
(setq hz (getreal (ssg-textf "vfs-nachruesten-prompt-hz" (list (rtos default-hz 2 1)))))
(if (null hz) (setq hz default-hz))
(setq default-hz hz)
(vf-edit-xdata-schreiben ent typ hz)
(princ (strcat " -> markiert (hz=" (rtos hz 2 1) ")"))
(princ (ssg-textf "vfs-nachruesten-markiert" (list (rtos hz 2 1))))
(setq n-neu (1+ n-neu)))
)
(setq i (1+ i))
)
(princ (strcat "\n=== Fertig: " (itoa n-neu) " markiert, " (itoa n-skip) " uebersprungen ==="))
(princ (ssg-textf "vfs-nachruesten-fertig" (list (itoa n-neu) (itoa n-skip))))
(ssg-end)
(princ)
)
@@ -1336,7 +1335,7 @@
"standard"
'berechne-standard
'variofoerderer-einfuegen
"Standard VarioFoerderer (AS/ES 90 Grad, horizontal versetzt)")
(ssg-text "vfc-typ-standard-beschreibung"))
(princ "\n>>> vf_standard.lsp geladen - Typ 'standard' registriert")
(princ)
+53 -1
View File
@@ -759,6 +759,58 @@
"vfl-abbruch-wickeln-fehler": "\n>>> FEHLER beim Sichern der Teil-Geometrie als Block: %1",
"vfl-edit-dialog-fehlt": "Dialog nicht gefunden: %1",
"vfl-edit-abgebrochen": "\nEditieren abgebrochen - keine Aenderung.",
"vfl-dlg-kopf-sektionen": "Sektionen: %1"
"vfl-dlg-kopf-sektionen": "Sektionen: %1",
"vfc-warnung-untermodule-nicht-geladen": "\n[vf_core] WARNUNG: DXFM_LISP nicht gesetzt - Untermodule konnten nicht geladen werden!",
"vfc-linienzug-modus-header": "\n\nLinienzug-Modus waehlen:",
"vfc-linienzug-modus-1": "\n 1 - Manuelle Eingabe (Punkte klicken)",
"vfc-linienzug-modus-2": "\n 2 - 3D-Objekte + Ziel-Hoehe (Randwert-Solver, fertig)",
"vfc-linienzug-modus-3": "\n 3 - 3D-Objekte stueckweise (Vorwaerts-Nachbau, in Arbeit)",
"vfc-typ-standard-beschreibung": "Standard VarioFoerderer (AS/ES 90 Grad, horizontal versetzt)",
"vfc-typ-etage-beschreibung": "Etage VarioFoerderer (AS/ES 30 Grad, direkt uebereinander)",
"vfc-typ-linienzug-beschreibung": "3D-Linienzug (gemischte GF/VF-Kette; Modus 1 manuell / Modus 2 Ziel-Hoehe fertig / Modus 3 stueckweise in Arbeit)",
"vfs-schritt6-horizontal": "\n\n6/11: Horizontale Zwischenstrecke (0 Grad, L=%1 mm)",
"vfs-schritt6-steigung": "\n\n6/11: Steigungsstrecke (%1 Grad, L=%2 mm)",
"vfs-schritt6-gefaelle": "\n\n6/11: Gefaellestrecke (%1 Grad, L=%2 mm)",
"vfs-schritt6-skip": "\n\n6/11: (uebersprungen)",
"vfs-schritt7-bogen1": "\n\n7/11: %1 (3 Grad geneigt)",
"vfs-schritt7-bogen-winkel": "\n\n7/11: %1 (%2 Grad geneigt)",
"vfs-ausgang-motorstation": "\n\n[VF-Ausgang] Motorstation (500 mm, 3 Grad geneigt)",
"vfs-ausgang-gf2": "\n[VF-Ausgang] Gefaellestrecke GF2 (3 Grad, L=%1 mm)",
"vfs-ausgang-gf2-skip": "\n[VF-Ausgang] GF2 (kein / uebersprungen)",
"vfs-ausgang-separator": "\n[VF-Ausgang] Separator (300 mm, 3 Grad geneigt)",
"vfs-schritt11-es": "\n\n11/11: %1 (hz=%2%3)",
"vfs-eingefuegt": "\n>>> Standard VarioFoerderer eingefuegt!",
"vfs-nachruesten-titel": "\n=== VF-Bestandsbloecke nachruesten (SSG_VF_EDIT-Marker) ===",
"vfs-nachruesten-keine-bloecke": "\nKeine VF_n-Bloecke ausgewaehlt - abgebrochen.",
"vfs-nachruesten-bereits-markiert": "\n %1: bereits markiert (%2) - uebersprungen",
"vfs-nachruesten-erkannt": "\n %1: erkannt als Typ '%2'",
"vfs-nachruesten-prompt-hz": "\n Baurichtung hz in Grad [%1]: ",
"vfs-nachruesten-markiert": " -> markiert (hz=%1)",
"vfs-nachruesten-fertig": "\n=== Fertig: %1 markiert, %2 uebersprungen ===",
"vfe-step9-bogen": "\n\n9/15: %1 (%2 Grad geneigt)",
"vfe-step10": "\n\n10/15: Motorstation (500mm, 3 Grad geneigt)",
"vfe-step11-gf2": "\n\n11/15: Gefaellestrecke (3 Grad, L=%1 mm)",
"vfe-step11-skip": "\n\n11/15: L_GF2 (uebersprungen)",
"vfe-step12": "\n\n12/15: %1 (Ende, verkettet cur-hz=%2)",
"vfe-step13": "\n\n13/15: Staustrecke (variabel L=%1, cur-hz=%2)",
"vfe-step14": "\n\n14/15: Separator (300mm, cur-hz=%1)",
"vfe-step15": "\n\n15/15: %1 (Ende, verkettet cur-hz=%2)",
"vfe-eingefuegt": "\n>>> Etage-VarioFoerderer eingefuegt! <<<",
"vfl-vwnb-titel": "\n VF-LINIENZUG - Modus 3: 3D-Objekte stueckweise (Vorwaerts-Nachbau, in Arbeit)",
"vfl-vwnb-aus-seite-menu": "\n\nAUS-Element - Seite waehlen:\n 1 - Links\n 2 - Rechts",
"vfl-vwnb-alert-eckwinkel": "Kein passender Bogen: Eck-Winkel %1 Grad ist nicht ~30/60/90.\nBitte die Winkel der Linien anpassen.",
"vfl-vwnb-alert-keine-gerade": "Pfad enthaelt keine Gerade - eine Kette muss mit einer Geraden beginnen.",
"vfl-vwnb-typ-gerade": "\n Typ? 1 = GF (<=3 Grad) 2 = VF-Ab 3 = VF-Auf 4 = VF-Horizontal",
"vfl-vwnb-prompt-vario-winkel": "\n Vario-Winkel (3..51 Grad) [3]: ",
"vfl-vwnb-kurve-nur-vf": "\n >>> Vario-Kurve nur innerhalb eines VF-Laufs zulaessig - uebersprungen.",
"vfl-vwnb-eingefuegt": "\n>>> VF-Linienzug (Modus 2, GF+VF) eingefuegt! <<<",
"vfl-vwnb-soll-ende": "\n Soll-Ende (Pfad): X=%1 Y=%2",
"vfl-vwnb-ist-ende": "\n Ist-Ende (ES): X=%1 Y=%2 Z=%3",
"vfl-vwnb-abweichung-xy": "\n Abweichung XY: dX=%1 dY=%2 mm",
"vfl-m3-as-nein": "\n 2 - Nein (Kette beginnt direkt am Startpunkt)",
"vfl-kette-diag-startbaustein": "\n [Diagnose] KS_AUS Startbaustein (%1): X=%2 Y=%3 Z=%4",
"vfl-kette-diag-naechster-kandidat": "\n [Diagnose] Naechster Kandidat: %1 Abstand=%2 mm (Toleranz eng=%3 mm, weit=%4 mm)",
"vfl-kette-diag-kein-anderer": "\n [Diagnose] Kein anderer Baustein mit KS_EIN gefunden (insgesamt %1 Bausteine erfasst).",
"vfl-kette-diag-verdaechtig": "\n [Diagnose] VERDAECHTIG: '%1' -> '%2' Abstand=%3 mm (innerhalb Toleranz, aber nicht ~0)"
}
}
+53 -1
View File
@@ -759,6 +759,58 @@
"vfl-abbruch-wickeln-fehler": "\n>>> ERROR saving the partial geometry as a block: %1",
"vfl-edit-dialog-fehlt": "Dialog not found: %1",
"vfl-edit-abgebrochen": "\nEdit cancelled - no change.",
"vfl-dlg-kopf-sektionen": "Sections: %1"
"vfl-dlg-kopf-sektionen": "Sections: %1",
"vfc-warnung-untermodule-nicht-geladen": "\n[vf_core] WARNING: DXFM_LISP not set - submodules could not be loaded!",
"vfc-linienzug-modus-header": "\n\nSelect line-path mode:",
"vfc-linienzug-modus-1": "\n 1 - Manual entry (click points)",
"vfc-linienzug-modus-2": "\n 2 - 3D objects + target height (boundary-value solver, finished)",
"vfc-linienzug-modus-3": "\n 3 - 3D objects step by step (forward reconstruction, work in progress)",
"vfc-typ-standard-beschreibung": "Standard VarioFoerderer (AS/ES 90 degrees, offset horizontally)",
"vfc-typ-etage-beschreibung": "Etage VarioFoerderer (AS/ES 30 degrees, directly stacked)",
"vfc-typ-linienzug-beschreibung": "3D line path (mixed GF/VF chain; mode 1 manual / mode 2 target height finished / mode 3 step by step work in progress)",
"vfs-schritt6-horizontal": "\n\n6/11: Horizontal intermediate section (0 deg, L=%1 mm)",
"vfs-schritt6-steigung": "\n\n6/11: Incline section (%1 deg, L=%2 mm)",
"vfs-schritt6-gefaelle": "\n\n6/11: Slope section (%1 deg, L=%2 mm)",
"vfs-schritt6-skip": "\n\n6/11: (skipped)",
"vfs-schritt7-bogen1": "\n\n7/11: %1 (3 deg inclined)",
"vfs-schritt7-bogen-winkel": "\n\n7/11: %1 (%2 deg inclined)",
"vfs-ausgang-motorstation": "\n\n[VF-Ausgang] Motor station (500 mm, 3 deg inclined)",
"vfs-ausgang-gf2": "\n[VF-Ausgang] Slope section GF2 (3 deg, L=%1 mm)",
"vfs-ausgang-gf2-skip": "\n[VF-Ausgang] GF2 (none / skipped)",
"vfs-ausgang-separator": "\n[VF-Ausgang] Separator (300 mm, 3 deg inclined)",
"vfs-schritt11-es": "\n\n11/11: %1 (hz=%2%3)",
"vfs-eingefuegt": "\n>>> Standard VarioFoerderer inserted!",
"vfs-nachruesten-titel": "\n=== Retrofit existing VF blocks (SSG_VF_EDIT marker) ===",
"vfs-nachruesten-keine-bloecke": "\nNo VF_n blocks selected - cancelled.",
"vfs-nachruesten-bereits-markiert": "\n %1: already marked (%2) - skipped",
"vfs-nachruesten-erkannt": "\n %1: recognised as type '%2'",
"vfs-nachruesten-prompt-hz": "\n Build direction hz in degrees [%1]: ",
"vfs-nachruesten-markiert": " -> marked (hz=%1)",
"vfs-nachruesten-fertig": "\n=== Done: %1 marked, %2 skipped ===",
"vfe-step9-bogen": "\n\n9/15: %1 (%2 deg inclined)",
"vfe-step10": "\n\n10/15: Motor station (500mm, 3 deg inclined)",
"vfe-step11-gf2": "\n\n11/15: Slope section (3 deg, L=%1 mm)",
"vfe-step11-skip": "\n\n11/15: L_GF2 (skipped)",
"vfe-step12": "\n\n12/15: %1 (end, chained cur-hz=%2)",
"vfe-step13": "\n\n13/15: Buffer section (variable L=%1, cur-hz=%2)",
"vfe-step14": "\n\n14/15: Separator (300mm, cur-hz=%1)",
"vfe-step15": "\n\n15/15: %1 (end, chained cur-hz=%2)",
"vfe-eingefuegt": "\n>>> Etage VarioFoerderer inserted! <<<",
"vfl-vwnb-titel": "\n VF LINE PATH - Mode 3: 3D objects step by step (forward reconstruction, work in progress)",
"vfl-vwnb-aus-seite-menu": "\n\nOUT element - select side:\n 1 - Left\n 2 - Right",
"vfl-vwnb-alert-eckwinkel": "No matching arc: corner angle %1 deg is not ~30/60/90.\nPlease adjust the angles of the lines.",
"vfl-vwnb-alert-keine-gerade": "Path contains no straight - a chain must begin with a straight.",
"vfl-vwnb-typ-gerade": "\n Type? 1 = GF (<=3 deg) 2 = VF-down 3 = VF-up 4 = VF-horizontal",
"vfl-vwnb-prompt-vario-winkel": "\n Vario angle (3..51 deg) [3]: ",
"vfl-vwnb-kurve-nur-vf": "\n >>> Vario curve only allowed within a VF run - skipped.",
"vfl-vwnb-eingefuegt": "\n>>> VF line path (mode 2, GF+VF) inserted! <<<",
"vfl-vwnb-soll-ende": "\n Target end (path): X=%1 Y=%2",
"vfl-vwnb-ist-ende": "\n Actual end (ES): X=%1 Y=%2 Z=%3",
"vfl-vwnb-abweichung-xy": "\n Deviation XY: dX=%1 dY=%2 mm",
"vfl-m3-as-nein": "\n 2 - No (chain starts directly at the start point)",
"vfl-kette-diag-startbaustein": "\n [Diagnose] KS_AUS start block (%1): X=%2 Y=%3 Z=%4",
"vfl-kette-diag-naechster-kandidat": "\n [Diagnose] Next candidate: %1 distance=%2 mm (tolerance tight=%3 mm, wide=%4 mm)",
"vfl-kette-diag-kein-anderer": "\n [Diagnose] No other block with KS_EIN found (%1 blocks captured in total).",
"vfl-kette-diag-verdaechtig": "\n [Diagnose] SUSPICIOUS: '%1' -> '%2' distance=%3 mm (within tolerance, but not ~0)"
}
}