[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:
@@ -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)
|
||||
|
||||
Reference in New Issue
Block a user