Commit Graph

40 Commits

Author SHA1 Message Date
m.stangl 9670173d4b Menüs für Varioförderer umgebaut. Weniger interaktive Abfragen, direkter Aufruf durch Menü 2026-09-07 11:05:18 +02:00
s.hensch 15ec6c0504 [ADD] Layerdefinitionen und Farben durch layer.cfg für zusammengesetzte Blöcke wie Gefällestrecke oder Varioförderer werden beim Zusammenbau der Baugruppen in den Skripten verwendet; Ebenfalls als Fallback für Blöcke möglich, die kein Attribut LAYER besitzen. 2026-09-04 09:01:12 +02:00
m.stangl ddb5dfa0f5 WINKEL_AS und WINKEL_ES hinzugefügt 2026-08-31 13:53:41 +02:00
m.stangl 80804a321a [REFACTOR] KS-Extraktion + Einfuegeprimitiven zentral in ssg_ks_insert.lsp
Neun Funktionen waren doppelt gepflegt in vf_core.lsp (unbedingt) UND
Gefaellestrecke.lsp (geguardet 'Fallback wenn vf_core nicht geladen'). Da
vf_core im MNL immer nach Gefaellestrecke laedt, gewann bisher stillschweigend
die vf_core-Version - die Gefaellestrecke-Kopien waren de facto tot und wichen
leicht ab. Jetzt EINE Quelle:

  ssg_ks_insert.lsp: vec-length, ks-line-axis, ks-normalize-name, ks-relativize,
  ks-absolutize, ensure-block-loaded, extract-ks-from-block[-raw],
  insert-block-by-ks, insert-inclined-scaled-block, insert-rotated-block-with-ks

- Kanonische vf_core-Variante uebernommen (inkl. Null-Check, ssg-ils-block-auf-ebene,
  hz-Guard, Statusmeldungen). Gefaellestrecke erhaelt dadurch dieselbe Behandlung
  wie im MNL-Fluss ohnehin schon aktiv.
- Cache vereinheitlicht auf *ks-cache* (guarded init im Shared-File);
  *gf-ks-cache* entfaellt.
- MNL laedt ssg_ks_insert als Core-Modul VOR Gefaellestrecke/VarioFoerderer.
- vf_core + Gefaellestrecke: guarded Nachlade-Load fuer isoliertes Test/Dev-Laden.

Paren-Balance geprueft; jede der 9 Funktionen jetzt genau 1x definiert.
Beruehrt Block-Platzierung -> BricsCAD-Test Standard/Etage/Linienzug/Gefaelle
(2D+3D) noetig.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-08-29 08:37:35 +02:00
m.stangl aa71d463cb [REFACTOR] Rz(hz)*Ry(vert)-Rotationsmatrix zentralisiert (ssg-rot-matrix-zy)
Die 4x4-Matrix Rz(hz)*Ry(vert) stand woertlich 11x: vf_core (2x), vf_etage (4x),
Gefaellestrecke (4x), TEFInsert (1x). Neuer dependency-freier Helper
ssg-rot-matrix-zy in ssg_core.lsp (immer zuerst geladen), damit alle drei
Cluster ihn ohne Cross-Modul-Kopplung teilen.

- vf-rot-matrix bleibt als duenner Alias in vf_core (VF-Aufrufstellen unveraendert)
- Reine 2D-Rz-Matrizen (insert-block-by-ks, nur horizontal) bleiben unangetastet
  (andere Form, kein Vertikalanteil)

Werte identisch - reine Extraktion. Paren-Balance geprueft.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-08-29 07:55:00 +02:00
m.stangl fe3adc7e59 Separatoren zaehlen: nur platzierte Symbole, interne Kettenglieder nicht
Der intern in der GF/VF-Kette gezeichnete 300-mm-Block
Staustrecke_Separator_SP ist ein Foerder-/Uebergabestueck, kein
eigenstaendiger Separator. Er wurde bisher als Separator mitgezaehlt
(ANZAHL_SEPARATOR = intern + platzierte Symbole), wodurch eine GF mit
einem darauf gelegten S-LP-Symbol faelschlich 2 statt 1 ergab.

count_sep_scan.lsp: ANZAHL_SEPARATOR zaehlt jetzt nur noch die platzierten
Separator_SP/S-LP-Symbole (newP = nsep). Schnelltest cs-zuordnung-noetig-p
entsprechend auf reine Symbolzahl je Carrier umgestellt. Die interne
Zaehlung (cs-count-nested, *intern-separator-pattern*, internSep) entfaellt.

Gefaellestrecke.lsp: GF-Bau setzt ANZAHL_SEPARATOR beim Erstellen mit 0 vor
(interne Kettenseparatoren zaehlen nicht) - die echte Anzahl fuellt der
Export aus den platzierten Symbolen. Label "Sep=N" entfernt (waere sonst
immer 0 bzw. widerspraeche dem Export). n-bogen-gf/gf-make-label
entsprechend bereinigt.

Hinweis: tests/reference/gefaellestrecke_tests_export.csv (Anzahl_Separator=1
ohne platzierte Symbole) wird dadurch stale -> per TEST_EXPORT_ALL in
BricsCAD neu erzeugen.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-08-21 17:02:10 +02:00
s.hensch 2d6fab2aa9 [FIX] Koordinatensysteme Blocknamen vereinheitlicht bzw korrigiert: KSYS_EIN->KS_EIN, KSYS_AUS->KS_AUS 2026-07-28 12:05:09 +02:00
m.stangl ad7a7243ba Fix der Gefällestrecke: Nimmt auch Fliesskommazahlen für den Winkel an. An Mubea Layout gemerkt. Funktionen zur Einfügung vno Geraden dazu 2026-07-28 11:03:15 +02:00
s.hensch b16c2e0fa1 [CHANGE] Verzeichnisse ILS 2d und 3d zusammengeführt und Funktionen entsprechend angepasst; TODO: Vario auf/ab Bögen schalten noch nicht korrekt zwischen 2d und 3d hin und her; TODO: Omniflo Verzeichnisse 2d/3d entsprechend genau so zusammenführen 2026-07-24 13:00:33 +02:00
y.wang 60c20519a0 Merge: Konflikt im VF/GF-Edit-Prefill aufgeloest
Eingehender Branch setzt geruest-einzelmodul-Default auf "1"; lokal kamen dim- und motorseite-Vorbelegung hinzu. Aufloesung: beide lokalen Zusaetze behalten und den neuen Default "1" uebernommen (Gefaellestrecke.lsp, vf_standard.lsp).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-24 08:23:04 +02:00
m.stangl 258608b77f Export: Gefällestrecke-Höhe, Gerüst-Defaults, Omniflo-Komponenten-Split
- Entfernt "Hoehe oben"/"Hoehe unten" aus Gefällestrecke JSON-Export
- "Hoehe in m" kommt jetzt konsistent aus MONTAGEHOEHE_m bei Kreisel/Variofoerderer/Gefällestrecke
- Setzt "Geruest fuer Einzelmodul" auf Default True (statt False) bei Kreisel, Eckrad, Variofoerderer, Gefällestrecke
  - Eckrad-Abfrage: Default = Yes, Logik korrigiert (war invertiert)
- JSON-Key-Reihenfolge optimiert:
  - Variofoerderer/ILS 2.0 Strecke: "Hoehe in m" zuerst
  - Gefällestrecke/ILS 2.0 Gefällestrecke: "Hoehe in m" und "Typ" zuerst
  - Kreisel: "Hoehe in m" zuerst
- Omniflo-Komponenten-Split: Teile mit "0_B"-Präfix werden als separate CSV-Zeilen ausgegeben
  - Multi-Komponenten-Sivasnr (z.B. "834372002+0_BG090090") splitten
  - IDs werden mit .t1, .t2, etc. ergänzt
  - 0_B-Komponenten als "TEF Bogen"/"TEF Weiche" klassifiziert

Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
2026-07-23 15:26:51 +02:00
y.wang 9d9b9a9172 Merge Geruest-Feature mit 2D/3D-Umschaltung zusammengefuehrt
Konflikte in Gefaellestrecke.lsp und vf_standard.lsp aufgeloest - beide Features behalten. Dialog-Rueckgaben: dim vor den Geruest-Werten. Modus-1 (c:GEFAELLESTRECKE) und die Batch-Konverter (gf-/vf-konvertiere-ent) an die um Geruest-Parameter erweiterten Signaturen (gf-rebuild, gefaellestrecke-einfuegen, vf-block-erstellen) angepasst.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-23 14:28:29 +02:00
y.wang 39a4656f38 2D/3D-Umschaltung pro GF/VF-Block (Dialog-Auswahl + Auto-Erkennung via XDATA) und Batch Alle auf 2D/3D 2026-07-23 14:01:52 +02:00
m.stangl 6396111777 Geruest fuer Einzelmodul + Geruestoption bei Foerderer, Gefaellestrecke und Eckrad ergaenzt
Kreisel hatte GERUEST_EINZELMODUL bereits; ergaenzt um die neue Combobox
GERUEST_TYP (IPE-Geruest abgestuft / Obergeruest oben / Schoenenberger
Geruest / nur Doppelrohrtraeger, Default Schoenenberger Geruest) im
KreiselEdit-Dialog. VarioFoerderer (Standard-Dialog) und Gefaellestrecke
(Modus 1) erhalten beide Attribute neu in ihren DCL-Dialogen inkl.
Edit-Vorbelegung. ILS_Eckrad (kein Dialog vorhanden) fragt beide Werte
per Kommandozeilen-Menue ab. Konsolen-only-Pfade ohne Dialog (VF
Etage/Linienzug, GF Linienzug/3D-Objekte) bleiben auf Schema-Default,
analog zum bisherigen Kreisel-Verhalten.

Gemeinsame Optionsliste/Helper (*ssg-geruest-optionen*,
ssg-geruest-typ-to-idx/idx-to-typ, ssg-ask-geruest-typ) in ssg_core.lsp
war bereits durch einen parallelen Commit (120e26a) mit eingeflossen.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-07-23 10:37:22 +02:00
y.wang eef20cafe8 AS-Platzierungen gefixiert. AS-dz jetzt konsistent flach, Debug-Zeile entfernt 2026-07-23 09:08:07 +02:00
y.wang c6d5a4e8eb Doppelklick-GF-Edit repariert 2026-07-22 12:43:29 +02:00
y.wang 5bb6bb8241 fix: Z-Versatz bei GF/VF behoben (OSMODE=0 im Wrap ssg-block-wrap-welt); gepickte Hoehe als Einfuegehoehe im GF-Dialog 2026-07-21 14:05:13 +02:00
y.wang 1ca3241a83 Button -VF daneben bauen- im GF-Edit-Dialog - baut gegenläufigen, steigenden Standard-VF 2000mm parallel,Doppel-Bestaetigung in Modus 1 (DCL-Dialog) entfernt - OK-Klick fuegt direkt ein 2026-07-20 21:40:41 +02:00
m.stangl 5c28db9e91 Oberfläche für Standard von Varioförder und Gefällestrecke bauen lassen 2026-07-20 15:39:17 +02:00
y.wang 6e8f4c75fe Merge origin/master: i18n-System (de/en) + 30-Grad-AS/ES-Elemente zusammenfuehren
Lokaler Stand (Modus-3 Randwert-Solver, 30/90-AS/ES, Kreisel-Attribute)
mit dem Remote-Stand (Internationalisierung ssg-text, neue Bloecke,
Sivas-Export) vereint.

Konfliktaufloesung:
- vf_linienzug.lsp: Nicht-interaktive -block-Kerne (fuer Pfad-Modi) behalten,
  interaktive Abfragen (GF-Bogen, Vario-Kurve, ES-Seite) auf ssg-text
  umgestellt. Kein doppelter defun mehr.
- Gefaellestrecke.lsp: 30/90-Winkelabfrage mit den i18n-Seiten-Prompts
  kombiniert; gefaellestrecke-einfuegen-Aufruf mit as-/es-winkel.
- vf_core.lsp: vf-frage-element-winkel nimmt jetzt einen i18n-Header-Key
  (vf-winkel-aus-header / vf-winkel-ein-header) statt festem Text.
- lang/de_DE.json + en_GB.json: neue Keys vf-winkel-aus/ein-header,
  vf-winkel-90/30; gf-seite-Header ohne irrefuehrendes "_90_".
- export_sivas.py: ANZAHL_SEPARATOR/ANZAHL_SCANNER mit N_*-Fallback plus
  Remote-Umsortierung; doppelte "Kreiselart"-Zeile entfernt.
- AS_Element_30_links/rechts.dwg + Separator_SP.dwg (3D): Remote-Version
  (Attribut-Stand) uebernommen. Die KS_AUS-Geometrie-Korrektur der 30-Grad-
  AS-Elemente wird danach in BricsCAD nachgezogen.

Offen (Folge-Commit): die Modus-Treiber in vf_linienzug.lsp
(vf-linienzug-modus / -modus2 / -modus3) sind noch nicht i18n
(ca. 110 Strings).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-20 14:08:13 +02:00
y.wang f38b06ddf5 VF-Linienzug Modus 2 (Ziel-Hoehe) fertig , AS/ES 30/90 Grad bei GF und VF waehlbar. 2026-07-20 12:59:09 +02:00
m.stangl bd1366bc8a 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>
2026-07-16 09:39:18 +02:00
m.stangl 2eca169326 Uebersetzung aller Benutzermeldungen auf ssg-text/ssg-textf umgestellt
Vollstaendiger i18n-Rollout ueber alle Feature- und Kernmodule: alle benutzersichtbaren princ/prompt/getXXX/alert-Texte laufen jetzt ueber die zentrale Sprachtabelle in ssg_lang.lsp (Deutsch/Englisch, umschaltbar via SSG_SPRACHE). 403 Tabelleneintraege, 497 Aufrufstellen in 17 Dateien.

Ausgeschlossen wie geplant: Debug-Ausgaben (dbg*), Lademeldungen, [DUMMY]-Platzhalter, [CFG]/[OMNI]-Diagnosemarker.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-15 21:24:18 +02:00
m.stangl 9458382965 Sprachumschaltung von DE nach EN über Menü möglich gemacht 2026-07-15 15:11:02 +02:00
y.wang 3897581dc9 Die Funktion bei VF_Linienzug wurde optimiert. Und TEST_LINIENZUG wurde in test_foerdererer.lsp eingebaut. 2026-07-08 13:45:12 +02:00
y.wang 9ce739fb35 3D-Linienzug (gemischte Gefaellestrecke/VarioFoerderer-Kette, Modus 1: manuelle Eingabe) wurde bei Variofoerder gabaut. Die Block-Attribute für GF und VF wurde angepasst wie erfoerdert bei EXPORT. 2026-07-06 15:54:46 +02:00
y.wang acdf735e00 ATTREQ/ATTDIA vor GF-Block-Insert auf 0 setzen, um fehlende Attribute zu beheben; Horizontale Variofoerderer-Mittelsektion als zusaetzlichen Testfall in TEST_FOERDERER pruefen und bauen 2026-07-03 13:43:55 +02:00
y.wang 17d5bfc539 Merge branch 'master' of https://gitea.schoenenberger.de/Schoenenberger_Systeme_GmbH/dxfmakros 2026-07-03 13:05:20 +02:00
y.wang cc3cb9f160 horizontale Fahrrichtung (0°/90°/180°/270°) fuer Variofoederer manuelle Werteingabe ergänzen. die Möglichkeit des Horizontal-Varioföerderes wurde bei Ab-Förderrichtung geprüft. 2026-07-03 12:59:24 +02:00
m.stangl f87260c605 .cfg Parser hinzu implementieren lassen. Spezifische Omniflo export routine die syncron in Lisp lief entfernt 2026-07-02 14:06:05 +02:00
y.wang 11555ace8e Attribut-Entities-Bug bei GF-Blockerstellung und VF-Blockerstellung in TEST-Funktionen beheben. 2026-07-02 10:12:30 +02:00
y.wang b915980540 die 3 Modus für Gefällestrecke wurden angepasst.Gemeinsamkeit aller Modi: Innere Elemente (Separator, Gefällebogen) werden immer per vollständiger KS_EIN→KS_AUS-3D-Rahmen-Kettung verkettet (insert-block-ks-to-ks) — nur bei AS/ES-Element (wegen des seitlichen Drehteller-Versatzes) wird die Position in X/Y und Z getrennt behandelt.Unterschied Modus 1/2 vs. Modus 3: In Modus 1/2 gibt es keinen vorgegebenen Endpunkt — die Endhöhe ist ein Ergebnis. In Modus 3 sind Start und Endpunkt (mit Höhen) vorgegeben, und die gesamte Geometrie (Winkel, Bogenauswahl, Segmentlängen) wird so berechnet, dass beide Punkte exakt erreicht werden. Test-Gefällestrecke wurde gebaut 2026-07-01 16:06:16 +02:00
y.wang 0bee5ad8d0 die DWG sind bereinigt. Die bisherige positionsbasierte Block-Einfügung (Punkt + Winkel) wurde durch eine vollständige 3D-Frame-Kettung über KS_EIN/KS_AUS-Koordinatensysteme ersetzt, sodass beliebige räumliche Orientierungen korrekt durch die gesamte VarioFoerderer- und Gefaellestrecke-Anlage propagiert werden. 2026-06-30 12:29:33 +02:00
y.wang d92b723e8c Blocknamen ohne Gradzeichen 2026-06-30 10:01:00 +02:00
y.wang 311d611f59 GF-Block-Erstellung und Attribute-Definition vollständig implementiert. 2026-06-29 11:34:57 +02:00
y.wang 0ea11fdac2 Block-Pfad-Ermittlung auf DXFMAKRO+DXFM_DIM umgestellt; Console bereinigt 2026-06-25 15:40:07 +02:00
y.wang db0d9abb7a Startup-Alert bei VarioFoerderer entfernt. Alle verwendete Blöcke in VarioFoerderer.lsp und Gefaellestrecke.lsp sind aus data/ils/3D/ - DXFM_BLOCKS. 2026-06-25 14:30:03 +02:00
y.wang cab9db526e die Variofoerderer.lsp umstruktiert. Gefaellstrecke kann nach einem Linienzug modeliert werden. Bei Kreiselinstert wurde die Blöck in 2D Pfad geladen. 2026-06-19 14:02:45 +02:00
m.stangl 9f78ff7f0a Alle LISP-Module auf ssg-cfg-or umgestellt (hardcodierte Konstanten entfernt)
Alle bisher hart codierten Geometrie-, Farb- und Default-Werte in den
LISP-Modulen werden jetzt ueber ssg-cfg-or aus component_defaults.json
gelesen (mit Fallback auf den bisherigen Wert als Sicherheitsnetz).

Lisp/KreiselInsert.lsp:
  - Geometrie-Konstanten: *kreisel-durchmesser*, *kreisel-pin-abstand*,
    *kreisel-default-laenge*, *kreisel-default-hoehe*, *eckrad-default-hoehe*
  - Beschriftungs-Einstellungen: Texthöhe, Farbe, Abstand
  - Linienfarben (color_linie_1/2, color_pin) fuer Layer/CECOLOR
  - Toleranzen: toleranz_kollinear, toleranz_winkel

Lisp/OmniModulInsert.lsp:
  - Default-Werte fuer HOEHE und DREHUNG beim Einfuegen und Bearbeiten
  - Textgroessen (textHeight, textGap) fuer Vorschau-Dialog
  - Max-Laengen fuer AP60, AP110, APG110

Lisp/VarioFoerderer.lsp:
  - staustrecke-basis, FESTE_HORIZONTAL
  - bogen-winkel Liste (zweifach, in Bibliotheks-Extraktion und Berechnung)
  - gefaelle_winkel (3°) an allen Stellen im Anlagen-Aufbau
  - skalierung_basis fuer Block-Skalierung
  - separator_block_dx/dz, station_block_dx/dz fuer Blockeinfuegung

Lisp/Gefaellestrecke.lsp:
  - Default-Wert fuer deltaL, default_winkel
  - separator_breite fuer Laengenberechnung

Lisp/export.lsp:
  - default_hoehe fuer HOEHE-Attribut-Fallback in Bogen/Weiche/Gerade
  - default_gerade_laenge fuer Laenge-Fallback
  - mm_pro_meter (1000.0) fuer Umrechnung mm->m bei Laengenangaben

Lisp/ssg_dialog.lsp:
  - dialog_preview_bg_color (-18) fuer fill_image Hintergrundfarbe

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-12 11:26:22 +02:00
y.wang 604cdaf81f Die Module für Gefaellestrecke wurde gebaut. 2026-06-02 15:16:24 +02:00