2.5 KiB
2.5 KiB
dxfmakros - Projektanweisungen
Projektbeschreibung
AutoLISP-Makros (SSG_LIB) fuer BricsCAD Pro zur automatisierten Erstellung von Foerderanlagen-Layouts (ILS Kreisel, Omniflo, Variofoerderer, Geruest). Ziel ist der Ersatz proprietaerer Tools (Bihler Omniflo, Bihler Geruest, Ruledesigner) durch eigene parametrische Makros.
Technologie-Stack
- CAD-System: BricsCAD Pro (AutoCAD-kompatibel)
- Hauptsprache: AutoLISP (.lsp)
- Hilfssprache: Python (Export-Skripte in
lib/) - Datenformate: DXF/DWG (Bloecke), JSON (Komponentendaten), CSV (Export)
- Dialoge: DCL (Dialog Control Language, in
dcl/) - Menu: BricsCAD .mnu Format (in
menu/)
Projektstruktur
| Verzeichnis | Inhalt |
|---|---|
Blocks/ |
DWG-Bloecke (Vertikalboegen, Stationen, etc.) |
Lisp/ |
AutoLISP-Makros und Kernbibliotheken |
bin/ |
Hilfs-Skripte (setenv, on_start.lsp) |
cfg/ |
Konfigurationsdateien |
data/ |
JSON-Daten, DXF-Quellen, Block-Libraries |
dcl/ |
DCL-Dialogdefinitionen |
doc/ |
Dokumentation, Entwicklungsplan |
lib/ |
Python-Skripte (CSV/Sivas-Export) |
menu/ |
BricsCAD-Menudefinition (SSG_LIB.mnu) |
tests/ |
Testskripte und Referenzdaten |
Ladereihenfolge (wichtig)
on_start.lsp -> ssg_load.lsp -> Bibliotheken in Reihenfolge:
ssg_core.lsp(Kernel: Umgebung, Layer, Block-Ops, Attribute, Fehlerbehandlung)ssg_dbg.lsp(Debug-Logging)ssg_dialog.lsp(DCL-Dialog-Vorlagen)ssg_layer.lsp(Layer-Verwaltung)KreiselInsert.lsp(ILS Kreisel/Eckrad)VarioFoerderer.lsp(Vario-Foerderanlagen)tests.lsp(Python-Integration, Export)OmniModulInsert.lsp(Omniflo-Komponenten)SSG_LIB_Commands.lsp(Menu-Command-Definitionen)
Umgebungsvariablen
Werden via bin/setenv.bat gesetzt. Wichtigste:
DXFMAKRO- ProjektwurzelDXFM_LISP- Pfad zu Lisp-DateienDXFM_BLOCKS- Pfad zu DWG-BloeckenDXFM_DATA- Datenverzeichnis (JSON, DXF)DXFM_LOG- Log-Verzeichnis
Konventionen
- AutoLISP-Funktionsnamen:
ssg-*fuer Kernfunktionen,C:BEFEHLSNAMEfuer User-Commands - Alle Texte in Dateien ohne Umlaute (ae, oe, ue statt ae, oe, ue)
- Bloecke werden als DWG in
Blocks/abgelegt, Block-Libraries als DXF indata/block_libraries/ - Komponentendaten (Masse, Sivas-IDs) liegen als JSON in
data/json/ - Sprache im Code und Kommentaren: Deutsch
Entwicklungsstand
Siehe doc/Entwicklungsplan.md fuer Meilensteinplanung und Aufwandsschaetzung.
Fertig (DONE): ILS Kreisel, ILS Eckrad, ILS Variofoerderer, Omniflo Boegen, Omniflo Weichen.