[FIX] Separator/Scanner erhalten ID sofort beim Insert (wie Kreisel/GF/VF)

ssg-id-generate wird bereits ueberall sonst direkt beim Einfuegen
aufgerufen (KreiselInsert.lsp, Gefaellestrecke.lsp, vf_core.lsp,
vf_linienzug.lsp, OmniModulInsert.lsp, TEFInsert.lsp). Separator/Scanner
waren die einzige Ausnahme: weder ils-insert-sensor (Produktion) noch
mubea:build-separator-one (Testharness) riefen es auf - ihre ID kam
bisher ausschliesslich aus dem einmaligen ssg-id-check-all-Durchlauf vor
dem Export. Das war vermutlich die Ursache fuer die beobachtete doppelte
ID (Kreisel und Separator teilten sich "0003").

- Lisp/SSG_LIB_Commands.lsp (ils-insert-sensor) und tests/test_mubea.lsp
  (mubea:build-separator-one) rufen jetzt ssg-id-generate direkt nach dem
  INSERT auf.
- ssg_id.lsp: ssg-id-set-and-verify prueft nach jedem ssg-attrib-set-on
  sofort zurueck und warnt laut, falls das Schreiben (z.B. mangels
  ID-ATTDEF an der Instanz) stillschweigend fehlschlaegt. Ausfuehrliches
  dbg-Logging (ssg-id-collect-blocks/-max/-generate/-check-all/-set-and-
  verify) fuer die weitere Diagnose.
- ssg-id-check-all bleibt als Sicherheitsnetz fuer Faelle, die kein
  Insert-Hook abfangen kann (Copy/Array/Spiegeln in BricsCAD, Drawing-
  Merges).

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
2026-07-29 11:47:14 +02:00
parent f6461aab0f
commit f2b72df6e0
3 changed files with 98 additions and 12 deletions
+9
View File
@@ -46,6 +46,15 @@
)
(setq pt res)
(command "_.INSERT" pfad pt "" "" pause)
;; Sofort beim Einfuegen eine eindeutige ID vergeben - wie bei allen
;; anderen Bau-Routinen (Kreisel/GF/VF/Omniflo, siehe ssg-id-generate-
;; Aufrufe dort). Separator/Scanner waren bisher die einzige Ausnahme
;; und bekamen ihre ID erst nachtraeglich, gesammelt fuer alle Bloecke
;; auf einmal, durch ssg-id-check-all vor dem naechsten Export -
;; das ist der Fall, den ssg-id-check-all als Sicherheitsnetz
;; eigentlich nur fuer Kopier-/Array-/Spiegel-Faelle abfangen soll.
(if (atoms-family 1 '("ssg-id-generate"))
(ssg-id-generate (entlast)))
(setq n (1+ n))
)
(setvar "ATTREQ" oldattreq)