[CHANGE] GEFAELLESTRECKE_LINIENZUG: AS/ES-Auswahl und Gefaellewinkel per Dialog statt Konsole (Teil B der GUI-Umstellung)
Zwei neue Dialoge (dcl/gefaellestrecke.dcl, Lisp/Gefaellestrecke.lsp): - gf-dialog-linienzug-aus-ein: AUS-/EIN-Element Winkel+Seite in EINEM Dialog, ersetzt die vier fruehen Konsolenfragen. Muss vor der Segmentlaengen-/Winkelberechnung laufen (haengt von AS-/ES-Masse ab), darum eigener, fruehzeitiger Dialog. - gf-dialog-linienzug-winkel: zeigt den automatisch aus der Segmentkette berechneten Gefaellewinkel-Vorschlag ueberschreibbar, mit kurzer Segment-Zusammenfassung und dem bereits gewaehlten AS/ES-Paar nur noch zur Kontrolle (disabled). Ersetzt zugleich die SPAETERE finale Einfuegen-Bestaetigung - nach der rein automatischen AS/ES-Korrekturschleife waere eine zweite Rueckfrage redundant. Objektauswahl (ssget LINE/ARC) und Start-/Endpunktwahl bleiben bewusst Zeichnung/Konsole. Rueckfall auf die alten Konsolenfragen bleibt erhalten, wenn ein Dialog nicht gezeigt werden kann/darf (GUI aus); ein bewusster Dialog-Abbruch bricht dagegen den ganzen Befehl ab statt auf Konsole zurueckzufallen - neu im Vergleich zum alten Verhalten, aber konsistent mit vfc_eingabemodus/vfs_nachruesten_hz aus Teil A/C. doc/variofoerderer.md (Abschnitt 4) aktualisiert und um einen bebilderten Beispiel-Walkthrough ergaenzt (gf-linienzug1-3.png: Ausgangslinie, Dialog mit Vorschlagswinkel, fertige Strecke neben der Original-Linie). Manuell in BricsCAD getestet (vollstaendiger Lauf inkl. Abbruch in beiden Dialogen) - laeuft. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
+199
-32
@@ -714,12 +714,150 @@
|
|||||||
prev-hz
|
prev-hz
|
||||||
)
|
)
|
||||||
|
|
||||||
|
;; Dialog fuer Modus 3 (Linienzug), Teil 1: AUS-/EIN-Element Winkel+Seite -
|
||||||
|
;; ersetzt die vier Konsolenfragen (AUS-Winkel, AUS-Seite, EIN-Winkel,
|
||||||
|
;; EIN-Seite). Muss VOR der Segmentlaengen-Anpassung/Winkelberechnung
|
||||||
|
;; laufen (die braucht aus-dx/ein-dx aus vf-set-as-masse/-es-masse), darum
|
||||||
|
;; eigener, frueherer Dialog statt zusammen mit dem Winkel-Vorschlag.
|
||||||
|
;; Rueckgabe: (as-winkel as-seite es-winkel es-seite) bei OK, 'ABBRUCH wenn
|
||||||
|
;; der Nutzer bewusst abbricht (Aufrufer bricht dann den GANZEN Befehl ab,
|
||||||
|
;; KEIN Rueckfall auf die Konsole), nil wenn der Dialog gar nicht gezeigt
|
||||||
|
;; werden konnte/durfte (GUI aus) - NUR dann Konsolen-Rueckfall.
|
||||||
|
(defun gf-dialog-linienzug-aus-ein ( / dcl-pfad dat ergebnis
|
||||||
|
dlg-aus-winkel dlg-aus dlg-ein-winkel dlg-ein
|
||||||
|
as-seite es-seite as-winkel es-winkel)
|
||||||
|
(if (or (not (car (atoms-family 1 '("SSG-GUI-P")))) (ssg-gui-p))
|
||||||
|
(progn
|
||||||
|
(setq dcl-pfad (strcat (getenv "DXFM_DCL") "/gefaellestrecke.dcl"))
|
||||||
|
(setq dat (load_dialog dcl-pfad))
|
||||||
|
(if (not (new_dialog "gefaellestrecke_linienzug" dat))
|
||||||
|
(progn (if (and dat (>= dat 0)) (unload_dialog dat)) nil)
|
||||||
|
(progn
|
||||||
|
(set_tile "zusammenfassung" (ssg-text "gf-dlg-linienzug-vorlauf"))
|
||||||
|
(mode_tile "winkel" 1)
|
||||||
|
|
||||||
|
(start_list "aus_winkel")
|
||||||
|
(add_list "90")
|
||||||
|
(add_list "30")
|
||||||
|
(end_list)
|
||||||
|
(set_tile "aus_winkel" "0")
|
||||||
|
(start_list "aus_seite")
|
||||||
|
(add_list (ssg-text "gf-dlg-links"))
|
||||||
|
(add_list (ssg-text "gf-dlg-rechts"))
|
||||||
|
(end_list)
|
||||||
|
(set_tile "aus_seite" "0")
|
||||||
|
|
||||||
|
(start_list "ein_winkel")
|
||||||
|
(add_list "90")
|
||||||
|
(add_list "30")
|
||||||
|
(end_list)
|
||||||
|
(set_tile "ein_winkel" "0")
|
||||||
|
(start_list "ein_seite")
|
||||||
|
(add_list (ssg-text "gf-dlg-links"))
|
||||||
|
(add_list (ssg-text "gf-dlg-rechts"))
|
||||||
|
(end_list)
|
||||||
|
(set_tile "ein_seite" "0")
|
||||||
|
|
||||||
|
(action_tile "accept"
|
||||||
|
(strcat
|
||||||
|
"(setq dlg-aus-winkel (get_tile \"aus_winkel\"))"
|
||||||
|
"(setq dlg-aus (get_tile \"aus_seite\"))"
|
||||||
|
"(setq dlg-ein-winkel (get_tile \"ein_winkel\"))"
|
||||||
|
"(setq dlg-ein (get_tile \"ein_seite\"))"
|
||||||
|
"(done_dialog 1)"
|
||||||
|
)
|
||||||
|
)
|
||||||
|
(action_tile "cancel" "(done_dialog 0)")
|
||||||
|
(setq ergebnis (start_dialog))
|
||||||
|
(unload_dialog dat)
|
||||||
|
|
||||||
|
(cond
|
||||||
|
((= ergebnis 1)
|
||||||
|
(setq as-winkel (if (= dlg-aus-winkel "1") "30" "90"))
|
||||||
|
(setq as-seite (if (= dlg-aus "1") "rechts" "links"))
|
||||||
|
(setq es-winkel (if (= dlg-ein-winkel "1") "30" "90"))
|
||||||
|
(setq es-seite (if (= dlg-ein "1") "rechts" "links"))
|
||||||
|
(list as-winkel as-seite es-winkel es-seite)
|
||||||
|
)
|
||||||
|
(t 'ABBRUCH)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
nil
|
||||||
|
)
|
||||||
|
)
|
||||||
|
|
||||||
|
;; Dialog fuer Modus 3, Teil 2: Gefaellewinkel-Bestaetigung VOR der
|
||||||
|
;; iterativen AS/ES-Korrekturschleife (die braucht den vom Nutzer
|
||||||
|
;; gewaehlten/bestaetigten Ausgangswinkel, berechnet selbst aber nicht
|
||||||
|
;; interaktiv weiter) - ersetzt die "Berechneten Winkel verwenden?"-Frage
|
||||||
|
;; samt optionalem manuellem Winkel. Ersetzt zugleich die SPAETERE finale
|
||||||
|
;; Einfuegen-Bestaetigung: nach diesem OK baut der Aufrufer direkt, ohne
|
||||||
|
;; weitere Rueckfrage (analog "dialog-bestaetigt" bei Modus 1/2) - die
|
||||||
|
;; Zusammenfassung mit dem Vorschlag genuegt als Entscheidungsgrundlage,
|
||||||
|
;; eine zweite Bestaetigung NACH der (rein automatischen) Korrekturschleife
|
||||||
|
;; waere redundant. Das AS/ES-Auswahlpaar wird hier nur noch ANGEZEIGT
|
||||||
|
;; (disabled), nicht erneut editierbar - es ist schon in die Segmentlaengen
|
||||||
|
;; eingerechnet.
|
||||||
|
;; zusammenfassung-zeilen: Liste bereits fertig formatierter Strings.
|
||||||
|
;; Rueckgabe: Gefaellewinkel (Grad) bei OK, 'ABBRUCH wenn der Nutzer bewusst
|
||||||
|
;; abbricht (Aufrufer bricht dann den GANZEN Befehl ab, KEIN Rueckfall auf
|
||||||
|
;; die Konsole), nil wenn der Dialog gar nicht gezeigt werden konnte/durfte
|
||||||
|
;; (GUI aus) - NUR dann Konsolen-Rueckfall (inkl. der spaeteren finalen
|
||||||
|
;; Einfuegen-Bestaetigung, die in diesem Fall unveraendert bleibt).
|
||||||
|
(defun gf-dialog-linienzug-winkel (zusammenfassung-zeilen winkel-vorschlag
|
||||||
|
as-winkel as-seite es-winkel es-seite /
|
||||||
|
dcl-pfad dat ergebnis dlg-winkel grade)
|
||||||
|
(if (or (not (car (atoms-family 1 '("SSG-GUI-P")))) (ssg-gui-p))
|
||||||
|
(progn
|
||||||
|
(setq dcl-pfad (strcat (getenv "DXFM_DCL") "/gefaellestrecke.dcl"))
|
||||||
|
(setq dat (load_dialog dcl-pfad))
|
||||||
|
(if (not (new_dialog "gefaellestrecke_linienzug" dat))
|
||||||
|
(progn (if (and dat (>= dat 0)) (unload_dialog dat)) nil)
|
||||||
|
(progn
|
||||||
|
(set_tile "zusammenfassung" (ssg-join zusammenfassung-zeilen " | "))
|
||||||
|
|
||||||
|
(start_list "aus_winkel") (add_list as-winkel) (end_list)
|
||||||
|
(set_tile "aus_winkel" "0")
|
||||||
|
(start_list "aus_seite") (add_list as-seite) (end_list)
|
||||||
|
(set_tile "aus_seite" "0")
|
||||||
|
(start_list "ein_winkel") (add_list es-winkel) (end_list)
|
||||||
|
(set_tile "ein_winkel" "0")
|
||||||
|
(start_list "ein_seite") (add_list es-seite) (end_list)
|
||||||
|
(set_tile "ein_seite" "0")
|
||||||
|
(mode_tile "aus_winkel" 1) (mode_tile "aus_seite" 1)
|
||||||
|
(mode_tile "ein_winkel" 1) (mode_tile "ein_seite" 1)
|
||||||
|
|
||||||
|
(set_tile "winkel" (rtos winkel-vorschlag 2 3))
|
||||||
|
|
||||||
|
(action_tile "accept"
|
||||||
|
"(setq dlg-winkel (get_tile \"winkel\")) (done_dialog 1)")
|
||||||
|
(action_tile "cancel" "(done_dialog 0)")
|
||||||
|
(setq ergebnis (start_dialog))
|
||||||
|
(unload_dialog dat)
|
||||||
|
|
||||||
|
(cond
|
||||||
|
((= ergebnis 1)
|
||||||
|
(setq grade (atof dlg-winkel))
|
||||||
|
(if (<= grade 0) (setq grade winkel-vorschlag))
|
||||||
|
grade
|
||||||
|
)
|
||||||
|
(t 'ABBRUCH)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
nil
|
||||||
|
)
|
||||||
|
)
|
||||||
|
|
||||||
;; Hauptfunktion Modus 3
|
;; Hauptfunktion Modus 3
|
||||||
(defun gf-linienzug-modus ( /
|
(defun gf-linienzug-modus ( /
|
||||||
ss n i j obj obj-liste kette segmente seg
|
ss n i j obj obj-liste kette segmente seg
|
||||||
startpunkt endpunkt-ref deltaH grade antwort idx
|
startpunkt endpunkt-ref deltaH grade antwort idx
|
||||||
as-seite es-seite as-block es-block
|
as-seite es-seite as-block es-block
|
||||||
gf-as-winkel gf-es-winkel
|
gf-as-winkel gf-es-winkel dlg-aus-ein dlg-winkel-erg
|
||||||
entry-hz exit-hz
|
entry-hz exit-hz
|
||||||
first-idx last-idx neu-l
|
first-idx last-idx neu-l
|
||||||
aktuell-frame nach-aus-pt
|
aktuell-frame nach-aus-pt
|
||||||
@@ -787,29 +925,41 @@
|
|||||||
(setq entry-hz (cadr (car segmente)))
|
(setq entry-hz (cadr (car segmente)))
|
||||||
(setq exit-hz (gf-exit-hz segmente))
|
(setq exit-hz (gf-exit-hz segmente))
|
||||||
|
|
||||||
;; AUS-Element: 30/90 (vor Seite), dann Seite (vor Winkelberechnung, da die
|
;; AUS-/EIN-Element: 30/90 + Seite, in EINEM Dialog (vor Winkelberechnung,
|
||||||
;; Laengenanpassung von der AS/ES-Masse abhaengt). Masse fuer Variante setzen.
|
;; da die Laengenanpassung von der AS/ES-Masse abhaengt). Rueckfall auf die
|
||||||
(princ (ssg-text "vf-winkel-aus-header"))
|
;; alten Konsolenfragen, wenn der Dialog nicht gezeigt werden kann/darf.
|
||||||
(princ (ssg-text "vf-winkel-90"))
|
(setq dlg-aus-ein (gf-dialog-linienzug-aus-ein))
|
||||||
(princ (ssg-text "vf-winkel-30"))
|
(if (eq dlg-aus-ein 'ABBRUCH)
|
||||||
(setq gf-as-winkel (vf-frage-element-winkel "vf-winkel-aus-header"))
|
(progn (princ (ssg-text "vfc-vorgang-abgebrochen")) (exit))
|
||||||
(princ (ssg-text "gf-seite-aus-header"))
|
)
|
||||||
(princ (ssg-text "gf-seite-links"))
|
(if dlg-aus-ein
|
||||||
(princ (ssg-text "gf-seite-rechts"))
|
(setq gf-as-winkel (nth 0 dlg-aus-ein)
|
||||||
(setq antwort (getstring (ssg-text "prompt-wahl-1-2")))
|
as-seite (nth 1 dlg-aus-ein)
|
||||||
(setq as-seite (if (= antwort "2") "rechts" "links"))
|
gf-es-winkel (nth 2 dlg-aus-ein)
|
||||||
(vf-set-as-masse gf-as-winkel as-seite)
|
es-seite (nth 3 dlg-aus-ein))
|
||||||
|
(progn
|
||||||
|
(princ (ssg-text "vf-winkel-aus-header"))
|
||||||
|
(princ (ssg-text "vf-winkel-90"))
|
||||||
|
(princ (ssg-text "vf-winkel-30"))
|
||||||
|
(setq gf-as-winkel (vf-frage-element-winkel "vf-winkel-aus-header"))
|
||||||
|
(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"))
|
||||||
|
|
||||||
;; EIN-Element: 30/90 + Seite
|
(princ (ssg-text "vf-winkel-ein-header"))
|
||||||
(princ (ssg-text "vf-winkel-ein-header"))
|
(princ (ssg-text "vf-winkel-90"))
|
||||||
(princ (ssg-text "vf-winkel-90"))
|
(princ (ssg-text "vf-winkel-30"))
|
||||||
(princ (ssg-text "vf-winkel-30"))
|
(setq gf-es-winkel (vf-frage-element-winkel "vf-winkel-ein-header"))
|
||||||
(setq gf-es-winkel (vf-frage-element-winkel "vf-winkel-ein-header"))
|
(princ (ssg-text "gf-seite-ein-header"))
|
||||||
(princ (ssg-text "gf-seite-ein-header"))
|
(princ (ssg-text "gf-seite-links"))
|
||||||
(princ (ssg-text "gf-seite-links"))
|
(princ (ssg-text "gf-seite-rechts"))
|
||||||
(princ (ssg-text "gf-seite-rechts"))
|
(setq antwort (getstring (ssg-text "prompt-wahl-1-2")))
|
||||||
(setq antwort (getstring (ssg-text "prompt-wahl-1-2")))
|
(setq es-seite (if (= antwort "2") "rechts" "links"))
|
||||||
(setq es-seite (if (= antwort "2") "rechts" "links"))
|
)
|
||||||
|
)
|
||||||
|
(vf-set-as-masse gf-as-winkel as-seite)
|
||||||
(vf-set-es-masse gf-es-winkel es-seite)
|
(vf-set-es-masse gf-es-winkel es-seite)
|
||||||
|
|
||||||
(setq as-block (strcat "AS_Element_" gf-as-winkel "_" as-seite))
|
(setq as-block (strcat "AS_Element_" gf-as-winkel "_" as-seite))
|
||||||
@@ -881,14 +1031,30 @@
|
|||||||
(princ (ssg-text "gf-status-berechne-winkel"))
|
(princ (ssg-text "gf-status-berechne-winkel"))
|
||||||
(setq grade (gf-winkel-berechnen segmente deltaH 1))
|
(setq grade (gf-winkel-berechnen segmente deltaH 1))
|
||||||
|
|
||||||
;; Manuelle Anpassung
|
;; Manuelle Anpassung per Dialog (ersetzt zugleich die SPAETERE finale
|
||||||
(setq antwort
|
;; Einfuegen-Bestaetigung, siehe gf-dialog-linienzug-winkel) - Rueckfall
|
||||||
(getstring (ssg-textf "gf-prompt-winkel-verwenden"
|
;; auf die alten Konsolenfragen, wenn der Dialog nicht gezeigt werden
|
||||||
(list (rtos grade 2 3) grad-zeichen))))
|
;; kann/darf; dann bleibt auch die spaetere Einfuegen-Bestaetigung aktiv.
|
||||||
(if (= (strcase antwort) "N")
|
(setq dlg-winkel-erg
|
||||||
|
(gf-dialog-linienzug-winkel
|
||||||
|
(list (ssg-textf "gf-status-zus-segmente" (list (length segmente)))
|
||||||
|
(ssg-textf "gf-status-zus-deltah" (list delta-sym (rtos deltaH 2 2))))
|
||||||
|
grade gf-as-winkel as-seite gf-es-winkel es-seite))
|
||||||
|
(if (eq dlg-winkel-erg 'ABBRUCH)
|
||||||
|
(progn (princ (ssg-text "vfc-vorgang-abgebrochen")) (exit))
|
||||||
|
)
|
||||||
|
(if dlg-winkel-erg
|
||||||
|
(setq grade dlg-winkel-erg)
|
||||||
(progn
|
(progn
|
||||||
(setq grade (getreal (ssg-text "gf-prompt-gefaellewinkel")))
|
(setq antwort
|
||||||
(if (or (null grade) (<= grade 0)) (setq grade 3.0))
|
(getstring (ssg-textf "gf-prompt-winkel-verwenden"
|
||||||
|
(list (rtos grade 2 3) grad-zeichen))))
|
||||||
|
(if (= (strcase antwort) "N")
|
||||||
|
(progn
|
||||||
|
(setq grade (getreal (ssg-text "gf-prompt-gefaellewinkel")))
|
||||||
|
(if (or (null grade) (<= grade 0)) (setq grade 3.0))
|
||||||
|
)
|
||||||
|
)
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
(setq grade (float grade))
|
(setq grade (float grade))
|
||||||
@@ -953,8 +1119,9 @@
|
|||||||
(princ (ssg-textf "gf-status-zus-ein-element" (list es-block)))
|
(princ (ssg-textf "gf-status-zus-ein-element" (list es-block)))
|
||||||
(princ "\n=========================================")
|
(princ "\n=========================================")
|
||||||
|
|
||||||
;; Bestaetigung
|
;; Bestaetigung - entfaellt, wenn der Dialog oben bereits bestaetigt hat
|
||||||
(setq antwort (getstring (ssg-text "gf-prompt-einfuegen")))
|
;; (dlg-winkel-erg ist dann eine Zahl, kein nil/'ABBRUCH).
|
||||||
|
(setq antwort (if dlg-winkel-erg "1" (getstring (ssg-text "gf-prompt-einfuegen"))))
|
||||||
(if (not (= antwort "2"))
|
(if (not (= antwort "2"))
|
||||||
(progn
|
(progn
|
||||||
;; GF-Nummer und Entity-Grenze vor erster Einfuegung sichern.
|
;; GF-Nummer und Entity-Grenze vor erster Einfuegung sichern.
|
||||||
|
|||||||
@@ -6,6 +6,14 @@
|
|||||||
// Eingaben entsprechen dem interaktiven Skript Gefaellestrecke.lsp:
|
// Eingaben entsprechen dem interaktiven Skript Gefaellestrecke.lsp:
|
||||||
// Abstand deltaL, Gefaellewinkel, Fahrtrichtung,
|
// Abstand deltaL, Gefaellewinkel, Fahrtrichtung,
|
||||||
// Seite AUS-Element, Seite EIN-Element.
|
// Seite AUS-Element, Seite EIN-Element.
|
||||||
|
//
|
||||||
|
// gefaellestrecke_linienzug: Modus 3 (aus Linienzug LINE+ARC) - ersetzt die
|
||||||
|
// Konsolenfragen AUS-/EIN-Element Winkel+Seite, Winkelbestaetigung und die
|
||||||
|
// finale Einfuegen-Bestaetigung in EINEM Dialog (gf-dialog-linienzug in
|
||||||
|
// Gefaellestrecke.lsp). Die Objektauswahl (ssget LINE/ARC) UND die
|
||||||
|
// Start-/Endpunktwahl bleiben davor Zeichnung/Konsole - der automatisch
|
||||||
|
// berechnete Vorschlagswinkel wird als Vorbelegung des Winkel-Feldes
|
||||||
|
// gezeigt, mit einer kurzen Zusammenfassung der Segmentanalyse darueber.
|
||||||
// ============================================================
|
// ============================================================
|
||||||
|
|
||||||
gefaellestrecke : dialog {
|
gefaellestrecke : dialog {
|
||||||
@@ -108,3 +116,64 @@ gefaellestrecke : dialog {
|
|||||||
|
|
||||||
ok_cancel;
|
ok_cancel;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Modus 3 (aus Linienzug): AUS-/EIN-Element Winkel+Seite, Gefaellewinkel
|
||||||
|
// (Vorschlag vorbelegt, ueberschreibbar) und eine kurze Zusammenfassung der
|
||||||
|
// automatisch analysierten Segmentkette. "zusammenfassung" wird per
|
||||||
|
// set_tile aus mehreren ssg-textf-Zeilen zusammengesetzt (gf-dialog-
|
||||||
|
// linienzug, Gefaellestrecke.lsp) - sprachunabhaengig, nur das Label-Chrome
|
||||||
|
// bleibt hart deutsch wie der Rest dieser Datei.
|
||||||
|
gefaellestrecke_linienzug : dialog {
|
||||||
|
label = "Gefaellestrecke aus Linienzug";
|
||||||
|
|
||||||
|
: column {
|
||||||
|
|
||||||
|
: boxed_column {
|
||||||
|
label = "Segmentanalyse";
|
||||||
|
: text { key = "zusammenfassung"; label = ""; width = 55; }
|
||||||
|
}
|
||||||
|
|
||||||
|
: boxed_row {
|
||||||
|
label = "AUS-Element";
|
||||||
|
|
||||||
|
: popup_list {
|
||||||
|
key = "aus_winkel";
|
||||||
|
label = "Winkel:";
|
||||||
|
width = 12;
|
||||||
|
}
|
||||||
|
: popup_list {
|
||||||
|
key = "aus_seite";
|
||||||
|
label = "Seite:";
|
||||||
|
width = 14;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
: boxed_row {
|
||||||
|
label = "EIN-Element";
|
||||||
|
|
||||||
|
: popup_list {
|
||||||
|
key = "ein_winkel";
|
||||||
|
label = "Winkel:";
|
||||||
|
width = 12;
|
||||||
|
}
|
||||||
|
: popup_list {
|
||||||
|
key = "ein_seite";
|
||||||
|
label = "Seite:";
|
||||||
|
width = 14;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
: boxed_column {
|
||||||
|
label = "Gefaellewinkel";
|
||||||
|
|
||||||
|
: edit_box {
|
||||||
|
key = "winkel";
|
||||||
|
label = "Gefaellewinkel (Grad):";
|
||||||
|
edit_width = 10;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
ok_cancel;
|
||||||
|
}
|
||||||
|
|||||||
Binary file not shown.
|
After Width: | Height: | Size: 7.4 KiB |
Binary file not shown.
|
After Width: | Height: | Size: 22 KiB |
Binary file not shown.
|
After Width: | Height: | Size: 45 KiB |
+36
-6
@@ -242,13 +242,43 @@ Das Winkel/Seite-Paar (`aus_winkel`/`aus_seite`, `ein_winkel`/`ein_seite`)
|
|||||||
taucht identisch auch im Linienzug als AS-/ES-Element-Baustein auf (siehe
|
taucht identisch auch im Linienzug als AS-/ES-Element-Baustein auf (siehe
|
||||||
Abschnitt 5.2).
|
Abschnitt 5.2).
|
||||||
|
|
||||||
Zusaetzlich als Legacy-Konsole vorhanden (kein Dialog):
|
**Modus 2** — Startpunkt/Endpunkt waehlen (`GEFAELLESTRECKE_3DLINIE`): 2x
|
||||||
|
Punktwahl + Gefaellewinkel (Zahl, aus DeltaH automatisch vorgeschlagen).
|
||||||
|
Legacy-Konsole, kein Dialog.
|
||||||
|
|
||||||
- **Modus 2** — Startpunkt/Endpunkt waehlen: 2x Punktwahl + Gefaellewinkel
|
**Modus 3** — Bestehenden Linienzug (Linien/Boegen) auswaehlen
|
||||||
(Zahl, aus DeltaH automatisch vorgeschlagen).
|
(`GEFAELLESTRECKE_LINIENZUG`): Objektauswahl (`ssget` LINE/ARC) und
|
||||||
- **Modus 3** — Bestehenden Linienzug (Linien/Boegen) auswaehlen: Objektauswahl,
|
Start-/Endpunktwahl bleiben Zeichnung/Konsole. AUS-/EIN-Element (Winkel
|
||||||
Winkel wird aus der Geometrie vorgeschlagen und kann per j/n bestaetigt oder
|
90/30 + Seite links/rechts) laufen danach ueber EINEN Dialog
|
||||||
ueberschrieben werden.
|
(`gefaellestrecke_linienzug`, `gf-dialog-linienzug-aus-ein` in
|
||||||
|
`Lisp/Gefaellestrecke.lsp`) — muss vor der automatischen Segmentlaengen-
|
||||||
|
/Winkelberechnung laufen, die von der AS-/ES-Masse abhaengt. Danach zeigt
|
||||||
|
ein zweiter Dialog (`gf-dialog-linienzug-winkel`) den automatisch
|
||||||
|
berechneten Vorschlagswinkel ueberschreibbar zusammen mit einer kurzen
|
||||||
|
Segment-Zusammenfassung; dessen OK ersetzt zugleich die SPAETERE finale
|
||||||
|
Einfuegen-Bestaetigung (keine doppelte Rueckfrage nach der rein
|
||||||
|
automatischen AS/ES-Korrekturschleife). Rueckfall auf die alten
|
||||||
|
Konsolenfragen (inkl. der finalen Einfuegen-Bestaetigung), wenn einer der
|
||||||
|
beiden Dialoge nicht gezeigt werden kann/darf (GUI aus); ein bewusster
|
||||||
|
Dialog-Abbruch ('ABBRUCH) bricht dagegen den ganzen Befehl ab, OHNE auf die
|
||||||
|
Konsole zurueckzufallen.
|
||||||
|
|
||||||
|
**Beispiel Modus 3 — Gefaellestrecke aus einem gezeichneten Linienzug:**
|
||||||
|
|
||||||
|
1. Vorab eine Kette aus LINE-/ARC-Objekten entlang der gewuenschten Trasse
|
||||||
|
zeichnen (Geraden + Rundungen, hier ein abgerundeter Linienzug):
|
||||||
|

|
||||||
|
2. `GEFAELLESTRECKE_LINIENZUG` aufrufen, die Objekte auswaehlen sowie Start-
|
||||||
|
und Endpunkt der Kette anklicken. Danach AS-/EIN-Element (Winkel/Seite)
|
||||||
|
im ersten Dialog waehlen; der zweite Dialog zeigt den automatisch aus
|
||||||
|
der Geometrie berechneten Gefaellewinkel-Vorschlag (hier 3°, AS/ES-Felder
|
||||||
|
nur noch zur Kontrolle, nicht mehr editierbar):
|
||||||
|

|
||||||
|
3. Nach OK baut der Befehl die Gefaellestrecke direkt entlang der
|
||||||
|
Original-Linie (AUS-Element, Gefaellebogen an jeder Rundung,
|
||||||
|
Staustrecke, EIN-Element) — die urspruengliche Linie bleibt zur
|
||||||
|
Kontrolle in der Zeichnung stehen:
|
||||||
|

|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
|
|||||||
@@ -815,6 +815,7 @@
|
|||||||
"gf-dlg-richtung-270": "270%1 (Y-, Sued)",
|
"gf-dlg-richtung-270": "270%1 (Y-, Sued)",
|
||||||
"gf-dlg-links": "Links",
|
"gf-dlg-links": "Links",
|
||||||
"gf-dlg-rechts": "Rechts",
|
"gf-dlg-rechts": "Rechts",
|
||||||
|
"gf-dlg-linienzug-vorlauf": "Linienzug ausgewaehlt - Winkel wird nach Bestaetigung berechnet.",
|
||||||
"gf-status-gf-block-erstellt": "\n>>> GF-Block erstellt: %1 (%2)",
|
"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-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-schritt2-staustrecke": "\n\n2/4: Staustrecke L=%1 mm hz=%2%3 v=%4%5",
|
||||||
|
|||||||
@@ -815,6 +815,7 @@
|
|||||||
"gf-dlg-richtung-270": "270%1 (Y-, South)",
|
"gf-dlg-richtung-270": "270%1 (Y-, South)",
|
||||||
"gf-dlg-links": "Left",
|
"gf-dlg-links": "Left",
|
||||||
"gf-dlg-rechts": "Right",
|
"gf-dlg-rechts": "Right",
|
||||||
|
"gf-dlg-linienzug-vorlauf": "Path selected - angle will be calculated after confirmation.",
|
||||||
"gf-status-gf-block-erstellt": "\n>>> GF block created: %1 (%2)",
|
"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-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-schritt2-staustrecke": "\n\n2/4: Buffer section L=%1 mm hz=%2%3 v=%4%5",
|
||||||
|
|||||||
Reference in New Issue
Block a user