Veraltete Angaben in Claude.md berichtigt. Dokumentation erneuert
This commit is contained in:
@@ -19,28 +19,66 @@ AutoLISP-Makros (SSG_LIB) fuer BricsCAD Pro zur automatisierten Erstellung von F
|
|||||||
| Verzeichnis | Inhalt |
|
| Verzeichnis | Inhalt |
|
||||||
|---|---|
|
|---|---|
|
||||||
| `Lisp/` | AutoLISP-Makros und Kernbibliotheken |
|
| `Lisp/` | AutoLISP-Makros und Kernbibliotheken |
|
||||||
| `bin/` | Hilfs-Skripte (setenv, on_start.lsp) |
|
| `bin/` | Hilfs-Skripte (setenv, on_start.lsp, startup.scr) |
|
||||||
| `cfg/` | Konfigurationsdateien |
|
| `cfg/` | Konfigurationsdateien |
|
||||||
| `data/` | JSON-Daten, DXF-Quellen, Block-Libraries |
|
| `data/` | JSON-Daten, DXF-Quellen, Block-Libraries |
|
||||||
| `data/ils/` | DWG-Bloecke fuer ILS-Kreisel/Eckrad (AN8, SP8, AP-Typen) |
|
| `data/ils/` | DWG-Bloecke fuer ILS-Kreisel/Eckrad (AN8, SP8, AP-Typen) |
|
||||||
|
| `data/json/` | Komponentendaten (Masse, Sivas-IDs) |
|
||||||
|
| `data/block_libraries/` | DXF Block-Libraries (ils_library.dxf) |
|
||||||
| `dcl/` | DCL-Dialogdefinitionen |
|
| `dcl/` | DCL-Dialogdefinitionen |
|
||||||
| `doc/` | Dokumentation, Entwicklungsplan |
|
| `doc/` | Dokumentation, Entwicklungsplan |
|
||||||
| `lib/` | Python-Skripte (CSV/Sivas-Export) |
|
| `lib/` | Python-Skripte (DXF-Bearbeitung, Export) |
|
||||||
| `menu/` | BricsCAD-Menudefinition (SSG_LIB.mnu) |
|
| `menu/` | BricsCAD-Menudefinition (SSG_LIB.mnu) |
|
||||||
| `tests/` | Testskripte und Referenzdaten |
|
| `tests/` | Testskripte und Referenzdaten |
|
||||||
|
|
||||||
## Ladereihenfolge (wichtig)
|
## Ladereihenfolge (wichtig)
|
||||||
|
|
||||||
`on_start.lsp` -> `ssg_load.lsp` -> Bibliotheken in Reihenfolge:
|
`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)
|
1. `ssg_core.lsp` (Kernel: Umgebung, Layer, Block-Ops, Attribute, Fehlerbehandlung, Config)
|
||||||
|
2. `ssg_dbg.lsp` (Debug-Logging fuer alle nachfolgenden Module)
|
||||||
3. `ssg_dialog.lsp` (DCL-Dialog-Vorlagen)
|
3. `ssg_dialog.lsp` (DCL-Dialog-Vorlagen)
|
||||||
4. `ssg_layer.lsp` (Layer-Verwaltung)
|
4. `ssg_layer.lsp` (Layer-Verwaltung)
|
||||||
5. `KreiselInsert.lsp` (ILS Kreisel/Eckrad)
|
5. `KreiselInsert.lsp` (ILS Kreisel/Eckrad: Insert, Connect, Redraw, Edit, Labels)
|
||||||
6. `VarioFoerderer.lsp` (Vario-Foerderanlagen)
|
6. `VarioFoerderer.lsp` (Vario-Foerderanlagen)
|
||||||
7. `tests.lsp` (Python-Integration, Export)
|
7. `Gefaellestrecke.lsp` (Gefaelle-Foerderanlage mit festem Neigungswinkel)
|
||||||
8. `OmniModulInsert.lsp` (Omniflo-Komponenten)
|
8. `export.lsp` (JSON-Export, EXPORTSIVAS, EXPORTCSV, OMNI_EXPORT, OMNI_UPDATE_ATTRIBS)
|
||||||
9. `SSG_LIB_Commands.lsp` (Menu-Command-Definitionen)
|
9. `tests.lsp` (Python-Integration, Export)
|
||||||
|
10. `OmniModulInsert.lsp` (Omniflo-Komponenten: Boegen, Weichen, Verbinder, OMNI_EDIT)
|
||||||
|
11. `SSG_LIB_Commands.lsp` (Dummy-Befehle fuer Menue, SSG_BLOCKEDIT Dispatcher)
|
||||||
|
|
||||||
|
Nicht automatisch geladen (manuell/standalone):
|
||||||
|
- `menu-inventory.lsp` (BricsCAD Diagnostik: Menuegruppen, Plugins, LISP-Apps. Befehl: MenuInventory)
|
||||||
|
|
||||||
|
## AutoLISP-Module
|
||||||
|
|
||||||
|
| Datei | Befehle | Beschreibung |
|
||||||
|
|---|---|---|
|
||||||
|
| `ssg_core.lsp` | - | Kernel: ssg-start/ssg-end, ssg-cfg-or, ssg-attrib-read/write, Layer/Block-Ops |
|
||||||
|
| `ssg_dialog.lsp` | - | DCL-Dialog-Vorlagen und Hilfsfunktionen |
|
||||||
|
| `ssg_layer.lsp` | - | Layer-Verwaltung |
|
||||||
|
| `KreiselInsert.lsp` | KreiselInsert, KreiselConnect, KreiselRedraw, KreiselQuick, KreiselEdit, KreiselParams, KreiselLabelSetup, KreiselLabelPos, KreiselLabelHoehe, ILS_Eckrad | ILS Kreisel und Eckrad komplett in AutoLISP |
|
||||||
|
| `VarioFoerderer.lsp` | FOERDERANLAGE | Vario-Foerderanlagen Generator |
|
||||||
|
| `Gefaellestrecke.lsp` | GEFAELLESTRECKE | Gefaelle-Foerderanlage (AUS → Staustrecke skaliert → Separator → EIN) |
|
||||||
|
| `export.lsp` | EXPORTSIVAS, EXPORTCSV, OMNI_EXPORT, OMNI_UPDATE_ATTRIBS | JSON-Sammlung und Export (Python-Aufruf oder LISP-nativ) |
|
||||||
|
| `OmniModulInsert.lsp` | OMNI_LOAD, OMNI_APB_*, OMNI_W*_*, OMNI_AP60/AP110, OMNI_TEF_*, OMNI_TV_*, OMNI_APBW_*, OMNI_EDIT | Omniflo-Komponenten: Boegen, Weichen, Verbinder, Transferwagen, Edit-Dialog |
|
||||||
|
| `SSG_LIB_Commands.lsp` | ILS_BTMT_*, ILS_ETF_*, ILS_K*_*, ILS_GK*_*, SSG_BLOCKEDIT | Dummy-Befehle fuer Menue + Doppelklick/Kontextmenue-Dispatcher |
|
||||||
|
| `menu-inventory.lsp` | MenuInventory | BricsCAD Diagnostik (Menuegruppen, Plugins, Startdateien) |
|
||||||
|
|
||||||
|
## DCL-Dialoge
|
||||||
|
|
||||||
|
| Datei | Verwendet von |
|
||||||
|
|---|---|
|
||||||
|
| `kreisel_edit.dcl` | KreiselEdit (KreiselInsert.lsp) |
|
||||||
|
| `omniflo_boegen.dcl` | OMNI_APB_* (OmniModulInsert.lsp) |
|
||||||
|
| `omniflo_weichen.dcl` | OMNI_W*_* (OmniModulInsert.lsp) |
|
||||||
|
|
||||||
|
## Menue (SSG_LIB.mnu)
|
||||||
|
|
||||||
|
- `***MENUGROUP=SSG_LIB` - Menuegruppenname
|
||||||
|
- `***POP1` bis `***POP4` - Hauptmenues (ILS, Omniflo, Geruest, Export)
|
||||||
|
- `***DOUBLECLICK` - Doppelklick auf INSERT-Bloecke ruft SSG_BLOCKEDIT auf
|
||||||
|
- `***POP501` - Rechtsklick-Kontextmenue (KreiselEdit, OMNI_EDIT, SSG_BLOCKEDIT)
|
||||||
|
|
||||||
## Umgebungsvariablen
|
## Umgebungsvariablen
|
||||||
|
|
||||||
@@ -61,17 +99,6 @@ Werden via `bin/setenv.bat` gesetzt. Wichtigste:
|
|||||||
|
|
||||||
## Python-Bibliotheken
|
## Python-Bibliotheken
|
||||||
|
|
||||||
### PyRx-Module (`lib/elemente/`) - laufen innerhalb BricsCAD via PyRx
|
|
||||||
|
|
||||||
Abhaengigkeiten: PyRx (`PyRx`, `PyDb`, `PyGe`, `PyEd`), `wx` (wxPython fuer Dialoge).
|
|
||||||
|
|
||||||
| Modul | Beschreibung |
|
|
||||||
|---|---|
|
|
||||||
| `elemente/utils.py` | Gemeinsame Hilfsfunktionen: Block-Pfad, Nummernvergabe (`component_next_number`), Layer/Textstil anlegen, DWG-Bloecke laden, Block mit Attributen einfuegen |
|
|
||||||
| `elemente/kreisel.py` | ILS Kreisel komplett in Python. Befehle: `KreiselInsert`, `KreiselConnect`, `KreiselRedraw`, `KreiselQuick`, `KreiselEdit`, `KreiselParams`, `KreiselLabelSetup`, `KreiselLabelPos`, `KreiselLabelHoehe`. Enthaelt `KreiselEditDialog` (wxPython, ersetzt `kreisel_edit.dcl`) |
|
|
||||||
| `elemente/eckrad.py` | ILS Eckrad in Python. Befehle: `ILS_Eckrad`, `EckradEdit`. Enthaelt `EckradEditDialog` (wxPython) |
|
|
||||||
| `elemente/dblclick.py` | Dispatcher `SSG_BLOCKEDIT` fuer Rechtsklick-Bearbeitung. Erkennt KREISEL_*/ECKRAD_* Bloecke und oeffnet passenden wx-Dialog, sonst BEDIT |
|
|
||||||
|
|
||||||
### Standalone-Skripte (`lib/`) - laufen extern mit ezdxf
|
### Standalone-Skripte (`lib/`) - laufen extern mit ezdxf
|
||||||
|
|
||||||
Abhaengigkeiten: `ezdxf`, Standard-Library. Benoetigen Umgebungsvariablen (`DXFM_DATA`, `DXFM_RESULTS`, `DXFM_CFG`).
|
Abhaengigkeiten: `ezdxf`, Standard-Library. Benoetigen Umgebungsvariablen (`DXFM_DATA`, `DXFM_RESULTS`, `DXFM_CFG`).
|
||||||
@@ -84,7 +111,7 @@ Abhaengigkeiten: `ezdxf`, Standard-Library. Benoetigen Umgebungsvariablen (`DXFM
|
|||||||
| `set_attributs.py` | Fuegt ATTDEF-Attribute zu Omniflo-DXF-Dateien hinzu. Liest Konfiguration aus `cfg/attradd.cfg`. Schalter: `--number`, `--dry-run` |
|
| `set_attributs.py` | Fuegt ATTDEF-Attribute zu Omniflo-DXF-Dateien hinzu. Liest Konfiguration aus `cfg/attradd.cfg`. Schalter: `--number`, `--dry-run` |
|
||||||
| `export_sivas.py` | Erzeugt Sivas-Export-CSV mit Summierungszeilen (ILS Automation, Omniflo Sum). Aufruf: `python export_sivas.py <export_raw.json> <data_dir> <output.csv>` |
|
| `export_sivas.py` | Erzeugt Sivas-Export-CSV mit Summierungszeilen (ILS Automation, Omniflo Sum). Aufruf: `python export_sivas.py <export_raw.json> <data_dir> <output.csv>` |
|
||||||
| `export_csv.py` | Erzeugt einfache Item-Liste als CSV (ohne Summierung). Aufruf: `python export_csv.py <export_raw.json> <data_dir> <output.csv>` |
|
| `export_csv.py` | Erzeugt einfache Item-Liste als CSV (ohne Summierung). Aufruf: `python export_csv.py <export_raw.json> <data_dir> <output.csv>` |
|
||||||
| `testpycall.py` | Testskript fuer LISP-Python-Aufruf via CALLPYTHON |
|
| `split_block_library.py` | Teilt `ils_library.dxf` in einzelne DXF-Dateien pro Block auf (mit Abhaengigkeiten). Export-Prefixe: Vario_, Staustrecke_, _3D_AS_, _3D_ES_ |
|
||||||
|
|
||||||
### Typische Verarbeitungskette (Omniflo-DXF)
|
### Typische Verarbeitungskette (Omniflo-DXF)
|
||||||
|
|
||||||
|
|||||||
@@ -975,6 +975,8 @@
|
|||||||
|
|
||||||
;; Block einfuegen mit Drehwinkel aus Dialog
|
;; Block einfuegen mit Drehwinkel aus Dialog
|
||||||
(command "_.INSERT" dxf-pfad pt "" "" angleDeg)
|
(command "_.INSERT" dxf-pfad pt "" "" angleDeg)
|
||||||
|
;; INSERT vollstaendig abschliessen (Attribut-Prompts beenden)
|
||||||
|
(while (> (getvar "CMDACTIVE") 0) (command ""))
|
||||||
|
|
||||||
(setq blockEnt (entlast))
|
(setq blockEnt (entlast))
|
||||||
|
|
||||||
|
|||||||
+4
-3
@@ -22,16 +22,17 @@
|
|||||||
)
|
)
|
||||||
(load (strcat base-path "ssg_core.lsp") "ssg_core.lsp nicht gefunden")
|
(load (strcat base-path "ssg_core.lsp") "ssg_core.lsp nicht gefunden")
|
||||||
(ssg-load-config)
|
(ssg-load-config)
|
||||||
|
(load (strcat base-path "ssg_dbg.lsp") "ssg_dbg.lsp nicht gefunden")
|
||||||
(load (strcat base-path "ssg_dialog.lsp") "ssg_dialog.lsp nicht gefunden")
|
(load (strcat base-path "ssg_dialog.lsp") "ssg_dialog.lsp nicht gefunden")
|
||||||
(load (strcat base-path "ssg_layer.lsp") "ssg_layer.lsp nicht gefunden")
|
(load (strcat base-path "ssg_layer.lsp") "ssg_layer.lsp nicht gefunden")
|
||||||
;; KreiselInsert.lsp entfernt - ersetzt durch Python/PyRx (lib/elemente/kreisel.py, eckrad.py)
|
(load (strcat base-path "KreiselInsert.lsp") "KreiselInsert.lsp nicht gefunden")
|
||||||
(load (strcat base-path "VarioFoerderer.lsp") "VarioFoerderer.lsp nicht gefunden")
|
(load (strcat base-path "VarioFoerderer.lsp") "VarioFoerderer.lsp nicht gefunden")
|
||||||
(load (strcat base-path "Gefaellestrecke.lsp") "Gefaellestrecke.lsp nicht gefunden")
|
(load (strcat base-path "Gefaellestrecke.lsp") "Gefaellestrecke.lsp nicht gefunden")
|
||||||
(load (strcat base-path "export.lsp") "export.lsp nicht gefunden")
|
(load (strcat base-path "export.lsp") "export.lsp nicht gefunden")
|
||||||
(load (strcat base-path "tests.lsp") "tests.lsp nicht gefunden")
|
(load (strcat base-path "tests.lsp") "tests.lsp nicht gefunden")
|
||||||
;; OmniModulInsert.lsp entfernt - ersetzt durch Python/PyRx (lib/elemente/omniflo*.py)
|
(load (strcat base-path "OmniModulInsert.lsp") "OmniModulInsert.lsp nicht gefunden")
|
||||||
(load (strcat base-path "SSG_LIB_Commands.lsp") "SSG_LIB_Commands.lsp nicht gefunden")
|
(load (strcat base-path "SSG_LIB_Commands.lsp") "SSG_LIB_Commands.lsp nicht gefunden")
|
||||||
(prompt "\nSSG-Bibliotheken geladen: ssg_core, ssg_dbg, ssg_dialog, ssg_layer, VarioFoerderer, Gefaellestrecke")
|
(prompt "\nSSG-Bibliotheken geladen: ssg_core, ssg_dbg, ssg_dialog, ssg_layer, KreiselInsert, VarioFoerderer, Gefaellestrecke, export, tests, OmniModulInsert, SSG_LIB_Commands")
|
||||||
(princ)
|
(princ)
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|||||||
+6
-3
@@ -116,9 +116,12 @@
|
|||||||
[Export Sivas]^C^CEXPORTSIVAS
|
[Export Sivas]^C^CEXPORTSIVAS
|
||||||
[<-Export CSV]^C^CEXPORTCSV
|
[<-Export CSV]^C^CEXPORTCSV
|
||||||
|
|
||||||
|
***DOUBLECLICK
|
||||||
|
[INSERT]^C^CSSG_BLOCKEDIT
|
||||||
|
|
||||||
***POP501
|
***POP501
|
||||||
[SSG_LIB Edit Context]
|
[SSG_LIB Edit Context]
|
||||||
[Kreisel bearbeiten]^C^CKreiselEdit
|
[Kreisel bearbeiten]KreiselEdit
|
||||||
[Omniflo Element bearbeiten]^C^COMNI_EDIT
|
[Omniflo Element bearbeiten]OMNI_EDIT
|
||||||
[--]
|
[--]
|
||||||
[SSG Bearbeiten (Auto)]^C^CSSG_BLOCKEDIT
|
[SSG Bearbeiten (Auto)]SSG_BLOCKEDIT
|
||||||
|
|||||||
Reference in New Issue
Block a user