diff --git a/Lisp/vf_core.lsp b/Lisp/vf_core.lsp index 072bb2e..9ec78fd 100644 --- a/Lisp/vf_core.lsp +++ b/Lisp/vf_core.lsp @@ -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) diff --git a/Lisp/vf_etage.lsp b/Lisp/vf_etage.lsp index 3e52de0..74a2112 100644 --- a/Lisp/vf_etage.lsp +++ b/Lisp/vf_etage.lsp @@ -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) diff --git a/Lisp/vf_linienzug.lsp b/Lisp/vf_linienzug.lsp index dbb40ae..f0f812a 100644 --- a/Lisp/vf_linienzug.lsp +++ b/Lisp/vf_linienzug.lsp @@ -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) diff --git a/Lisp/vf_standard.lsp b/Lisp/vf_standard.lsp index c4e5682..237df93 100644 --- a/Lisp/vf_standard.lsp +++ b/Lisp/vf_standard.lsp @@ -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) diff --git a/lang/de_DE.json b/lang/de_DE.json index 24312a1..48eccdd 100644 --- a/lang/de_DE.json +++ b/lang/de_DE.json @@ -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)" } } diff --git a/lang/en_GB.json b/lang/en_GB.json index 1c64a1b..4bf1615 100644 --- a/lang/en_GB.json +++ b/lang/en_GB.json @@ -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)" } }