y.wang c2ceab973c docs: Linienzug-Modus-2-Referenzfaelle mit Soll-Werten festhalten
Die beiden Laeufe vom 2026-10-26 als dokumentierte Referenz: derselbe Pfad,
einmal mit Vario-Kurve und einmal mit GF-Bogen an der 90-Grad-Ecke. Beide
muessen quer ~0 und dZ 0 erreichen; laengs darf um die ES-Ausladung
abweichen.

Der Wert liegt im VERGLEICH der beiden Varianten: ein einzelner Lauf haette
nicht gezeigt, dass der ES-Fussabdruck vom falschen Segment abgezogen wurde
(878 mm Abweichung nur in der GF-Bogen-Variante). Darum sind beide als Paar
festgehalten, mit den erwarteten Protokollzeilen - eine FEHLENDE
Zuschlagszeile ist das Warnsignal.

Noch nicht automatisiert (Pfad muesste per entmake gezeichnet und das
Journal replayt werden); die reinen Rechenkerne sind in test_unit.lsp
bereits mit genau diesen Messwerten abgedeckt.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-10-26 14:31:06 +01:00
2026-10-14 15:09:10 +02:00
2026-05-05 16:06:06 +02:00

dxfmakros

AutoLISP-Makros (SSG_LIB) fuer BricsCAD Pro zur automatisierten Erstellung von Foerderanlagen-Layouts (ILS Kreisel, Omniflo, VarioFoerderer, Gefaellestrecke, Geruest).

Einstieg:

Menustruktur (SSG_LIB)

SSG_LIB
├── ILS
│   ├── Kreisel-Module
│   │   ├── Einfuegen / Verbinden / Bearbeiten    → KreiselInsert / KreiselConnect / KreiselEdit
│   │   ├── Eckrad / Eckrad bearbeiten            → ILS_Eckrad / EckradEdit
│   │   └── Weichenpunkte ermitteln               → KREISEL_WEICHEN
│   ├── Zusatzmodul
│   │   ├── BTMT-Beladung / -Entladung            → ILS_BTMT_Beladung / ILS_BTMT_Entladung
│   │   └── Scanner / Separator einfuegen         → ILS_SCANNER_INSERT / ILS_SEPARATOR_INSERT
│   ├── Foerderer
│   │   ├── Standard (Werte manuell / aus 3D-Linie) → StandardVarioFoerderer / StandardVarioFoerderer3D
│   │   ├── Etage (Werte manuell / aus 3D-Linie)    → EtageVarioFoerderer / EtageVarioFoerderer3D
│   │   ├── Streckengruppe (Linienzug)              → LinienzugVarioFoerdererManuell / -Zielhoehe / -Stueckweise
│   │   └── Vario_Kette_Merge / VarioFoerderer nachruesten → Vario_Kette_Merge / VARIOFOERDERER_NACHRUESTEN
│   └── Gefaellestrecke
│       ├── einfach / aus 3D-Linie / aus Linienzug  → GEFAELLESTRECKE_EINFACH / _3DLINIE / _LINIENZUG
│       └── QC Linie mit GF (auch U-Form)           → QcLinieMitGf / QcLinieMitGfUForm
├── Omniflo
│   ├── Fahrstrecke / Fahrstrecken beschriften      → OMNI_FAHRSTRECKE / OMNI_FAHRSTRECKE_BESCHRIFTEN
│   ├── Boegen APB110 / APB60, Aluprofil Gerade (AP60/AP110/APG110)
│   ├── Weichen (90/45/Parallel/22.5, Delta, Star)
│   ├── TEF Elemente (inkl. TEF Gerade auf Linie → TEF_FOERDERER_LINIE)
│   ├── Anbaugruppen (Stopper, Scanner, Buerstenbremse)
│   ├── Spez. Streckenelemente ▸ Tuerloesungen ▸ Schwenkschienen → OMNI_SCHW_400_*
│   ├── KettenFoerderer                             → KETTENFOERDERER
│   ├── Ladeschleifen                               → OMNI_LADESCHLEIFE_AP110
│   ├── Verbinder                                   → OMNI_TV_*
│   ├── Boegen fuer Weichen (ausgegraut, Dummy)     → OMNI_APBW_*
│   └── Element bearbeiten                          → OMNI_EDIT
├── Geruest
│   ├── Rohr-Geruest-Traeger                        → GERUEST_TRAEGER
│   ├── Saeulen / Rohrabhaenger / Wandbefestigung   → GERUEST_SAEULEN / GERUEST_ROHRABHAENGER / GERUEST_WANDBEFESTIGUNG
│   ├── Gattertraeger (Platzhalter)                 → GERUEST
│   └── Funktionen ▸ Traeger beschriften            → GERUEST_TRAEGER_BESCHRIFTEN
├── SPS
│   ├── TRO (Marker einfuegen/bearbeiten)           → TRO_INSERT / TRO_EDIT
│   ├── Connections (einfuegen/bearbeiten)          → CONNECTION_INSERT / CONNECTION_EDIT
│   └── Eingang / Ausgang                           → ILS_EINGANG_INSERT / ILS_AUSGANG_INSERT
├── Export
│   ├── Export Sivas                                → EXPORTSIVAS
│   └── Export CSV                                  → EXPORTCSV
├── Konfiguration
│   ├── Umschalten 2D und 3D                        → SSG_DIM_SWITCH
│   ├── Alle Bloecke auf 2D / 3D                    → SSG_DIM_ALL_2D / SSG_DIM_ALL_3D
│   ├── Sprache                                     → SSG_SPRACHE
│   ├── Planquadrate an/aus                         → PLANQUADRATE_TOGGLE
│   └── CSV-Export                                  → CSV_EXPORT_KONFIG
├── Werkzeuge
│   ├── Bloecke zaehlen / loeschen, Attribute ersetzen → SSG_BLOCK_COUNT / SSG_BLOCK_DELETE / SSG_ATTR_ERSETZEN
│   ├── Text ersetzen / parallel / Hoehe / Stil        → SSG_TEXT_ERSETZEN / _PARALLEL / _HOEHE / _STIL
│   ├── Faehnchen + Stueckliste aus Zeichnung          → SSG_FAEHNCHEN_STUECKLISTE
│   └── Din Formate                                    → DIN_FORMATE
└── Tests (alle Testsuiten, einzelne Szenarien, Export CSV/Sivas ALL, KS 2D/3D pruefen)

Doppelklick auf einen Block ruft SSG_BLOCKEDIT auf und verzweigt nach Blockname (Kreisel, Eckrad, VF_/GF_, KF_, Omniflo, GR_, TRO_, CONNECTION_, JAM_ → passender Edit-Befehl).

Vollstaendige, laufend aktualisierte Befehls-/Modulzuordnung: siehe CLAUDE.md (Abschnitt "Modulzuordnung im Menue") und menu/SSG_LIB.mnu.

Lademechanismus

Die Module werden beim Laden des Menues ueber SSG_LIB.mnl initialisiert (ssg-ensure, ueberspringt bereits geladene Module; einzelne Module wie DrawPlanquadrate, DinFormate, Tro_Edit, Jam_Edit werden erst beim ersten Aufruf nachgeladen). Einmalige Einrichtung pro BricsCAD-Installation:

  1. bin/setenv.bat ausfuehren (setzt DXFM_LISP u.a.)
  2. BricsCAD starten
  3. In der Kommandozeile _MENULOAD eingeben, menu/SSG_LIB.mnu auswaehlen

Details und die Core-Ladereihenfolge: siehe CLAUDE.md Abschnitt "Lademechanismus (Lazy Loading via MNL)".

Projektstruktur

dxfmakros/
├── Lisp/                  # AutoLISP-Makros und Kernbibliotheken (Details: Lisp/README.md)
├── bin/                   # Hilfs-Skripte (setenv, start_briscad, run_tests, Python-Wrapper)
├── cfg/                   # Konfigurationsdateien
├── data/                  # JSON-Komponentendaten, DWG-/DXF-Bloecke, Block-Libraries
├── dcl/                   # DCL-Dialogdefinitionen
├── doc/                   # Dokumentation (doc/plan Architektur/Analysen, doc/todo offene Fahrplaene)
├── lang/                  # Benutzertexte de_DE.json / en_GB.json (ssg-text)
├── lib/                   # Python-Skripte (DXF-Bearbeitung, Export)
├── logs/                  # Logdateien und .dbg-Ausgaben (DXFM_LOG) - nicht im Git
├── menu/                  # BricsCAD-Menudefinition (SSG_LIB.mnu, SSG_LIB.mnl)
├── results/               # Ergebnisse / Exporte - nicht im Git
├── tests/                 # Testskripte und Referenzdaten
├── tools/                 # Einmal-Werkzeuge (z.B. Migration der Sprachtexte)
├── LICENSE
├── README.md
└── requirements.txt

Umgebungsvariablen

Werden via bin/setenv.bat gesetzt. Wichtigste:

Variable Beschreibung
DXFMAKRO Wurzelverzeichnis des Projekts
DXFM_LISP Pfad zu den LISP-Dateien (benoetigt fuer ssg-ensure)
DXFM_BLOCKS Pfad zu DWG-Bloecken
DXFM_DATA Datenverzeichnis (JSON, DXF)
DXFM_LOG Log-Verzeichnis
DXFM_DCL Pfad zu DCL-Dialogdateien
DXFM_CFG Konfigurationsverzeichnis
DXFM_LANG Aktive Sprache (de_DE/en_GB), persistiert von SSG_SPRACHE; Default de_DE
DXFM_VF_SPEC Spec-Datei fuer VF_SPEC_BAU (optional)
BRICSCAD Pfad zur BricsCAD-Executable (fuer headless Testlauf)

Tests

Headless-Unit-Tests (file- und zeichnungsfrei):

bin\run_tests.bat --lisp

Python-Tests (in der .venv):

pytest tests/
bin\run_tests.bat --check

Zeichnungs-/Szenario-Tests laufen interaktiv in BricsCAD ueber das Menue Tests bzw. SSG_RUN_ALL_TESTS. Details: doc/LispTests.md, tests/README.md.

Dokumentation

Ausfuehrliche Modul- und Befehlsdokumentation: CLAUDE.md (Projektanweisungen) und Lisp/README.md. Weitere Anwender-/Entwickler-Themen direkt in doc/ (u.a. kommandos.md - Uebersicht aller Befehle und Skripte, variofoerderer.md, vf_linienzug_modus1_anleitung.md, csv-export.md, json-input-lisp.md, faq.md). Architektur-Analysen und Planungsdokumente in doc/plan/ (u.a. translate.md, Entwicklungsplan.md), alle offenen TODOs gesammelt in doc/todo.md (Detail-Fahrplaene in doc/todo/).

Lizenz

MIT License — siehe LICENSE

Autor

Michael Stangl (GitHub: mistamichael)

S
Description
No description provided
Readme MIT 2.8 GiB
Languages
Common Lisp 70.4%
Python 25.7%
Clean 2.5%
Batchfile 0.7%
NewLisp 0.6%
Other 0.1%