Files
dxfmakros/CLAUDE.md
T

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:

  1. ssg_core.lsp (Kernel: Umgebung, Layer, Block-Ops, Attribute, Fehlerbehandlung)
  2. ssg_dbg.lsp (Debug-Logging)
  3. ssg_dialog.lsp (DCL-Dialog-Vorlagen)
  4. ssg_layer.lsp (Layer-Verwaltung)
  5. KreiselInsert.lsp (ILS Kreisel/Eckrad)
  6. VarioFoerderer.lsp (Vario-Foerderanlagen)
  7. tests.lsp (Python-Integration, Export)
  8. OmniModulInsert.lsp (Omniflo-Komponenten)
  9. SSG_LIB_Commands.lsp (Menu-Command-Definitionen)

Umgebungsvariablen

Werden via bin/setenv.bat gesetzt. Wichtigste:

  • DXFMAKRO - Projektwurzel
  • DXFM_LISP - Pfad zu Lisp-Dateien
  • DXFM_BLOCKS - Pfad zu DWG-Bloecken
  • DXFM_DATA - Datenverzeichnis (JSON, DXF)
  • DXFM_LOG - Log-Verzeichnis

Konventionen

  • AutoLISP-Funktionsnamen: ssg-* fuer Kernfunktionen, C:BEFEHLSNAME fuer 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 in data/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.