Uebersetzung der Benutzermeldungen in vf_core.lsp und Gefaellestrecke.lsp auf ssg-text/ssg-textf umgestellt

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
2026-07-16 09:39:18 +02:00
parent 9199ea705f
commit bd1366bc8a
4 changed files with 421 additions and 194 deletions
+127 -140
View File
@@ -121,13 +121,13 @@
(setq block-datei (strcat block-pfad blockname ".dwg"))
(if (findfile block-datei)
(progn
(princ (strcat "\n Lade Block: " blockname " ..."))
(princ (ssg-textf "gf-lade-block" (list blockname)))
(setq temp-obj
(vla-InsertBlock modelspace
(vlax-3D-point '(0 0 0))
block-datei 1.0 1.0 1.0 0))
(vla-Delete temp-obj)
(princ " OK")
(princ (ssg-text "gf-status-ok"))
)
(princ (ssg-textf "gf-fehler-blockdatei-fehlt" (list block-datei)))
)
@@ -757,7 +757,7 @@
(setq rest (vl-remove best rest))
)
(progn
(princ "\n WARNUNG: Kette unterbrochen!")
(princ (ssg-text "gf-warnung-kette-unterbrochen"))
(setq rest nil)
)
)
@@ -854,25 +854,24 @@
;; dH_grade = L_total * sin(v); dH_fix = aus-dz + ein-dz + sum-dz-bogen
(setq L-gerade (+ L-gerade (float aus-dx) (float ein-dx) (float sum-dx-bogen)))
(setq deltaH-eff (- (float deltaH) (float aus-dz) (float ein-dz) sum-dz-bogen))
(princ (strcat "\n Gesamte Nennlaenge (inkl. Bogen-dx): " (rtos L-gerade 2 1) " mm"))
(princ (strcat "\n Feste Hoehenanteile (AS/ES-dz + Bogen-dz): "
(rtos (+ (float aus-dz) (float ein-dz) sum-dz-bogen) 2 1) " mm"))
(princ (strcat "\n aus-dz=" (rtos (float aus-dz) 2 2)
" ein-dz=" (rtos (float ein-dz) 2 2)
" Bogen-dz=" (rtos sum-dz-bogen 2 2)))
(princ (strcat "\n Effektive Resthoehe fuer Grade: " (rtos deltaH-eff 2 1) " mm"))
(princ (ssg-textf "gf-status-nennlaenge" (list (rtos L-gerade 2 1))))
(princ (ssg-textf "gf-status-feste-hoehenanteile"
(list (rtos (+ (float aus-dz) (float ein-dz) sum-dz-bogen) 2 1))))
(princ (ssg-textf "gf-status-dz-detail"
(list (rtos (float aus-dz) 2 2) (rtos (float ein-dz) 2 2) (rtos sum-dz-bogen 2 2))))
(princ (ssg-textf "gf-status-resthoehe" (list (rtos deltaH-eff 2 1))))
(cond
((<= L-gerade 0.1)
(princ "\n WARNUNG: keine geraden Strecken -> Fallback 3 Grad")
(princ (ssg-text "gf-warnung-keine-geraden"))
3.0)
((< deltaH-eff 0)
(princ "\n WARNUNG: feste Anteile > deltaH -> Fallback 1 Grad")
(princ (ssg-text "gf-warnung-feste-anteile"))
1.0)
(t
(setq sin-alpha (/ deltaH-eff L-gerade))
(if (> sin-alpha 1.0) (setq sin-alpha 1.0))
(setq alpha (* (asin sin-alpha) (/ 180.0 pi)))
(princ (strcat "\n>>> Naeherungswinkel: " (rtos alpha 2 3) grad-zeichen))
(princ (ssg-textf "gf-status-naeherungswinkel" (list (rtos alpha 2 3) grad-zeichen)))
alpha
)
)
@@ -918,10 +917,9 @@
(setq bseite (nth 4 seg))
(cond
((= typ "Linie")
(princ (strcat "\n\n" (itoa (1+ i)) "/" (itoa n)
": Staustrecke L=" (rtos laenge 2 1) " mm"
" hz=" (rtos hz 2 1) grad-zeichen
" v=" (rtos grade 2 2) grad-zeichen))
(princ (ssg-textf "gf-status-linie-staustrecke"
(list (1+ i) n (rtos laenge 2 1) (rtos hz 2 1) grad-zeichen
(rtos grade 2 2) grad-zeichen)))
(setq endpunkt
(gf-insert-hz-incl-scaled
"Staustrecke_SP_1000_mm" (car aktuell-frame) laenge hz grade))
@@ -935,10 +933,8 @@
;; Separator am Ende dieser Linie, falls naechstes Segment ein Bogen ist
(if (and naechstes (= (car naechstes) "Bogen"))
(progn
(princ (strcat "\n\n" (itoa (1+ i)) "S/" (itoa n)
": Separator 300mm (vor Bogen)"
" hz=" (rtos hz 2 1) grad-zeichen
" v=" (rtos grade 2 2) grad-zeichen))
(princ (ssg-textf "gf-status-separator-vor-bogen"
(list (1+ i) n (rtos hz 2 1) grad-zeichen (rtos grade 2 2) grad-zeichen)))
(setq endpunkt
(gf-insert-hz-with-ks
"Staustrecke_Separator_SP_300_mm" (car aktuell-frame) hz grade 300 0))
@@ -948,9 +944,8 @@
)
((= typ "Bogen")
(setq blockname (gf-bogen-blockname bwinkel bseite))
(princ (strcat "\n\n" (itoa (1+ i)) "/" (itoa n)
": " blockname
" hz=" (rtos hz 2 1) grad-zeichen))
(princ (ssg-textf "gf-status-bogen-einfuegen"
(list (1+ i) n blockname (rtos hz 2 1) grad-zeichen)))
;; Gefaellebogen: KS_EIN an aktuellem Rahmen ausrichten (volle 3D-Rotation)
(setq aktuell-frame (insert-block-ks-to-ks blockname aktuell-frame))
)
@@ -958,7 +953,7 @@
(setq i (1+ i))
)
(princ "\n\n=========================================")
(princ "\n>>> Linienzug-Gefaellestrecke eingefuegt! <<<")
(princ (ssg-text "gf-status-linienzug-eingefuegt"))
(princ "\n=========================================")
aktuell-frame)
@@ -1009,17 +1004,17 @@
rad-v-korr ein-hz-as-k rad-h-as-k xu-as-meas
rad-h-es-k xu-es-meas dz-as-ist dz-es-ist
dH-korr grade-prev iter)
(princ "\n\n>>> MODUS 3: Linienzug auswaehlen <<<")
(princ "\nBitte alle Linien (LINE) und Boegen (ARC) des Pfades auswaehlen,")
(princ "\ndann ENTER druecken:")
(princ (ssg-text "gf-modus3-header"))
(princ (ssg-text "gf-modus3-hinweis1"))
(princ (ssg-text "gf-modus3-hinweis2"))
;; Selektion
(setq ss (ssget (list (cons 0 "LINE,ARC"))))
(if (null ss)
(progn (princ "\nKeine Objekte ausgewaehlt!") (exit))
(progn (princ (ssg-text "gf-fehler-keine-objekte")) (exit))
)
(setq n (sslength ss))
(princ (strcat "\n " (itoa n) " Objekte ausgewaehlt."))
(princ (ssg-textf "gf-status-objekte-ausgewaehlt" (list n)))
;; Objekte in Liste
(setq obj-liste '() i 0)
@@ -1032,30 +1027,30 @@
;; Startpunkt: Kettenanfang (Sortierung) + KS_EIN-Position des AUS-Elements
;; Z-Hoehe = Anschlusshoehe der Gesamtstrecke (deltaH-Referenz oben)
(setq startpunkt
(getpoint "\nStartpunkt (3D) waehlen - KS_EIN AUS-Element / Kettenanfang: "))
(getpoint (ssg-text "gf-prompt-startpunkt-kette")))
(if (null startpunkt)
(progn (princ "\nKein Startpunkt!") (exit))
(progn (princ (ssg-text "gf-fehler-kein-startpunkt")) (exit))
)
;; Endpunkt: KS_AUS-Position des EIN-Elements (Z-Referenz unten)
;; deltaH = |startpunkt.Z - endpunkt-ref.Z|
(setq endpunkt-ref
(getpoint "\nEndpunkt (3D) waehlen - KS_AUS EIN-Element / Kettenende: "))
(getpoint (ssg-text "gf-prompt-endpunkt-kette")))
(if (null endpunkt-ref)
(progn (princ "\nKein Endpunkt!") (exit))
(progn (princ (ssg-text "gf-fehler-kein-endpunkt")) (exit))
)
;; DeltaH aus Z-Koordinaten
(setq deltaH (abs (- (caddr startpunkt) (caddr endpunkt-ref))))
(princ (strcat "\n " delta-sym "H aus 3D-Punkten: " (rtos deltaH 2 1) " mm"))
(princ (ssg-textf "gf-status-deltah-3dpunkte" (list delta-sym (rtos deltaH 2 1))))
;; Kette sortieren
(princ "\n Sortiere Segmente ...")
(princ (ssg-text "gf-status-sortiere-segmente"))
(setq kette (gf-sortiere-objekte obj-liste startpunkt))
(if (null kette)
(progn (alert "Keine verbundene Kette gefunden!") (exit))
(progn (alert (ssg-text "gf-alert-keine-kette")) (exit))
)
(princ (strcat " " (itoa (length kette)) " Segmente gefunden."))
(princ (ssg-textf "gf-status-segmente-gefunden" (list (length kette))))
;; Segmente analysieren
(setq segmente (gf-analysiere-kette kette))
@@ -1125,36 +1120,35 @@
)
;; Segmente nach Laengenanpassung anzeigen
(princ "\n\n--- Segment-Analyse (Laengen nach Kuerzung) ---")
(princ (ssg-text "gf-status-segment-analyse-header"))
(setq idx 0)
(foreach seg segmente
(setq idx (1+ idx))
(if (= (car seg) "Linie")
(princ (strcat "\n " (itoa idx) ". Linie L=" (rtos (caddr seg) 2 1)
" mm hz=" (rtos (cadr seg) 2 1) grad-zeichen))
(princ (strcat "\n " (itoa idx) ". Bogen " (itoa (nth 3 seg))
grad-zeichen " " (nth 4 seg)
" hz-Eingang=" (rtos (cadr seg) 2 1) grad-zeichen))
(princ (ssg-textf "gf-status-segment-linie"
(list idx (rtos (caddr seg) 2 1) (rtos (cadr seg) 2 1) grad-zeichen)))
(princ (ssg-textf "gf-status-segment-bogen"
(list idx (itoa (nth 3 seg)) grad-zeichen (nth 4 seg)
(rtos (cadr seg) 2 1) grad-zeichen)))
)
)
(princ (strcat "\n Seg " (itoa (1+ first-idx)) " (1. Linie): -" (rtos aus-dx 2 1) " mm (AUS-Element)"))
(princ "\n Jede Linie vor Bogen: -300 mm (Bogen-Separator)")
(princ (strcat "\n Seg " (itoa (1+ last-idx)) " (letzte Linie): -300 mm (EIN-Sep) -" (rtos ein-dx 2 1) " mm (EIN-Element)"))
(princ (strcat "\n Eintrittsrichtung: " (rtos entry-hz 2 1) grad-zeichen))
(princ (strcat "\n Austrittsrichtung: " (rtos exit-hz 2 1) grad-zeichen))
(princ (ssg-textf "gf-status-seg-erste-linie" (list (1+ first-idx) (rtos aus-dx 2 1))))
(princ (ssg-text "gf-status-linie-vor-bogen"))
(princ (ssg-textf "gf-status-seg-letzte-linie" (list (1+ last-idx) (rtos ein-dx 2 1))))
(princ (ssg-textf "gf-status-eintrittsrichtung" (list (rtos entry-hz 2 1) grad-zeichen)))
(princ (ssg-textf "gf-status-austrittsrichtung" (list (rtos exit-hz 2 1) grad-zeichen)))
;; Gefaellewinkel berechnen (1 Extra-Separator vor EIN-Element)
(princ "\n\n Berechne Gefaellewinkel aus Geometrie ...")
(princ (ssg-text "gf-status-berechne-winkel"))
(setq grade (gf-winkel-berechnen segmente deltaH 1))
;; Manuelle Anpassung
(setq antwort
(getstring (strcat "\nBerechneten Winkel "
(rtos grade 2 3) grad-zeichen
" verwenden? (j/n) [j]: ")))
(getstring (ssg-textf "gf-prompt-winkel-verwenden"
(list (rtos grade 2 3) grad-zeichen))))
(if (= (strcase antwort) "N")
(progn
(setq grade (getreal "\nGefaellewinkel (Grad): "))
(setq grade (getreal (ssg-text "gf-prompt-gefaellewinkel")))
(if (or (null grade) (<= grade 0)) (setq grade 3.0))
)
)
@@ -1166,7 +1160,7 @@
;; Garantiert: dz_AS(v) + L_stau*sin(v) + dz_ES(v) + dz_bogen = deltaH
(if (and *gf-L-ohne-as-es* (> *gf-L-ohne-as-es* 0.1))
(progn
(princ "\n Messe tatsaechliche AS/ES-Absenkung (iterativ) ...")
(princ (ssg-text "gf-status-messe-absenkung"))
(setq grade-prev -999.0 iter 0)
(while (and (< iter 4) (> (abs (- grade grade-prev)) 0.001))
(setq grade-prev grade)
@@ -1189,16 +1183,16 @@
(if (and (> dH-korr 0.0) (< (/ dH-korr *gf-L-ohne-as-es*) 1.0))
(setq grade (* (asin (/ dH-korr *gf-L-ohne-as-es*)) (/ 180.0 pi)))
(progn
(princ "\n WARNUNG: Korrektur ausserhalb Bereich, Winkel unveraendert")
(princ (ssg-text "gf-warnung-korrektur-bereich"))
(setq grade-prev grade)
)
)
(setq iter (1+ iter))
)
(princ (strcat "\n AS: " (rtos dz-as-ist 2 2) " mm"
" ES: " (rtos dz-es-ist 2 2) " mm"))
(princ (strcat "\n>>> Korrigierter Gefaellewinkel: " (rtos grade 2 3) grad-zeichen
" (nach " (itoa iter) " Iter.)"))
(princ (ssg-textf "gf-status-as-es-mm"
(list (rtos dz-as-ist 2 2) (rtos dz-es-ist 2 2))))
(princ (ssg-textf "gf-status-korrigierter-winkel"
(list (rtos grade 2 3) grad-zeichen (itoa iter))))
)
)
@@ -1209,18 +1203,18 @@
;; Zusammenfassung
(princ "\n\n=========================================")
(princ (strcat "\n>>> Segmente: " (itoa (length segmente))))
(princ (strcat "\n>>> " delta-sym "H: " (rtos deltaH 2 2) " mm"))
(princ (strcat "\n>>> " delta-sym "L: " (rtos delta-l-gf 2 1) " mm"))
(princ (strcat "\n>>> Gefaellewinkel: " (rtos grade 2 3) grad-zeichen))
(princ (strcat "\n>>> Eintrittswinkel: " (rtos entry-hz 2 1) grad-zeichen))
(princ (strcat "\n>>> Austrittswinkel: " (rtos exit-hz 2 1) grad-zeichen))
(princ (strcat "\n>>> AUS-Element: " as-block))
(princ (strcat "\n>>> EIN-Element: " es-block))
(princ (ssg-textf "gf-status-zus-segmente" (list (length segmente))))
(princ (ssg-textf "gf-status-zus-deltah" (list delta-sym (rtos deltaH 2 2))))
(princ (ssg-textf "gf-status-zus-deltal" (list delta-sym (rtos delta-l-gf 2 1))))
(princ (ssg-textf "gf-status-zus-winkel" (list (rtos grade 2 3) grad-zeichen)))
(princ (ssg-textf "gf-status-zus-eintrittswinkel" (list (rtos entry-hz 2 1) grad-zeichen)))
(princ (ssg-textf "gf-status-zus-austrittswinkel" (list (rtos exit-hz 2 1) grad-zeichen)))
(princ (ssg-textf "gf-status-zus-aus-element" (list as-block)))
(princ (ssg-textf "gf-status-zus-ein-element" (list es-block)))
(princ "\n=========================================")
;; Bestaetigung
(setq antwort (getstring "\nEinfuegen? (1=Ja / 2=Nein) [1]: "))
(setq antwort (getstring (ssg-text "gf-prompt-einfuegen")))
(if (not (= antwort "2"))
(progn
;; GF-Nummer und Entity-Grenze vor erster Einfuegung sichern.
@@ -1242,10 +1236,9 @@
(setq xu-entry (list (* (cos rad-h-as)(cos rad-v-as))
(* (sin rad-h-as)(cos rad-v-as))
(- (sin rad-v-as))))
(princ (strcat "\n\n>>> AUS-Element: " as-block
" Fahrtrichtung=" (rtos entry-hz 2 1) grad-zeichen
" KS_EIN-hz=" (rtos ein-hz-as 2 1) grad-zeichen
" Z=" (rtos (caddr startpunkt) 2 1)))
(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))))
;; Block-Ursprung (nicht KS_EIN!) in X/Y auf startpunkt setzen, damit die
;; Mittelachse der Foerderstrecke (KS_AUS-Richtung) exakt durch den
;; ausgewaehlten Startpunkt verlaeuft. KS_EIN sitzt seitlich versetzt
@@ -1261,7 +1254,7 @@
(setq aktuell-frame (gf-linienzug-einfuegen segmente grade aktuell-frame))
;; Separator vor EIN-Element
(princ "\n>>> Separator vor EIN-Element")
(princ (ssg-text "gf-status-separator-vor-ein"))
(setq sep-endpunkt
(gf-insert-hz-with-ks "Staustrecke_Separator_SP_300_mm"
(car aktuell-frame) exit-hz grade 300 0))
@@ -1277,12 +1270,12 @@
;; 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).
(princ (strcat "\n>>> EIN-Element: " es-block
" Ziel-Z=" (rtos (caddr endpunkt-ref) 2 1)))
(princ (ssg-textf "gf-status-ein-element-detail"
(list es-block (rtos (caddr endpunkt-ref) 2 1))))
(setq es-aus-frame
(insert-block-mixed-to-ks es-block sep-frame
(caddr endpunkt-ref) "KS_EIN" "KS_AUS"))
(princ (strcat "\n Z-Hoehe KS_AUS: " (rtos (caddr (car es-aus-frame)) 2 1) " mm"))
(princ (ssg-textf "gf-status-z-hoehe-ks-aus" (list (rtos (caddr (car es-aus-frame)) 2 1))))
;; --- GF_N-Block erstellen ---
@@ -1341,10 +1334,10 @@
es-seite)
(princ "\n\n=========================================")
(princ "\n>>> Fertig! <<<")
(princ (ssg-text "gf-status-fertig"))
(princ "\n=========================================")
)
(princ "\nAbgebrochen.")
(princ (ssg-text "gf-status-abgebrochen"))
)
)
@@ -1516,7 +1509,7 @@
;; Aufsteigende, eindeutige ID vergeben (wie beim Kreisel), falls verfuegbar.
(if (car (atoms-family 1 '("SSG-ID-GENERATE")))
(ssg-id-generate gf-insert))
(princ (strcat "\n>>> GF-Block erstellt: " gf-bname " (" typ-str ")"))
(princ (ssg-textf "gf-status-gf-block-erstellt" (list gf-bname typ-str)))
gf-insert
)
@@ -1563,35 +1556,32 @@
;; Mittelachse der Foerderstrecke (KS_AUS-Richtung) exakt durch den
;; ausgewaehlten Startpunkt verlaeuft (analog Modus 3). Die Z-Hoehe wird
;; weiterhin an KS_EIN gemessen, damit KS_EIN.Z = startpunkt.Z gilt.
(princ (strcat "\n\n1/4: " as-block
" Fahrtrichtung=" (rtos hz 2 1) grad-zeichen
" KS_EIN-hz=" (rtos ein-hz 2 1) grad-zeichen
" v=" (rtos winkel 2 1) grad-zeichen))
(princ (ssg-textf "gf-status-schritt1-aus"
(list as-block (rtos hz 2 1) grad-zeichen (rtos ein-hz 2 1) grad-zeichen
(rtos winkel 2 1) grad-zeichen)))
(setq startframe (make-frame-from-dir startpunkt xu-ein))
(setq aktuell-frame
(insert-block-mixed-to-ks as-block startframe (caddr startpunkt) nil "KS_EIN"))
(setq nach-aus-pt (car aktuell-frame))
;; 2/4: Staustrecke (skalierbar, hz+vert)
(princ (strcat "\n\n2/4: Staustrecke L=" (rtos L_stau 2 1)
" mm hz=" (rtos hz 2 1) grad-zeichen
" v=" (rtos winkel 2 1) grad-zeichen))
(princ (ssg-textf "gf-status-schritt2-staustrecke"
(list (rtos L_stau 2 1) (rtos hz 2 1) grad-zeichen (rtos winkel 2 1) grad-zeichen)))
(setq stau-endpunkt
(gf-insert-hz-incl-scaled
"Staustrecke_SP_1000_mm" (car aktuell-frame) L_stau hz winkel))
(setq aktuell-frame (make-frame-from-dir stau-endpunkt xu-incl))
;; 3/4: Separator 300mm
(princ (strcat "\n\n3/4: Separator 300mm"
" hz=" (rtos hz 2 1) grad-zeichen
" v=" (rtos winkel 2 1) grad-zeichen))
(princ (ssg-textf "gf-status-schritt3-separator"
(list (rtos hz 2 1) grad-zeichen (rtos winkel 2 1) grad-zeichen)))
(setq sep-endpunkt
(gf-insert-hz-with-ks
"Staustrecke_Separator_SP_300_mm" (car aktuell-frame) hz winkel 300 0))
(setq sep-frame (make-frame-from-dir sep-endpunkt xu-incl))
;; 4/4: EIN-Element (KS-zu-KS)
(princ (strcat "\n\n4/4: " es-block))
(princ (ssg-textf "gf-status-schritt4-ein" (list es-block)))
(setq endpunkt (car (insert-block-ks-to-ks es-block sep-frame)))
;; Abgeleitete Werte: echte Endhoehe aus tatsaechlicher Ketten-Platzierung
@@ -1615,7 +1605,7 @@
es-seite))
(princ "\n\n=========================================")
(princ "\n>>> Gefaellestrecke erfolgreich eingefuegt! <<<")
(princ (ssg-text "gf-status-erfolgreich-eingefuegt"))
(princ "\n=========================================")
;; Rueckgabe: (ename echtes-deltaH echtes-deltaL) - volle Fliesskomma-
;; Genauigkeit, unabhaengig von der auf ganze mm gerundeten HOEHE_VON/
@@ -1633,24 +1623,24 @@
deltaX deltaY startpunkt-fuer-einfuegen hz-winkel)
(princ "\n=========================================")
(princ "\n GEFAELLESTRECKE GENERATOR v2.0")
(princ "\n Richtung: immer AB (nach unten)")
(princ (ssg-text "gf-banner-titel"))
(princ (ssg-text "gf-banner-richtung"))
(princ "\n=========================================")
;; Bibliothek initialisieren
(if (not (gf-init-bibliothek))
(progn
(alert "Fehler beim Initialisieren der Bibliothek!\nBitte DXFM_DATA pruefen.")
(alert (ssg-text "gf-alert-init-fehler"))
(exit)
)
)
;; Eingabemodus
(princ "\n\nEingabemodus waehlen:")
(princ "\n 1 - Werte manuell eingeben (einfache Strecke)")
(princ "\n 2 - 3D-Linie auswaehlen (einfache Strecke)")
(princ "\n 3 - Linienzug (LINE + ARC) auswaehlen mit Gefaellebogen")
(setq antwort (getstring "\nIhre Wahl (1/2/3) [1]: "))
(princ (ssg-text "gf-eingabemodus-header"))
(princ (ssg-text "gf-eingabemodus-1"))
(princ (ssg-text "gf-eingabemodus-2"))
(princ (ssg-text "gf-eingabemodus-3"))
(setq antwort (getstring (ssg-text "prompt-wahl-1-2-3")))
(cond
;; Modus 3: Linienzug mit Bogen
@@ -1668,25 +1658,25 @@
;; Modus 1: Manuelle Eingabe
(if (= eingabe-modus "Manuell")
(progn
(princ "\n\n>>> MODUS 1: Manuelle Werteingabe <<<")
(princ (ssg-text "gf-modus1-header"))
(setq startpunkt-fuer-einfuegen
(getpoint "\nStartpunkt fuer AUS_Element waehlen: "))
(getpoint (ssg-text "gf-prompt-startpunkt-aus")))
(if (null startpunkt-fuer-einfuegen)
(setq startpunkt-fuer-einfuegen '(0 0 0)))
(setq deltaL (getreal (strcat "\n" delta-sym "L - Abstand (mm): ")))
(setq deltaL (getreal (ssg-textf "gf-prompt-deltal-abstand" (list delta-sym))))
(if (or (null deltaL) (<= deltaL 0))
(setq deltaL (ssg-cfg-or "gefaelle" "default_delta_l" 5000.0)))
)
;; Modus 2: 3D-Linie
(progn
(princ "\n\n>>> MODUS 2: 3D-Linie auswaehlen <<<")
(princ (ssg-text "gf-modus2-header"))
(command "BKS" "W")
(princ "\n BKS auf Weltkoordinaten gesetzt.")
(princ (ssg-text "gf-status-bks-welt"))
(setq line-points
(get-line-start-end-points
"\nBitte 3D-Linie fuer Richtung und Laenge auswaehlen:"))
(ssg-text "gf-prompt-3dlinie-richtung")))
(if (null line-points)
(progn (alert "Keine gueltige Linie ausgewaehlt!") (exit))
(progn (alert (ssg-text "gf-alert-keine-linie")) (exit))
)
(setq startpunkt (car line-points)
endpunkt (cadr line-points))
@@ -1697,61 +1687,60 @@
(setq deltaL (sqrt (+ (* deltaX deltaX) (* deltaY deltaY))))
;; hz-Winkel: Fahrtrichtung aus Linienpunkten (in Grad, 0=Ost)
(setq hz-winkel (* (angle '(0.0 0.0) (list deltaX deltaY)) (/ 180.0 pi)))
(princ (strcat "\n Fahrtrichtung: " (rtos hz-winkel 2 1) grad-zeichen
" (aus Linie)"))
(princ (strcat "\n " delta-sym "L = " (rtos deltaL 2 2) " mm"))
(princ (ssg-textf "gf-status-fahrtrichtung-linie" (list (rtos hz-winkel 2 1) grad-zeichen)))
(princ (ssg-textf "gf-status-deltal-mm" (list delta-sym (rtos deltaL 2 2))))
;; Startpunkt separat waehlen (unabhaengig von Linie)
(setq startpunkt-fuer-einfuegen
(getpoint "\nStartpunkt fuer AUS-Element waehlen: "))
(getpoint (ssg-text "gf-prompt-startpunkt-aus")))
(if (null startpunkt-fuer-einfuegen)
(progn (princ "\nKein Startpunkt!") (exit))
(progn (princ (ssg-text "gf-fehler-kein-startpunkt")) (exit))
)
)
)
(princ "\n\n=========================================")
(princ (strcat "\n " delta-sym "L = " (rtos deltaL 2 2) " mm"))
(princ (ssg-textf "gf-status-deltal-mm" (list delta-sym (rtos deltaL 2 2))))
(princ "\n=========================================")
;; Winkelabfrage (beide Modi: manuell)
(setq winkel (getreal "\n\nGefaellewinkel (Grad) [3]: "))
(setq winkel (getreal (ssg-text "gf-prompt-gefaellewinkel-def3")))
(if (or (null winkel) (<= winkel 0))
(setq winkel (ssg-cfg-or "gefaelle" "default_winkel" 3.0)))
(setq winkel (float winkel))
(setq rad (* winkel (/ pi 180.0)))
(princ (strcat "\n>>> Winkel: " (rtos winkel 2 1) grad-zeichen))
(princ (ssg-textf "gf-status-winkel" (list (rtos winkel 2 1) grad-zeichen)))
;; Fahrtrichtung waehlen (nur Modus 1; Modus 2 berechnet hz aus Linie)
(if (= eingabe-modus "Manuell")
(progn
(princ "\n\nFahrtrichtung waehlen:")
(princ "\n 1 - 0° (X-Achse +, Ost)")
(princ "\n 2 - 90° (Y-Achse +, Nord)")
(princ "\n 3 - 180° (X-Achse -, West)")
(princ "\n 4 - 270° (Y-Achse -, Sued)")
(setq antwort (getstring "\nIhre Wahl (1/2/3/4) [1]: "))
(princ (ssg-text "vfc-fahrtrichtung-header"))
(princ (ssg-textf "vfc-fahrtrichtung-0" (list grad-zeichen)))
(princ (ssg-textf "vfc-fahrtrichtung-90" (list grad-zeichen)))
(princ (ssg-textf "vfc-fahrtrichtung-180" (list grad-zeichen)))
(princ (ssg-textf "vfc-fahrtrichtung-270" (list grad-zeichen)))
(setq antwort (getstring (ssg-text "prompt-wahl-1-2-3-4")))
(cond
((= antwort "2") (setq hz-winkel 90.0))
((= antwort "3") (setq hz-winkel 180.0))
((= antwort "4") (setq hz-winkel 270.0))
(t (setq hz-winkel 0.0))
)
(princ (strcat "\n>>> Fahrtrichtung: " (rtos hz-winkel 2 1) grad-zeichen))
(princ (ssg-textf "gf-status-fahrtrichtung" (list (rtos hz-winkel 2 1) grad-zeichen)))
)
)
;; Seite AUS-Element waehlen
(princ "\n\nAUS-Element (AS_Element_90_*) - Seite waehlen:")
(princ "\n 1 - Links")
(princ "\n 2 - Rechts")
(setq antwort (getstring "\nIhre Wahl (1/2) [1]: "))
(princ (ssg-text "gf-seite-aus-header"))
(princ (ssg-text "gf-seite-links"))
(princ (ssg-text "gf-seite-rechts"))
(setq antwort (getstring (ssg-text "prompt-wahl-1-2")))
(setq as-seite (if (= antwort "2") "rechts" "links"))
;; Seite EIN-Element waehlen
(princ "\n\nEIN-Element (ES_Element_90_*) - Seite waehlen:")
(princ "\n 1 - Links")
(princ "\n 2 - Rechts")
(setq antwort (getstring "\nIhre Wahl (1/2) [1]: "))
(princ (ssg-text "gf-seite-ein-header"))
(princ (ssg-text "gf-seite-links"))
(princ (ssg-text "gf-seite-rechts"))
(setq antwort (getstring (ssg-text "prompt-wahl-1-2")))
(setq es-seite (if (= antwort "2") "rechts" "links"))
;; Laengenberechnung
@@ -1762,27 +1751,25 @@
;; Validierung
(if (<= L_stau 0.1)
(progn
(alert (strcat "Berechnete Staustreckenlaenge ungueltig: "
(rtos L_stau 2 2) " mm\n"
"Bitte groesseres deltaL oder kleineren Winkel waehlen."))
(alert (ssg-textf "gf-alert-staustrecke-ungueltig" (list (rtos L_stau 2 2))))
(exit)
)
)
;; Zusammenfassung
(princ "\n\n=========================================")
(princ (strcat "\n>>> Fahrtrichtung: " (rtos hz-winkel 2 1) grad-zeichen))
(princ (strcat "\n>>> Winkel: " (rtos winkel 2 1) grad-zeichen))
(princ (strcat "\n>>> AUS-Seite: " as-seite))
(princ (strcat "\n>>> EIN-Seite: " es-seite))
(princ (strcat "\n>>> L_stau: " (rtos L_stau 2 2) " mm"))
(princ (ssg-textf "gf-status-fahrtrichtung" (list (rtos hz-winkel 2 1) grad-zeichen)))
(princ (ssg-textf "gf-status-zus2-winkel" (list (rtos winkel 2 1) grad-zeichen)))
(princ (ssg-textf "gf-status-zus2-aus-seite" (list as-seite)))
(princ (ssg-textf "gf-status-zus2-ein-seite" (list es-seite)))
(princ (ssg-textf "gf-status-zus2-lstau" (list (rtos L_stau 2 2))))
(princ "\n=========================================")
;; Bestaetigung
(setq antwort (getstring "\nEinfuegen? (1=Ja / 2=Nein) [1]: "))
(setq antwort (getstring (ssg-text "gf-prompt-einfuegen")))
(if (not (= antwort "2"))
(gefaellestrecke-einfuegen L_stau (fix winkel) startpunkt-fuer-einfuegen as-seite es-seite hz-winkel deltaL)
(princ "\nAbgebrochen.")
(princ (ssg-text "gf-status-abgebrochen"))
)
)
)
+48 -54
View File
@@ -1068,9 +1068,9 @@
;; Aufsteigende, eindeutige ID vergeben (wie beim Kreisel), falls verfuegbar.
(if (car (atoms-family 1 '("SSG-ID-GENERATE")))
(ssg-id-generate vf-insert))
(princ (strcat "\n>>> Block '" vf-bname "' erstellt und eingefuegt."))
(princ (ssg-textf "vfc-block-erstellt-eingefuegt" (list vf-bname)))
)
(princ "\n>>> FEHLER: Keine Entities fuer Block gefunden!")
(princ (ssg-text "vfc-fehler-keine-entities"))
)
)
@@ -1116,13 +1116,13 @@
staustrecke-basis)
(princ "\n=========================================")
(princ "\n VARIOFOERDERER GENERATOR v26.0")
(princ (ssg-text "vfc-banner-titel"))
(princ "\n=========================================")
;; 1. Typ aus Registry waehlen
(if (null *vf-typ-registry*)
(progn
(alert "Keine Typen registriert!\nvf_standard.lsp und vf_etage.lsp pruefen.")
(alert (ssg-text "vfc-alert-keine-typen"))
(exit)
)
)
@@ -1130,19 +1130,19 @@
(if (and *vf-vorauswahl-typ* (assoc *vf-vorauswahl-typ* *vf-typ-registry*))
(progn
(setq typ-eintr (assoc *vf-vorauswahl-typ* *vf-typ-registry*))
(princ (strcat "\n>>> Typ vorgewaehlt: " *vf-vorauswahl-typ*))
(princ (ssg-textf "vfc-typ-vorgewaehlt" (list *vf-vorauswahl-typ*)))
(setq *vf-vorauswahl-typ* nil)
)
(progn
(setq *vf-vorauswahl-typ* nil)
(princ "\n\nAnlagen-Typ waehlen:")
(princ (ssg-text "vfc-anlagen-typ-header"))
(setq idx 1)
(foreach eintr *vf-typ-registry*
(princ (strcat "\n " (itoa idx) " - " (nth 3 eintr)))
(princ (ssg-textf "vfc-typ-option" (list idx (nth 3 eintr))))
(setq idx (1+ idx))
)
(setq wahl (getint (strcat "\nIhre Wahl (1-"
(itoa (length *vf-typ-registry*)) ") [1]: ")))
(setq wahl (getint (ssg-textf "vfc-prompt-wahl-1-n"
(list (length *vf-typ-registry*)))))
(if (or (null wahl) (< wahl 1) (> wahl (length *vf-typ-registry*)))
(setq wahl 1))
(setq typ-eintr (nth (1- wahl) *vf-typ-registry*))
@@ -1151,7 +1151,7 @@
(setq anlage-typ (nth 0 typ-eintr))
(setq berechne-fn (nth 1 typ-eintr))
(setq einfuege-fn (nth 2 typ-eintr))
(princ (strcat "\n>>> Typ: " anlage-typ))
(princ (ssg-textf "vfc-typ-gewaehlt" (list anlage-typ)))
;; Sonderfall "linienzug": eigener Befehlsablauf (interaktive Mehrsegment-
;; Kette mit gemischten GF/VF-Segmenten), passt nicht in das berechne-fn/
@@ -1166,7 +1166,7 @@
;; 2. VF-Nummer automatisch ermitteln
(setq vf-nummer (vf-next-number))
(princ (strcat "\n>>> Naechste VF-Nummer: VF" (itoa vf-nummer)))
(princ (ssg-textf "vfc-naechste-vf-nummer" (list (itoa vf-nummer))))
;; 3. Gemeinsame Eingabe (deltaL, deltaH, richtung, startpunkt) - richtung
;; steht bei beiden Eingabemodi (Werteingabe UND 3D-Linie) bereits fest.
@@ -1179,12 +1179,12 @@
eingabe-modus (nth 5 eingabe))
;; 4. Seite-Auswahl (vor Berechnung, weil Etage-Typ sie fuer Geometrie braucht)
(princ "\n\nSeite waehlen:")
(princ "\n 1 - Rechts")
(princ "\n 2 - Links")
(setq antwort (getstring "\nIhre Wahl (1/2) [1]: "))
(princ (ssg-text "vfc-seite-header"))
(princ (ssg-text "vfc-seite-rechts"))
(princ (ssg-text "vfc-seite-links"))
(setq antwort (getstring (ssg-text "prompt-wahl-1-2")))
(if (= antwort "2") (setq seite "links") (setq seite "rechts"))
(princ (strcat "\n>>> Seite: " seite))
(princ (ssg-textf "vfc-seite-gewaehlt" (list seite)))
;; 5. Typ-spezifische Berechnung (init + Winkelsuche)
(setq ergebnis (apply berechne-fn (list deltaL deltaH richtung seite)))
@@ -1203,7 +1203,7 @@
(setq ergebnis-liste
(append ergebnis-liste
(list (list 0 (car horizontal-info) (cadr horizontal-info) T))))
(princ "\n\n>>> Hinweis: Ein horizontale Variofoerderer ( 0°) ist bei diesem △L/△H zusaetzlich moeglich!")
(princ (ssg-textf "vfc-hinweis-horizontal-moeglich" (list (chr 176) (chr 916))))
)
(setq horizontal-info nil)
)
@@ -1223,9 +1223,8 @@
ergebnis-liste)))
(if (null gueltige-winkel)
(progn
(alert (strcat "Kein passender Winkel gefunden!\n"
"△L=" (rtos deltaL 2 0) " mm, △H="
(rtos deltaH 2 0) " mm, Richtung=" richtung))
(alert (ssg-textf "vfc-alert-kein-winkel"
(list (chr 916) (rtos deltaL 2 0) (rtos deltaH 2 0) richtung)))
(exit)
)
)
@@ -1239,29 +1238,27 @@
(setq eintrag (assoc best-winkel ergebnis-liste))
(setq L_GF (nth 1 eintrag) L_VF (nth 2 eintrag))
(if (= best-winkel 0)
(princ "\n\n>>> Einzige gueltige Variante: Horizontale Variofoerderer")
(princ (strcat "\n\n>>> Einziger gueltiger Winkel: "
(itoa best-winkel) (chr 176)))
(princ (ssg-text "vfc-einzige-variante-horizontal"))
(princ (ssg-textf "vfc-einziger-winkel" (list (itoa best-winkel) (chr 176))))
)
)
(progn
(princ "\n\nMehrere gueltige Winkel verfuegbar. Bitte waehlen:")
(princ (ssg-text "vfc-mehrere-winkel-header"))
(setq idx 1)
(foreach w gueltige-winkel
(setq eintrag (assoc w ergebnis-liste))
(if (= w 0)
(princ (strcat "\n " (itoa idx) " - Horizontale Variofoerderer (0"
(chr 176) ")"
" (L_GF=" (rtos (nth 1 eintrag) 2 1)
" mm, L_VF=" (rtos (nth 2 eintrag) 2 1) " mm)"))
(princ (strcat "\n " (itoa idx) " - " (itoa w) (chr 176)
" (L_GF=" (rtos (nth 1 eintrag) 2 1)
" mm, L_VF=" (rtos (nth 2 eintrag) 2 1) " mm)"))
(princ (ssg-textf "vfc-winkel-option-horizontal"
(list idx (chr 176)
(rtos (nth 1 eintrag) 2 1) (rtos (nth 2 eintrag) 2 1))))
(princ (ssg-textf "vfc-winkel-option"
(list idx (itoa w) (chr 176)
(rtos (nth 1 eintrag) 2 1) (rtos (nth 2 eintrag) 2 1))))
)
(setq idx (1+ idx))
)
(setq wahl (getint (strcat "Winkel waehlen (1-"
(itoa (length gueltige-winkel)) ") [1]: ")))
(setq wahl (getint (ssg-textf "vfc-prompt-winkel-waehlen"
(list (length gueltige-winkel)))))
(if (or (null wahl) (< wahl 1) (> wahl (length gueltige-winkel)))
(setq wahl 1))
(setq best-winkel (nth (1- wahl) gueltige-winkel))
@@ -1271,22 +1268,20 @@
)
(princ "\n\n=========================================")
(if (= best-winkel 0)
(princ (strcat "\n>>> Horizontale Variofoerderer"
" L_GF: " (rtos L_GF 2 2) " mm"
" L_VF: " (rtos L_VF 2 2) " mm"))
(princ (strcat "\n>>> Winkel: " (itoa best-winkel) (chr 176)
" L_GF: " (rtos L_GF 2 2) " mm"
" L_VF: " (rtos L_VF 2 2) " mm"))
(princ (ssg-textf "vfc-zus-horizontal"
(list (rtos L_GF 2 2) (rtos L_VF 2 2))))
(princ (ssg-textf "vfc-zus-winkel"
(list (itoa best-winkel) (chr 176) (rtos L_GF 2 2) (rtos L_VF 2 2))))
)
(princ "\n=========================================")
;; 9. L_GF Verteilung
(princ "\n\nVerteilung der Gefaellestrecken (vorne/hinten):")
(princ "\n 1 - Gleichmaessig (L_GF1 = L_GF2 = L_GF/2)")
(princ "\n 2 - Vorne Minimum, hinten Rest")
(princ "\n 3 - Hinten Minimum, vorne Rest")
(princ "\n 4 - Eigene Werte eingeben")
(setq verteilung-modus (getstring "\nIhre Wahl (1/2/3/4) [1]: "))
(princ (ssg-text "vfc-gf-verteilung-header"))
(princ (ssg-text "vfc-gf-verteilung-1"))
(princ (ssg-text "vfc-gf-verteilung-2"))
(princ (ssg-text "vfc-gf-verteilung-3"))
(princ (ssg-text "vfc-gf-verteilung-4"))
(setq verteilung-modus (getstring (ssg-text "prompt-wahl-1-2-3-4")))
(if (= verteilung-modus "") (setq verteilung-modus "1"))
(cond
((= verteilung-modus "1")
@@ -1298,23 +1293,22 @@
(setq L_GF2 (float staustrecke-basis))
(setq L_GF1 (max 0.0 (- L_GF (float staustrecke-basis)))))
((= verteilung-modus "4")
(setq L_GF1 (getreal (strcat "\nL_GF1 vorne (mm) ["
(rtos (/ L_GF 2.0) 2 2) "]: ")))
(setq L_GF1 (getreal (ssg-textf "vfc-prompt-lgf1-vorne"
(list (rtos (/ L_GF 2.0) 2 2)))))
(if (null L_GF1) (setq L_GF1 (/ L_GF 2.0)))
(setq L_GF2 (max 0.0 (- L_GF L_GF1)))
(princ (strcat "\n L_GF2 hinten: " (rtos L_GF2 2 2) " mm")))
(princ (ssg-textf "vfc-lgf2-hinten" (list (rtos L_GF2 2 2)))))
(t (setq L_GF1 (/ L_GF 2.0) L_GF2 (/ L_GF 2.0)))
)
(princ (strcat "\n>>> L_GF1=" (rtos L_GF1 2 2)
" mm L_GF2=" (rtos L_GF2 2 2) " mm"))
(princ (ssg-textf "vfc-zus-lgf" (list (rtos L_GF1 2 2) (rtos L_GF2 2 2))))
;; Scanner-Anzahl wird nicht mehr abgefragt (Attribut ANZAHL_SCANNER bleibt 0).
(setq n-scanner 0)
;; 11. Bestaetigung
(princ "\n\nMoechten Sie die Foerderanlage einfuegen?")
(princ "\n 1 - Ja, Module einfuegen\n 2 - Nein, abbrechen")
(setq antwort (getstring "\nIhre Wahl (1/2): "))
(princ (ssg-text "vfc-einfuegen-frage"))
(princ (ssg-text "vfc-einfuegen-optionen"))
(setq antwort (getstring (ssg-text "vfc-prompt-wahl-1-2-ohne-default")))
(if (= antwort "1")
(progn
@@ -1339,7 +1333,7 @@
(princ "\n=========================================")
)
(princ "\nVorgang abgebrochen.")
(princ (ssg-text "vfc-vorgang-abgebrochen"))
)
nil
)
+123
View File
@@ -245,6 +245,11 @@
"vfc-foerderrichtung-ab": "\n Foerderrichtung: AB",
"vfc-foerderrichtung-auf": "Auf",
"vfc-foerderrichtung-menu": "\nFoerderrichtung:\n 1 - AUF\n 2 - AB",
"vfc-gf-verteilung-header": "\n\nVerteilung der Gefaellestrecken (vorne/hinten):",
"vfc-gf-verteilung-1": "\n 1 - Gleichmaessig (L_GF1 = L_GF2 = L_GF/2)",
"vfc-gf-verteilung-2": "\n 2 - Vorne Minimum, hinten Rest",
"vfc-gf-verteilung-3": "\n 3 - Hinten Minimum, vorne Rest",
"vfc-gf-verteilung-4": "\n 4 - Eigene Werte eingeben",
"vfc-kein-objekt-gewaehlt": "\n Kein Objekt gewaehlt.",
"vfc-label-von-bis": ": von %1mm bis %2mm, ",
"vfc-linie-polylinie-waehlen": "\n >> 3D-Linie oder Polylinie waehlen: ",
@@ -258,6 +263,36 @@
"vfc-prompt-wahl-1-2-ohne-default": "\nIhre Wahl (1/2): ",
"vfc-status-ok": " OK",
"vfc-warnung-ks-nicht-gefunden": "\n WARNUNG: KS_EIN/KS_AUS nicht gefunden!",
"vfc-block-erstellt-eingefuegt": "\n>>> Block '%1' erstellt und eingefuegt.",
"vfc-fehler-keine-entities": "\n>>> FEHLER: Keine Entities fuer Block gefunden!",
"vfc-banner-titel": "\n VARIOFOERDERER GENERATOR v26.0",
"vfc-alert-keine-typen": "Keine Typen registriert!\nvf_standard.lsp und vf_etage.lsp pruefen.",
"vfc-typ-vorgewaehlt": "\n>>> Typ vorgewaehlt: %1",
"vfc-anlagen-typ-header": "\n\nAnlagen-Typ waehlen:",
"vfc-typ-option": "\n %1 - %2",
"vfc-prompt-wahl-1-n": "\nIhre Wahl (1-%1) [1]: ",
"vfc-typ-gewaehlt": "\n>>> Typ: %1",
"vfc-naechste-vf-nummer": "\n>>> Naechste VF-Nummer: VF%1",
"vfc-seite-header": "\n\nSeite waehlen:",
"vfc-seite-rechts": "\n 1 - Rechts",
"vfc-seite-links": "\n 2 - Links",
"vfc-seite-gewaehlt": "\n>>> Seite: %1",
"vfc-hinweis-horizontal-moeglich": "\n\n>>> Hinweis: Ein horizontale Variofoerderer ( 0%1) ist bei diesem %2L/%2H zusaetzlich moeglich!",
"vfc-alert-kein-winkel": "Kein passender Winkel gefunden!\n%1L=%2 mm, %1H=%3 mm, Richtung=%4",
"vfc-einzige-variante-horizontal": "\n\n>>> Einzige gueltige Variante: Horizontale Variofoerderer",
"vfc-einziger-winkel": "\n\n>>> Einziger gueltiger Winkel: %1%2",
"vfc-mehrere-winkel-header": "\n\nMehrere gueltige Winkel verfuegbar. Bitte waehlen:",
"vfc-winkel-option-horizontal": "\n %1 - Horizontale Variofoerderer (0%2) (L_GF=%3 mm, L_VF=%4 mm)",
"vfc-winkel-option": "\n %1 - %2%3 (L_GF=%4 mm, L_VF=%5 mm)",
"vfc-prompt-winkel-waehlen": "Winkel waehlen (1-%1) [1]: ",
"vfc-zus-horizontal": "\n>>> Horizontale Variofoerderer L_GF: %1 mm L_VF: %2 mm",
"vfc-zus-winkel": "\n>>> Winkel: %1%2 L_GF: %3 mm L_VF: %4 mm",
"vfc-prompt-lgf1-vorne": "\nL_GF1 vorne (mm) [%1]: ",
"vfc-lgf2-hinten": "\n L_GF2 hinten: %1 mm",
"vfc-zus-lgf": "\n>>> L_GF1=%1 mm L_GF2=%2 mm",
"vfc-einfuegen-frage": "\n\nMoechten Sie die Foerderanlage einfuegen?",
"vfc-einfuegen-optionen": "\n 1 - Ja, Module einfuegen\n 2 - Nein, abbrechen",
"vfc-vorgang-abgebrochen": "\nVorgang abgebrochen.",
"vfe-alert-bib-nicht-init": "Etage-Bibliothek nicht initialisiert!",
"vfe-berechnung-header": "\n ETAGE-BERECHNUNG FUER ALLE WINKEL",
"vfe-bib-bereits-init": "\n Etage-Bibliothek bereits initialisiert.",
@@ -401,6 +436,94 @@
"gf-seite-links": "\n 1 - Links",
"gf-seite-rechts": "\n 2 - Rechts",
"prompt-wahl-1-2": "\nIhre Wahl (1/2) [1]: ",
"prompt-wahl-1-2-3": "\nIhre Wahl (1/2/3) [1]: ",
"gf-lade-block": "\n Lade Block: %1 ...",
"gf-status-ok": " OK",
"gf-warnung-kette-unterbrochen": "\n WARNUNG: Kette unterbrochen!",
"gf-status-nennlaenge": "\n Gesamte Nennlaenge (inkl. Bogen-dx): %1 mm",
"gf-status-feste-hoehenanteile": "\n Feste Hoehenanteile (AS/ES-dz + Bogen-dz): %1 mm",
"gf-status-dz-detail": "\n aus-dz=%1 ein-dz=%2 Bogen-dz=%3",
"gf-status-resthoehe": "\n Effektive Resthoehe fuer Grade: %1 mm",
"gf-warnung-keine-geraden": "\n WARNUNG: keine geraden Strecken -> Fallback 3 Grad",
"gf-warnung-feste-anteile": "\n WARNUNG: feste Anteile > deltaH -> Fallback 1 Grad",
"gf-status-naeherungswinkel": "\n>>> Naeherungswinkel: %1%2",
"gf-status-linie-staustrecke": "\n\n%1/%2: Staustrecke L=%3 mm hz=%4%5 v=%6%7",
"gf-status-separator-vor-bogen": "\n\n%1S/%2: Separator 300mm (vor Bogen) hz=%3%4 v=%5%6",
"gf-status-bogen-einfuegen": "\n\n%1/%2: %3 hz=%4%5",
"gf-status-linienzug-eingefuegt": "\n>>> Linienzug-Gefaellestrecke eingefuegt! <<<",
"gf-modus3-header": "\n\n>>> MODUS 3: Linienzug auswaehlen <<<",
"gf-modus3-hinweis1": "\nBitte alle Linien (LINE) und Boegen (ARC) des Pfades auswaehlen,",
"gf-modus3-hinweis2": "\ndann ENTER druecken:",
"gf-fehler-keine-objekte": "\nKeine Objekte ausgewaehlt!",
"gf-status-objekte-ausgewaehlt": "\n %1 Objekte ausgewaehlt.",
"gf-prompt-startpunkt-kette": "\nStartpunkt (3D) waehlen - KS_EIN AUS-Element / Kettenanfang: ",
"gf-fehler-kein-startpunkt": "\nKein Startpunkt!",
"gf-prompt-endpunkt-kette": "\nEndpunkt (3D) waehlen - KS_AUS EIN-Element / Kettenende: ",
"gf-fehler-kein-endpunkt": "\nKein Endpunkt!",
"gf-status-deltah-3dpunkte": "\n %1H aus 3D-Punkten: %2 mm",
"gf-status-sortiere-segmente": "\n Sortiere Segmente ...",
"gf-alert-keine-kette": "Keine verbundene Kette gefunden!",
"gf-status-segmente-gefunden": " %1 Segmente gefunden.",
"gf-status-segment-analyse-header": "\n\n--- Segment-Analyse (Laengen nach Kuerzung) ---",
"gf-status-segment-linie": "\n %1. Linie L=%2 mm hz=%3%4",
"gf-status-segment-bogen": "\n %1. Bogen %2%3 %4 hz-Eingang=%5%6",
"gf-status-seg-erste-linie": "\n Seg %1 (1. Linie): -%2 mm (AUS-Element)",
"gf-status-linie-vor-bogen": "\n Jede Linie vor Bogen: -300 mm (Bogen-Separator)",
"gf-status-seg-letzte-linie": "\n Seg %1 (letzte Linie): -300 mm (EIN-Sep) -%2 mm (EIN-Element)",
"gf-status-eintrittsrichtung": "\n Eintrittsrichtung: %1%2",
"gf-status-austrittsrichtung": "\n Austrittsrichtung: %1%2",
"gf-status-berechne-winkel": "\n\n Berechne Gefaellewinkel aus Geometrie ...",
"gf-prompt-winkel-verwenden": "\nBerechneten Winkel %1%2 verwenden? (j/n) [j]: ",
"gf-prompt-gefaellewinkel": "\nGefaellewinkel (Grad): ",
"gf-status-messe-absenkung": "\n Messe tatsaechliche AS/ES-Absenkung (iterativ) ...",
"gf-warnung-korrektur-bereich": "\n WARNUNG: Korrektur ausserhalb Bereich, Winkel unveraendert",
"gf-status-as-es-mm": "\n AS: %1 mm ES: %2 mm",
"gf-status-korrigierter-winkel": "\n>>> Korrigierter Gefaellewinkel: %1%2 (nach %3 Iter.)",
"gf-status-zus-segmente": "\n>>> Segmente: %1",
"gf-status-zus-deltah": "\n>>> %1H: %2 mm",
"gf-status-zus-deltal": "\n>>> %1L: %2 mm",
"gf-status-zus-winkel": "\n>>> Gefaellewinkel: %1%2",
"gf-status-zus-eintrittswinkel": "\n>>> Eintrittswinkel: %1%2",
"gf-status-zus-austrittswinkel": "\n>>> Austrittswinkel: %1%2",
"gf-status-zus-aus-element": "\n>>> AUS-Element: %1",
"gf-status-zus-ein-element": "\n>>> EIN-Element: %1",
"gf-prompt-einfuegen": "\nEinfuegen? (1=Ja / 2=Nein) [1]: ",
"gf-status-aus-element-detail": "\n\n>>> AUS-Element: %1 Fahrtrichtung=%2%3 KS_EIN-hz=%4%5 Z=%6",
"gf-status-separator-vor-ein": "\n>>> Separator vor EIN-Element",
"gf-status-ein-element-detail": "\n>>> EIN-Element: %1 Ziel-Z=%2",
"gf-status-z-hoehe-ks-aus": "\n Z-Hoehe KS_AUS: %1 mm",
"gf-status-fertig": "\n>>> Fertig! <<<",
"gf-status-abgebrochen": "\nAbgebrochen.",
"gf-status-gf-block-erstellt": "\n>>> GF-Block erstellt: %1 (%2)",
"gf-status-schritt1-aus": "\n\n1/4: %1 Fahrtrichtung=%2%3 KS_EIN-hz=%4%5 v=%6%7",
"gf-status-schritt2-staustrecke": "\n\n2/4: Staustrecke L=%1 mm hz=%2%3 v=%4%5",
"gf-status-schritt3-separator": "\n\n3/4: Separator 300mm hz=%1%2 v=%3%4",
"gf-status-schritt4-ein": "\n\n4/4: %1",
"gf-status-erfolgreich-eingefuegt": "\n>>> Gefaellestrecke erfolgreich eingefuegt! <<<",
"gf-banner-titel": "\n GEFAELLESTRECKE GENERATOR v2.0",
"gf-banner-richtung": "\n Richtung: immer AB (nach unten)",
"gf-alert-init-fehler": "Fehler beim Initialisieren der Bibliothek!\nBitte DXFM_DATA pruefen.",
"gf-eingabemodus-header": "\n\nEingabemodus waehlen:",
"gf-eingabemodus-1": "\n 1 - Werte manuell eingeben (einfache Strecke)",
"gf-eingabemodus-2": "\n 2 - 3D-Linie auswaehlen (einfache Strecke)",
"gf-eingabemodus-3": "\n 3 - Linienzug (LINE + ARC) auswaehlen mit Gefaellebogen",
"gf-modus1-header": "\n\n>>> MODUS 1: Manuelle Werteingabe <<<",
"gf-prompt-startpunkt-aus": "\nStartpunkt fuer AUS-Element waehlen: ",
"gf-prompt-deltal-abstand": "\n%1L - Abstand (mm): ",
"gf-modus2-header": "\n\n>>> MODUS 2: 3D-Linie auswaehlen <<<",
"gf-status-bks-welt": "\n BKS auf Weltkoordinaten gesetzt.",
"gf-prompt-3dlinie-richtung": "\nBitte 3D-Linie fuer Richtung und Laenge auswaehlen:",
"gf-alert-keine-linie": "Keine gueltige Linie ausgewaehlt!",
"gf-status-fahrtrichtung-linie": "\n Fahrtrichtung: %1%2 (aus Linie)",
"gf-status-deltal-mm": "\n %1L = %2 mm",
"gf-prompt-gefaellewinkel-def3": "\n\nGefaellewinkel (Grad) [3]: ",
"gf-status-winkel": "\n>>> Winkel: %1%2",
"gf-status-fahrtrichtung": "\n>>> Fahrtrichtung: %1%2",
"gf-alert-staustrecke-ungueltig": "Berechnete Staustreckenlaenge ungueltig: %1 mm\nBitte groesseres deltaL oder kleineren Winkel waehlen.",
"gf-status-zus2-winkel": "\n>>> Winkel: %1%2",
"gf-status-zus2-aus-seite": "\n>>> AUS-Seite: %1",
"gf-status-zus2-ein-seite": "\n>>> EIN-Seite: %1",
"gf-status-zus2-lstau": "\n>>> L_stau: %1 mm",
"ques-yn-default-yes": " Y/N <Y>: ",
"ques-yn-default-no": " Y/N <N>: "
}
+123
View File
@@ -245,6 +245,11 @@
"vfc-foerderrichtung-ab": "\n Conveying direction: DOWN",
"vfc-foerderrichtung-auf": "Up",
"vfc-foerderrichtung-menu": "\nConveying direction:\n 1 - UP\n 2 - DOWN",
"vfc-gf-verteilung-header": "\n\nDistribution of slope sections (front/rear):",
"vfc-gf-verteilung-1": "\n 1 - Even (L_GF1 = L_GF2 = L_GF/2)",
"vfc-gf-verteilung-2": "\n 2 - Front minimum, rear remainder",
"vfc-gf-verteilung-3": "\n 3 - Rear minimum, front remainder",
"vfc-gf-verteilung-4": "\n 4 - Enter custom values",
"vfc-kein-objekt-gewaehlt": "\n No object selected.",
"vfc-label-von-bis": ": from %1mm to %2mm, ",
"vfc-linie-polylinie-waehlen": "\n >> Select 3D line or polyline: ",
@@ -258,6 +263,36 @@
"vfc-prompt-wahl-1-2-ohne-default": "\nYour choice (1/2): ",
"vfc-status-ok": " OK",
"vfc-warnung-ks-nicht-gefunden": "\n WARNING: KS_EIN/KS_AUS not found!",
"vfc-block-erstellt-eingefuegt": "\n>>> Block '%1' created and inserted.",
"vfc-fehler-keine-entities": "\n>>> ERROR: No entities found for block!",
"vfc-banner-titel": "\n VARIOFOERDERER GENERATOR v26.0",
"vfc-alert-keine-typen": "No types registered!\nCheck vf_standard.lsp and vf_etage.lsp.",
"vfc-typ-vorgewaehlt": "\n>>> Type preselected: %1",
"vfc-anlagen-typ-header": "\n\nSelect system type:",
"vfc-typ-option": "\n %1 - %2",
"vfc-prompt-wahl-1-n": "\nYour choice (1-%1) [1]: ",
"vfc-typ-gewaehlt": "\n>>> Type: %1",
"vfc-naechste-vf-nummer": "\n>>> Next VF number: VF%1",
"vfc-seite-header": "\n\nSelect side:",
"vfc-seite-rechts": "\n 1 - Right",
"vfc-seite-links": "\n 2 - Left",
"vfc-seite-gewaehlt": "\n>>> Side: %1",
"vfc-hinweis-horizontal-moeglich": "\n\n>>> Note: a horizontal VarioFoerderer ( 0%1) is additionally possible for this %2L/%2H!",
"vfc-alert-kein-winkel": "No suitable angle found!\n%1L=%2 mm, %1H=%3 mm, direction=%4",
"vfc-einzige-variante-horizontal": "\n\n>>> Only valid variant: horizontal VarioFoerderer",
"vfc-einziger-winkel": "\n\n>>> Only valid angle: %1%2",
"vfc-mehrere-winkel-header": "\n\nSeveral valid angles available. Please choose:",
"vfc-winkel-option-horizontal": "\n %1 - Horizontal VarioFoerderer (0%2) (L_GF=%3 mm, L_VF=%4 mm)",
"vfc-winkel-option": "\n %1 - %2%3 (L_GF=%4 mm, L_VF=%5 mm)",
"vfc-prompt-winkel-waehlen": "Select angle (1-%1) [1]: ",
"vfc-zus-horizontal": "\n>>> Horizontal VarioFoerderer L_GF: %1 mm L_VF: %2 mm",
"vfc-zus-winkel": "\n>>> Angle: %1%2 L_GF: %3 mm L_VF: %4 mm",
"vfc-prompt-lgf1-vorne": "\nL_GF1 front (mm) [%1]: ",
"vfc-lgf2-hinten": "\n L_GF2 rear: %1 mm",
"vfc-zus-lgf": "\n>>> L_GF1=%1 mm L_GF2=%2 mm",
"vfc-einfuegen-frage": "\n\nDo you want to insert the conveyor system?",
"vfc-einfuegen-optionen": "\n 1 - Yes, insert modules\n 2 - No, cancel",
"vfc-vorgang-abgebrochen": "\nProcess cancelled.",
"vfe-alert-bib-nicht-init": "Etage library not initialised!",
"vfe-berechnung-header": "\n ETAGE CALCULATION FOR ALL ANGLES",
"vfe-bib-bereits-init": "\n Etage library already initialised.",
@@ -401,6 +436,94 @@
"gf-seite-links": "\n 1 - Left",
"gf-seite-rechts": "\n 2 - Right",
"prompt-wahl-1-2": "\nYour choice (1/2) [1]: ",
"prompt-wahl-1-2-3": "\nYour choice (1/2/3) [1]: ",
"gf-lade-block": "\n Loading block: %1 ...",
"gf-status-ok": " OK",
"gf-warnung-kette-unterbrochen": "\n WARNING: chain interrupted!",
"gf-status-nennlaenge": "\n Total nominal length (incl. arc dx): %1 mm",
"gf-status-feste-hoehenanteile": "\n Fixed height components (AS/ES dz + arc dz): %1 mm",
"gf-status-dz-detail": "\n aus-dz=%1 ein-dz=%2 arc-dz=%3",
"gf-status-resthoehe": "\n Effective remaining height for straights: %1 mm",
"gf-warnung-keine-geraden": "\n WARNING: no straight sections -> fallback 3 deg",
"gf-warnung-feste-anteile": "\n WARNING: fixed components > deltaH -> fallback 1 deg",
"gf-status-naeherungswinkel": "\n>>> Approximate angle: %1%2",
"gf-status-linie-staustrecke": "\n\n%1/%2: Buffer section L=%3 mm hz=%4%5 v=%6%7",
"gf-status-separator-vor-bogen": "\n\n%1S/%2: Separator 300mm (before arc) hz=%3%4 v=%5%6",
"gf-status-bogen-einfuegen": "\n\n%1/%2: %3 hz=%4%5",
"gf-status-linienzug-eingefuegt": "\n>>> Polyline slope section inserted! <<<",
"gf-modus3-header": "\n\n>>> MODE 3: Select polyline <<<",
"gf-modus3-hinweis1": "\nPlease select all lines (LINE) and arcs (ARC) of the path,",
"gf-modus3-hinweis2": "\nthen press ENTER:",
"gf-fehler-keine-objekte": "\nNo objects selected!",
"gf-status-objekte-ausgewaehlt": "\n %1 objects selected.",
"gf-prompt-startpunkt-kette": "\nSelect start point (3D) - KS_EIN output element / chain start: ",
"gf-fehler-kein-startpunkt": "\nNo start point!",
"gf-prompt-endpunkt-kette": "\nSelect end point (3D) - KS_AUS input element / chain end: ",
"gf-fehler-kein-endpunkt": "\nNo end point!",
"gf-status-deltah-3dpunkte": "\n %1H from 3D points: %2 mm",
"gf-status-sortiere-segmente": "\n Sorting segments ...",
"gf-alert-keine-kette": "No connected chain found!",
"gf-status-segmente-gefunden": " %1 segments found.",
"gf-status-segment-analyse-header": "\n\n--- Segment analysis (lengths after trimming) ---",
"gf-status-segment-linie": "\n %1. Line L=%2 mm hz=%3%4",
"gf-status-segment-bogen": "\n %1. Arc %2%3 %4 hz-input=%5%6",
"gf-status-seg-erste-linie": "\n Seg %1 (1st line): -%2 mm (output element)",
"gf-status-linie-vor-bogen": "\n Each line before arc: -300 mm (arc separator)",
"gf-status-seg-letzte-linie": "\n Seg %1 (last line): -300 mm (input sep) -%2 mm (input element)",
"gf-status-eintrittsrichtung": "\n Entry direction: %1%2",
"gf-status-austrittsrichtung": "\n Exit direction: %1%2",
"gf-status-berechne-winkel": "\n\n Calculating slope angle from geometry ...",
"gf-prompt-winkel-verwenden": "\nUse calculated angle %1%2? (y/n) [y]: ",
"gf-prompt-gefaellewinkel": "\nSlope angle (degrees): ",
"gf-status-messe-absenkung": "\n Measuring actual AS/ES drop (iterative) ...",
"gf-warnung-korrektur-bereich": "\n WARNING: correction out of range, angle unchanged",
"gf-status-as-es-mm": "\n AS: %1 mm ES: %2 mm",
"gf-status-korrigierter-winkel": "\n>>> Corrected slope angle: %1%2 (after %3 iter.)",
"gf-status-zus-segmente": "\n>>> Segments: %1",
"gf-status-zus-deltah": "\n>>> %1H: %2 mm",
"gf-status-zus-deltal": "\n>>> %1L: %2 mm",
"gf-status-zus-winkel": "\n>>> Slope angle: %1%2",
"gf-status-zus-eintrittswinkel": "\n>>> Entry angle: %1%2",
"gf-status-zus-austrittswinkel": "\n>>> Exit angle: %1%2",
"gf-status-zus-aus-element": "\n>>> Output element: %1",
"gf-status-zus-ein-element": "\n>>> Input element: %1",
"gf-prompt-einfuegen": "\nInsert? (1=Yes / 2=No) [1]: ",
"gf-status-aus-element-detail": "\n\n>>> Output element: %1 travel dir=%2%3 KS_EIN-hz=%4%5 Z=%6",
"gf-status-separator-vor-ein": "\n>>> Separator before input element",
"gf-status-ein-element-detail": "\n>>> Input element: %1 target Z=%2",
"gf-status-z-hoehe-ks-aus": "\n Z height KS_AUS: %1 mm",
"gf-status-fertig": "\n>>> Done! <<<",
"gf-status-abgebrochen": "\nCancelled.",
"gf-status-gf-block-erstellt": "\n>>> GF block created: %1 (%2)",
"gf-status-schritt1-aus": "\n\n1/4: %1 travel dir=%2%3 KS_EIN-hz=%4%5 v=%6%7",
"gf-status-schritt2-staustrecke": "\n\n2/4: Buffer section L=%1 mm hz=%2%3 v=%4%5",
"gf-status-schritt3-separator": "\n\n3/4: Separator 300mm hz=%1%2 v=%3%4",
"gf-status-schritt4-ein": "\n\n4/4: %1",
"gf-status-erfolgreich-eingefuegt": "\n>>> Slope section inserted successfully! <<<",
"gf-banner-titel": "\n SLOPE SECTION GENERATOR v2.0",
"gf-banner-richtung": "\n Direction: always DOWN",
"gf-alert-init-fehler": "Error initialising the library!\nPlease check DXFM_DATA.",
"gf-eingabemodus-header": "\n\nSelect input mode:",
"gf-eingabemodus-1": "\n 1 - Enter values manually (simple section)",
"gf-eingabemodus-2": "\n 2 - Select 3D line (simple section)",
"gf-eingabemodus-3": "\n 3 - Select polyline (LINE + ARC) with slope arc",
"gf-modus1-header": "\n\n>>> MODE 1: Manual value entry <<<",
"gf-prompt-startpunkt-aus": "\nSelect start point for output element: ",
"gf-prompt-deltal-abstand": "\n%1L - distance (mm): ",
"gf-modus2-header": "\n\n>>> MODE 2: Select 3D line <<<",
"gf-status-bks-welt": "\n UCS set to world coordinates.",
"gf-prompt-3dlinie-richtung": "\nPlease select 3D line for direction and length:",
"gf-alert-keine-linie": "No valid line selected!",
"gf-status-fahrtrichtung-linie": "\n Travel direction: %1%2 (from line)",
"gf-status-deltal-mm": "\n %1L = %2 mm",
"gf-prompt-gefaellewinkel-def3": "\n\nSlope angle (degrees) [3]: ",
"gf-status-winkel": "\n>>> Angle: %1%2",
"gf-status-fahrtrichtung": "\n>>> Travel direction: %1%2",
"gf-alert-staustrecke-ungueltig": "Calculated buffer section length invalid: %1 mm\nPlease choose larger deltaL or smaller angle.",
"gf-status-zus2-winkel": "\n>>> Angle: %1%2",
"gf-status-zus2-aus-seite": "\n>>> Output side: %1",
"gf-status-zus2-ein-seite": "\n>>> Input side: %1",
"gf-status-zus2-lstau": "\n>>> L_stau: %1 mm",
"ques-yn-default-yes": " Y/N <Y>: ",
"ques-yn-default-no": " Y/N <N>: "
}