Fix des Redefines im Lisp. Erzeugte lange schleifen. Jeder Block nur einmal laden
This commit is contained in:
@@ -89,6 +89,24 @@ Grundfunktionen für Umgebungssicherung, Benutzerinteraktion, Layer, Blöcke, At
|
||||
| `ssg-insert-block layer farbe pfad pt xs ys rot` | Layer anlegen und Block einfügen |
|
||||
| `ssg-make-block pt rotation ss` | Auswahlsatz als Block definieren und gleich einfügen |
|
||||
|
||||
**ILS-Blockdateien laden (2D/3D):**
|
||||
|
||||
| Funktion | Beschreibung |
|
||||
| --- | --- |
|
||||
| `ssg-ils-dim-aktuell` | Gültige Dimension: `*ssg-ils-dim*` → `DXFM_DIM` → `"3D"` |
|
||||
| `ssg-ils-blockname[-dim] roh [dim]` | Effektiver Blockname mit Suffix `_2D`/`_3D` |
|
||||
| `ssg-ils-block-datei[-dim] roh [dim]` | Pfad zu `data/ils/<blockname>.dwg` (3D-Fallback) |
|
||||
| `ssg-ils-block-laden[-dim] roh [dim]` | Blockdefinition sicherstellen; Rückgabe = effektiver Name |
|
||||
| `ssg-block-refresh-reset roh` | Redefine-Sperre lösen (`nil` = alle Blöcke) → DWG wird neu gelesen |
|
||||
|
||||
Jede Block-DWG wird **einmal pro Zeichnung** aus der Datei neu definiert (Redefine);
|
||||
danach greift eine Sperre (`*ssg-block-refreshed*`, siehe `ssg-block-refreshed-p`/
|
||||
`-set`). Ohne sie las jede einzelne Element-Einfügung die DWG erneut von der Platte
|
||||
und regenerierte alle bereits platzierten Referenzen – bei den großen 3D-Blöcken
|
||||
(`AS_Element_90_links_3D` ~52 MB) waren Tests wie `TEST_MUBEA` dadurch minutenlang
|
||||
beschäftigt. Wurde eine Block-DWG während der laufenden Sitzung geändert, hebt
|
||||
`ssg-block-refresh-reset` die Sperre auf.
|
||||
|
||||
**Attribut-Operationen:**
|
||||
|
||||
| Funktion | Beschreibung |
|
||||
|
||||
Reference in New Issue
Block a user