5aed90dd56
doc/todo/: TODO-plan-vf-interactive.md -> plan-vf-interactive.md, TODO-modus2-achsenweise-bilanz.md -> modus2-achsenweise-bilanz.md (offene Fahrplaene/TODOs). doc/plan/: KS-Frame-Architektur.md, vf-parameter-struct-analyse.md, translate.md, Entwicklungsplan.md (Architektur-Analysen und Planungsdokumente, kein Anwender-Material). Alle internen Verweise (CLAUDE.md, Lisp/README.md, README.md, doc/variofoerderer.md, Lisp/vf_spec.lsp, lib/dxf_vf_abbild.py, lib/vf_spec_export.py, tests/test_hm_recformat.lsp, tests/test_vf_geometrie.py, tests/test_vf_headless_statisch.py) auf die neuen Pfade angepasst. Reine Pfad-Updates in Kommentaren/Docstrings, keine funktionale Aenderung - Python-Syntax nach dem Umbau geprueft. Anwender-/Entwickler-Referenzdoku (faq.md, kommandos.md, tools.md, dbg2lsp.md, csv-export.md, json-input-lisp.md, lisp_methods.md, LispTests.md, variofoerderer.md, vf_linienzug_modus1_anleitung.md) bleibt direkt in doc/. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
126 lines
5.7 KiB
Markdown
126 lines
5.7 KiB
Markdown
# 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 (doc/plan Architektur/Analysen, doc/todo offene Fahrplaene)
|
|
├── 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 Anwender-/Entwickler-Themen direkt in `doc/` (u.a. `variofoerderer.md`, `csv-export.md`, `faq.md`, `kommandos.md`). Architektur-Analysen und Planungsdokumente in `doc/plan/` (u.a. `translate.md`, `Entwicklungsplan.md`), offene Fahrplaene/TODOs in `doc/todo/`.
|
|
|
|
## Lizenz
|
|
|
|
MIT License — siehe [LICENSE](LICENSE)
|
|
|
|
## Autor
|
|
|
|
Michael Stangl (GitHub: mistamichael)
|