[CHANGE] Sivas Export schaut nun nur noch auf die kommaseparierte Liste im Attribut ARTINR und fügt die Artikelnummern in die Export-Liste ein; [ADD] Menü und dwg für Omniflo Ladeschleifen

This commit is contained in:
Simon Hensch
2026-09-28 13:53:46 +02:00
parent 5a13595289
commit dabf9e4f8a
18 changed files with 663 additions and 385 deletions
+56 -1
View File
@@ -104,6 +104,32 @@
(if (car (atoms-family 1 '("DBG-SCHALTER-SET")))
(dbg-schalter-set "csv_leave_proxies" (if an 1 0))))
;; --- Bloecke auf gefrorenen Layern vom Export ausschliessen ---
;; Standard an (T). Nur GEFRORENE Layer zaehlen (ssg-ent-layer-gefroren-p,
;; ssg_layer.lsp) - ausgeschaltete Layer werden weiter exportiert. Bedienbar
;; im Dialog CSV_EXPORT_KONFIG. Wirkt in csv:collect-export-blocks auf den
;; Block selbst UND - ueber *csv-ausschluss-enames* - auf die Hilfsobjekte
;; (Separator-/Element-Kopien, Einheiten-/AS-ES-Marker) eines gefrorenen
;; VF_n/GF_n-Wrappers, die auf eigenen Layern liegen.
(if (not (boundp '*csv-gefrorene-ausschliessen*)) (setq *csv-gefrorene-ausschliessen* T))
(defun csv:gefrorene-ausschliessen-p () (if *csv-gefrorene-ausschliessen* T nil))
(defun csv:gefrorene-ausschliessen-setzen (an)
(setq *csv-gefrorene-ausschliessen* (if an T nil)))
;; Hilfsobjekte (car eines Records), deren Wrapper (nth 1) gefroren-fn
;; erfuellt. records = Record-Listen der Form (hilfsobjekt wrapper ...), wie
;; sie csv:sep-proxies-erzeugen, csv:element-proxies-erzeugen,
;; csv:asmark-aktualisieren und csv:ketten-verarbeiten liefern.
;; gefroren-fn = Praedikat auf den Wrapper. Reine Listenlogik, file-frei
;; testbar (tests/test_unit.lsp).
(defun csv:hilfskopien-ausschluss (records gefroren-fn / result)
(foreach rec records
(if (and (car rec) (nth 1 rec) (apply gefroren-fn (list (nth 1 rec))))
(setq result (cons (car rec) result))))
(reverse result)
)
(setq *csv-ausschluss-enames* nil)
;; --- Feste Datei-/Skriptnamen dieses Moduls (keine Config, direkt im Code) ---
(setq *export-filenames*
@@ -2463,8 +2489,13 @@
;; GeruestInsert.lsp). Wie BTMT eigenstaendig und von keinem anderen
;; Element mitgezaehlt - export_csv.py UND export_sivas.py fuehren sie
;; beide als eigene TeileArt-Zeilen.
;; Bloecke auf GEFRORENEN Layern (und die Hilfsobjekte gefrorener VF_n/GF_n)
;; werden ausgelassen, solange *csv-gefrorene-ausschliessen* an ist (Standard,
;; Dialog CSV_EXPORT_KONFIG); ausgeschaltete Layer zaehlen nicht als gefroren.
;; Gibt Auswahlsatz zurueck oder nil.
(defun csv:collect-export-blocks ( / ss-all ss-out i ename ed bname ist-nested-element)
(defun csv:collect-export-blocks ( / ss-all ss-out i ename ed bname ist-nested-element
gefroren n-gefroren)
(setq n-gefroren 0)
(setq ss-all (ssget "X" (list (cons 0 "INSERT"))))
(if (null ss-all) (setq ss-out nil)
(progn
@@ -2486,7 +2517,16 @@
(setq ist-nested-element
(and (not (csv:export-alle-elemente-p))
(wcmatch bname (csv:pattern-nested-element))))
;; Gefrorener Layer (Schalter *csv-gefrorene-ausschliessen*): der
;; Block selbst liegt darauf, oder er ist Hilfsobjekt eines
;; gefrorenen VF_n/GF_n (*csv-ausschluss-enames*, csv:export-vorbereiten).
(setq gefroren
(and (csv:gefrorene-ausschliessen-p)
(or (ssg-ent-layer-gefroren-p ename)
(member ename *csv-ausschluss-enames*))))
(if gefroren (setq n-gefroren (1+ n-gefroren)))
(if (and (not ist-nested-element)
(not gefroren)
(or
(wcmatch bname (export:pattern "pattern_kreisel" "KR_*,KREISEL_*,ECKRAD_*"))
(wcmatch (strcase bname) (export:pattern "pattern_gerade" "AP110*,AP_110*"))
@@ -2514,6 +2554,8 @@
(if (= (sslength ss-out) 0) (setq ss-out nil))
)
)
(if (> n-gefroren 0)
(princ (ssg-textf "exp-gefroren-ausgelassen" (list (itoa n-gefroren)))))
ss-out
)
@@ -2555,6 +2597,7 @@
;; Kopien - Separatoren UND AS/ES-Schleuselemente (der Aufrufer entfernt sie am
;; Ende wieder). label dient nur den Meldungen.
(defun csv:export-vorbereiten (label / sep-proxies asmarks element-proxies unitmarks)
(setq *csv-ausschluss-enames* nil)
;; Baustein-Geometrie der Stellvertreter (Separator-Kopie, AS-/ES-Marker)
;; wird beim Erzeugen neu gemerkt - Stand eines frueheren Laufs verwerfen.
(setq *csv-baustein-by-handle* nil)
@@ -2580,6 +2623,15 @@
;; alle neuen Export-Objekte jeder Kette von AS nach ES aufsteigend
;; nummerieren - VOR ssg-id-check-all, siehe csv:ketten-verarbeiten.
(setq unitmarks (csv:ketten-verarbeiten sep-proxies element-proxies asmarks))
;; Hilfsobjekte gefrorener Wrapper merken: sie liegen auf eigenen Layern,
;; der Wrapper-Layer allein haelt sie daher nicht aus dem Export heraus
;; (Auswertung in csv:collect-export-blocks). Erzeugt werden sie trotzdem,
;; damit IDs und AS/ES-Marker ueber Laeufe stabil bleiben.
(setq *csv-ausschluss-enames*
(if (csv:gefrorene-ausschliessen-p)
(csv:hilfskopien-ausschluss
(append sep-proxies asmarks element-proxies unitmarks)
'ssg-ent-layer-gefroren-p)))
;; Vor dem Export: IDs aller Bloecke sicherstellen und Duplikate korrigieren.
;; Erst hier - also erst nachdem ALLE Kopien aus allen Wrapper-Bloecken
;; stehen - wird ueberhaupt eine ID vergeben. ssg-id-check-all ermittelt
@@ -2786,6 +2838,7 @@
(csv:sep-proxies-loeschen sep-proxies)
(csv:hilfskopien-loeschen element-proxies "exp-art-element")
(csv:hilfskopien-loeschen unitmarks "exp-art-einheit")
(setq *csv-ausschluss-enames* nil)
(princ)
)
@@ -2831,6 +2884,7 @@
(if eintrag (setq idx eintrag))
(set_tile "modus" (itoa idx))
(set_tile "hilfskopien_behalten" (if (csv:hilfskopien-behalten-p) "1" "0"))
(set_tile "gefrorene_ausschliessen" (if (csv:gefrorene-ausschliessen-p) "1" "0"))
)
(defun csv:export-konfig-accept ( / idx modus)
@@ -2838,6 +2892,7 @@
(setq modus (car (nth idx *csv-export-konfig-modi*)))
(if modus (csv:export-modus-setzen modus))
(csv:hilfskopien-behalten-setzen (= (get_tile "hilfskopien_behalten") "1"))
(csv:gefrorene-ausschliessen-setzen (= (get_tile "gefrorene_ausschliessen") "1"))
)
(defun c:CSV_EXPORT_KONFIG ()