[MERGE] export Konflikt gelöst
This commit is contained in:
+65
-1
@@ -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*
|
||||
@@ -2353,8 +2379,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
|
||||
@@ -2376,7 +2407,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*"))
|
||||
@@ -2404,6 +2444,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
|
||||
)
|
||||
|
||||
@@ -2459,6 +2501,9 @@
|
||||
;; Stand eines frueheren Laufs verwerfen: Baustein-Geometrie der
|
||||
;; Stellvertreter, Anmeldungen fuer reservierte IDs (csv:res-merken),
|
||||
;; geordnete Ketten (csv:kette-von), sepliste-Stellvertreter.
|
||||
(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)
|
||||
(setq *csv-res-sammlung* nil)
|
||||
(setq *csv-ketten* nil)
|
||||
@@ -2489,6 +2534,22 @@
|
||||
;; 4. Restnummerierung + Duplikat-Korrektur. ssg-id-check-all ermittelt
|
||||
;; zuerst das globale Maximum der vergebenen IDs (Phase 0) und nummeriert
|
||||
;; erst danach - neue IDs liegen damit ueber jeder vorhandenen.
|
||||
;; 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
|
||||
;; dabei zuerst das globale Maximum der bereits vergebenen IDs (Phase 0)
|
||||
;; und nummeriert die noch ID-losen Kopien erst danach - sonst bekaemen sie
|
||||
;; IDs, die die Wrapper (VF_n/GF_n/Kreisel) selbst schon tragen.
|
||||
(princ (ssg-textf "exp-check-ids" (list label)))
|
||||
(ssg-id-check-all)
|
||||
;; IDs aller temporaeren Kettenobjekte als reservierte IDs am Wrapper
|
||||
;; ablegen - der naechste Export gibt sie ihnen zurueck (csv:res-merken).
|
||||
@@ -2678,6 +2739,7 @@
|
||||
(csv:hilfskopien-loeschen asmarks "exp-art-ases")
|
||||
(csv:hilfskopien-loeschen element-proxies "exp-art-element")
|
||||
(csv:hilfskopien-loeschen unitmarks "exp-art-einheit")
|
||||
(setq *csv-ausschluss-enames* nil)
|
||||
(princ)
|
||||
)
|
||||
|
||||
@@ -2723,6 +2785,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)
|
||||
@@ -2730,6 +2793,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 ()
|
||||
|
||||
Reference in New Issue
Block a user