# dxfmakros AutoLISP-Makros (SSG_LIB) fuer BricsCAD Pro zur automatisierten Erstellung von Foerderanlagen-Layouts (ILS Kreisel, Omniflo, VarioFoerderer, Gefaellestrecke, Geruest). ## Menustruktur (SSG_LIB) ``` SSG_LIB ├── ILS │ ├── Kreisel-Module │ │ ├── Einfuegen → KreiselInsert │ │ ├── Verbinden → KreiselConnect │ │ ├── Bearbeiten → KreiselEdit │ │ └── Eckrad → ILS_Eckrad │ ├── Zusatzmodul │ │ ├── BTMT-Beladung → ILS_BTMT_Beladung │ │ ├── BTMT-Entladung → ILS_BTMT_Entladung │ │ ├── Scanner einfuegen → ILS_SCANNER_INSERT │ │ └── Separator einfuegen → ILS_SEPARATOR_INSERT │ ├── Foerderer │ │ ├── Standard → StandardVarioFoerderer / StandardVarioFoerderer3D │ │ ├── Etage → EtageVarioFoerderer / EtageVarioFoerderer3D │ │ ├── Streckengruppe (Linienzug) → LinienzugVarioFoerdererManuell / -Zielhoehe / -Stueckweise │ │ └── Vario_Kette_Merge / VARIOFOERDERER_NACHRUESTEN │ └── Gefaellestrecke │ ├── einfach → GEFAELLESTRECKE_EINFACH │ ├── aus 3D-Linie → GEFAELLESTRECKE_3DLINIE │ └── aus Linienzug → GEFAELLESTRECKE_LINIENZUG ├── Omniflo │ ├── Boegen APB110/APB60 │ ├── Aluprofil Gerade (AP60/AP110/APG110) │ ├── Weichen (90/45/Parallel/Weichenkoerper/Weichenkombinationen) │ ├── TEF Elemente, Anbaugruppen, Verbinder, Boegen fuer Weichen │ ├── Element bearbeiten → OMNI_EDIT │ └── Ladeschleifen (AP110) → OMNI_LADESCHLEIFE_AP110 ├── Geruest │ ├── Rohr-Geruest-Traeger → GERUEST_TRAEGER │ ├── Saeulen / Rohrabhaenger / Wandbefestigung → GERUEST │ └── Funktionen ▸ Traeger beschriften → GERUEST_TRAEGER_BESCHRIFTEN ├── SPS │ ├── TRO (Marker einfuegen/bearbeiten) → TRO_INSERT / TRO_EDIT │ └── Connections (einfuegen/bearbeiten, Eingang/Ausgang) → CONNECTION_INSERT / CONNECTION_EDIT / ILS_EINGANG_INSERT / ILS_AUSGANG_INSERT ├── Export │ ├── Export Sivas → EXPORTSIVAS │ └── Export CSV → EXPORTCSV ├── Konfiguration │ ├── Umschalten 2D und 3D → SSG_DIM_SWITCH │ ├── Sprache → SSG_SPRACHE │ └── Planquadrate an/aus → PLANQUADRATE_TOGGLE ├── Werkzeuge │ ├── Bloecke zaehlen/loeschen, Attribute ersetzen → ssg_blocktools │ └── Text ersetzen/parallel/Hoehe/Stil → ssg_texttools └── Tests (Testsuiten ausfuehren und exportieren) ``` Vollstaendige, laufend aktualisierte Befehls-/Modulzuordnung: siehe `CLAUDE.md` (Abschnitt "Modulzuordnung im Menue") und `menu/SSG_LIB.mnu`. ## Lademechanismus Module werden per Lazy-Loading ueber das Menuesystem geladen (`ssg-ensure` in `SSG_LIB.mnl`). 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 ```text dxfmakros/ ├── Lisp/ # AutoLISP-Makros und Kernbibliotheken (Details: Lisp/README.md) ├── bin/ # Hilfs-Skripte (setenv.bat, start_briscad.bat) ├── cfg/ # Konfigurationsdateien ├── data/ # JSON-Daten, DXF-Quellen, Block-Libraries - nicht im Git ├── dcl/ # DCL-Dialogdefinitionen ├── doc/ # Dokumentation, Entwicklungsplan ├── lib/ # Python-Skripte (DXF-Bearbeitung, Export) ├── log/ # Logdateien - nicht im Git ├── menu/ # BricsCAD-Menudefinition (SSG_LIB.mnu, SSG_LIB.mnl) ├── results/ # Ergebnisse / Exporte - nicht im Git ├── tests/ # Testskripte und Referenzdaten ├── 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): ```bat bin\run_tests.bat --lisp ``` 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 Themen in `doc/` (u.a. `variofoerderer.md`, `translate.md`, `csv-export.md`, `Entwicklungsplan.md`, `faq.md`, `kommandos.md`). ## Lizenz MIT License — siehe [LICENSE](LICENSE) ## Autor Michael Stangl (GitHub: mistamichael)