Planquadrate unter der Anlage zeichnen.
This commit is contained in:
@@ -77,7 +77,7 @@ Die `start_briscad.bat` ruft `setenv.bat` auf und startet BricsCAD.
|
||||
| Omniflo (komplett) | `OmniModulInsert` | OMNI_APB_*, OMNI_W*_*, OMNI_AP*, OMNI_TEF_*, OMNI_TV_*, OMNI_EDIT |
|
||||
| Connections | `Connection_Edit` + `SSG_LIB_Commands` | CONNECTION_INSERT, CONNECTION_EDIT, ILS_EINGANG_INSERT, ILS_AUSGANG_INSERT |
|
||||
| Export | `export` | EXPORTSIVAS, EXPORTCSV, CALLPYTHON |
|
||||
| Konfiguration | `SSG_LIB_Commands` | SSG_DIM_SWITCH, SSG_SPRACHE |
|
||||
| Konfiguration | `SSG_LIB_Commands` + `DrawPlanquadrate` | SSG_DIM_SWITCH, SSG_SPRACHE, PLANQUADRATE_TOGGLE (DRAW_PLANQUADRATE/DELETE_PLANQUADRATE) |
|
||||
| Doppelklick/Kontextmenue | `SSG_LIB_Commands` | SSG_BLOCKEDIT (dispatcht Kreisel->KreiselEdit, Omniflo->OMNI_EDIT, GF_*->GEFAELLESTRECKE_EDIT, VF_*->VARIOFOERDERER_EDIT) |
|
||||
|
||||
### Entfernte Legacy-Dateien
|
||||
@@ -107,6 +107,7 @@ Detaillierte Dokumentation aller Funktionen und Befehle: siehe `Lisp/README.md`.
|
||||
| `SSG_LIB_Commands.lsp` | ILS_BTMT_Beladung, ILS_BTMT_Entladung, ILS_SCANNER_INSERT, ILS_SEPARATOR_INSERT, ILS_EINGANG_INSERT, ILS_AUSGANG_INSERT, ILS_ETF_*, ILS_GK*_*, SSG_BLOCKEDIT, SSG_DIM_SWITCH, SSG_SPRACHE | BTMT Be-/Entladung (`ils-insert-station`: wiederholtes Einfuegen von `BTMT-Beladung` bzw. `SC_Entladung`, Drehung interaktiv, Layer aus `LAYER`-Attribut, Dimension via `ssg-ils-block-laden`) + Sensoren (`ils-insert-sensor`) + Eingang-/Ausgang-Symbol (frei platzierbar wie BTMT Be-/Entladung, ueber `ils-insert-station` mit den Rohnamen `Eingang`/`Ausgang`, Bloecke `Eingang_<DIM>.dwg`/`Ausgang_<DIM>.dwg` in data/ils) + Dummy-Befehle fuer Menue + Doppelklick/Kontextmenue-Dispatcher + Konfiguration (2D/3D, Sprache) |
|
||||
| `Tro_Edit.lsp` | TRO_INSERT, TRO_EDIT | TRO-Marker (Block `TRO_SYM_<Typ>`) fuer sps_skel (lib/tro_annotate.py): TRO_INSERT fuegt eine bestehende Blockdefinition an einem gewaehlten Punkt ein und setzt ID/TYPE (bricht ab, wenn der Typ noch keine Blockdefinition in der Zeichnung hat - die entsteht nur ueber tro_annotate.py); TRO_EDIT aendert ID/TYPE eines bestehenden Markers per Dialog. Typliste aus `tro_types.lsp` (von `tro_annotate.py --emit-lisp` nach DXFM_LISP geschrieben). Der Dispatcher SSG_BLOCKEDIT leitet Blocknamen `TRO_*` zu TRO_EDIT. |
|
||||
| `menu-inventory.lsp` | MenuInventory | BricsCAD Diagnostik (Menuegruppen, Plugins, Startdateien) |
|
||||
| `DrawPlanquadrate.lsp` | DRAW_PLANQUADRATE, DELETE_PLANQUADRATE, PLANQUADRATE_TOGGLE | Zeichnet auf Z=0 ein Planquadrat-Linienraster (senkrecht/waagerecht) ueber die aktuellen Zeichnungs-Extents, im Abstand/Zaehlschema der aktiven `[Planquadrate]`-Konfiguration aus `cfg/export.cfg` (dieselbe Quelle wie `lib/export_planquadrat.py` fuer den CSV-Export) - Ursprung (Index 1) aus `x_origin`/`y_origin` bzw. Fallback EXTMIN. Spalten-/Zeilenzahl wird IMMER aufgerundet auf volle Rasterschritte (nicht auf die exakte Extent-Grenze), damit alle senkrechten Linien auf der letzten waagerechten enden und umgekehrt - das Raster bildet immer ein geschlossenes Rechteck. Zaehlung (alphabetisch/numerisch je Achse) als Text am linken/unteren Rand. Das fertige Raster (Linien+Texte) wird per `_.-BLOCK`/`_.INSERT` zu einem einzigen Block `ZZ_PLANQUADRATE` bei (0,0,0) zusammengefasst. Layer aus `cfg/layer.cfg` (`[allgemein]` Key `planquadrate`, Fallback `ZZ_Planquadrate`). DRAW_PLANQUADRATE entfernt vor dem Neuaufbau zuerst einen evtl. vorhandenen Block (`plq-block-entfernen`: INSERTs loeschen + `_-PURGE _B`), DELETE_PLANQUADRATE ruft nur diese Entfernung auf. PLANQUADRATE_TOGGLE ("Planquadrate an/aus", Menue: Konfiguration) prueft per `tblsearch`/`ssget "X"`, ob der Block existiert, und dispatcht auf Zeichnen bzw. Loeschen. Lazy geladen ueber `(ssg-ensure "DrawPlanquadrate")`, nicht in der Core-Ladereihenfolge. |
|
||||
|
||||
## DCL-Dialoge
|
||||
|
||||
|
||||
@@ -0,0 +1,276 @@
|
||||
;; ============================================================
|
||||
;; DrawPlanquadrate.lsp - Planquadrat-Raster in die Zeichnung zeichnen
|
||||
;;
|
||||
;; Zeichnet auf Hoehe Z=0 senkrechte Linien (konstantes X) und waagerechte
|
||||
;; Linien (konstantes Y) im Abstand der aktiven Planquadrat-Konfiguration aus
|
||||
;; cfg/export.cfg ([Planquadrate] section=... -> [Planquadrate_AN] o.ae.,
|
||||
;; siehe export:cfg/export:load-cfg in export.lsp) - dieselbe Konfiguration,
|
||||
;; nach der export_planquadrat.py (lib/) das Planquadrat eines Bauteils fuer
|
||||
;; den CSV-Export berechnet. Am linken Rand steht je Zeile, am unteren Rand
|
||||
;; je Spalte die zugehoerige Zaehlung (alphabetisch oder numerisch, je nach
|
||||
;; x_description/y_description).
|
||||
;;
|
||||
;; Bereich: die aktuellen Zeichnungs-Extents (EXTMIN/EXTMAX), aber IMMER auf
|
||||
;; ein ganzzahliges Vielfaches der Schrittweite ab dem Ursprung aufgerundet -
|
||||
;; das Raster bildet also stets ein GESCHLOSSENES Rechteck: jede senkrechte
|
||||
;; Linie endet exakt auf der letzten waagerechten und umgekehrt (kein
|
||||
;; "Ueberstand" einzelner Linien ueber die letzte volle Zeile/Spalte hinaus).
|
||||
;; x_origin/y_origin aus [Planquadrate] legen die Koordinate von Index 1 fest
|
||||
;; (wie im CSV-Export); sind sie leer, faellt der Ursprung auf EXTMIN zurueck
|
||||
;; (= kleinstes X/Y der Zeichnung, analog zur Auto-Ermittlung in
|
||||
;; export_planquadrat.resolve_origins).
|
||||
;;
|
||||
;; Das fertige Raster (Linien + Beschriftungstexte) wird zu EINEM Block
|
||||
;; (*plq-blockname*) zusammengefasst und bei (0,0,0) eingefuegt - dadurch
|
||||
;; laesst sich das gesamte Planquadrat mit einem Klick auswaehlen/loeschen.
|
||||
;; Bei jedem Aufruf wird ein evtl. vorhandener Planquadrat-Block zuerst
|
||||
;; entfernt (DELETE_PLANQUADRATE-Logik) und danach neu gezeichnet -
|
||||
;; wiederholte Aufrufe erzeugen also keine Dubletten.
|
||||
;;
|
||||
;; Befehle:
|
||||
;; DRAW_PLANQUADRATE - Raster zeichnen/neu aufbauen
|
||||
;; DELETE_PLANQUADRATE - Raster-Block entfernen (inkl. Blockdefinition)
|
||||
;; PLANQUADRATE_TOGGLE - "Planquadrate an/aus": zeichnet, falls noch kein
|
||||
;; Block in der Zeichnung ist, sonst loescht es ihn
|
||||
;; (Menue: Konfiguration)
|
||||
;; ============================================================
|
||||
|
||||
(vl-load-com)
|
||||
|
||||
;; Name der zusammenfassenden Blockdefinition. Fest (keine laufende Nummer):
|
||||
;; es gibt je Zeichnung immer hoechstens ein Planquadrat-Raster.
|
||||
(setq *plq-blockname* "ZZ_PLANQUADRATE")
|
||||
|
||||
;; --- Layer fuer das Planquadrat-Raster ---
|
||||
;; cfg/layer.cfg [allgemein] Key "planquadrate"; ohne Eintrag Fallback-Name.
|
||||
(defun plq-layer ( / lay)
|
||||
(setq lay (ssg-layer-anlegen "planquadrate" T))
|
||||
(if (null lay)
|
||||
(progn
|
||||
(setq lay "ZZ_Planquadrate")
|
||||
(ssg-make-layer lay "8" T)
|
||||
)
|
||||
)
|
||||
lay
|
||||
)
|
||||
|
||||
;; Alle INSERTs des Planquadrat-Blocks in der Zeichnung loeschen und die
|
||||
;; Blockdefinition entfernen (PURGE) - macht die Zeichnung frei fuer einen
|
||||
;; sauberen Neuaufbau bzw. ist die komplette Logik von DELETE_PLANQUADRATE.
|
||||
;; Rueckgabe: Anzahl geloeschter INSERTs.
|
||||
(defun plq-block-entfernen ( / ss i n)
|
||||
(setq n 0)
|
||||
(if (tblsearch "BLOCK" *plq-blockname*)
|
||||
(progn
|
||||
(setq ss (ssget "X" (list (cons 0 "INSERT") (cons 2 *plq-blockname*))))
|
||||
(if ss
|
||||
(progn
|
||||
(setq i 0)
|
||||
(while (< i (sslength ss))
|
||||
(entdel (ssname ss i))
|
||||
(setq i (1+ i))
|
||||
(setq n (1+ n))
|
||||
)
|
||||
)
|
||||
)
|
||||
(command "_-PURGE" "_B" *plq-blockname* "_N")
|
||||
)
|
||||
)
|
||||
n
|
||||
)
|
||||
|
||||
;; 1-basierten Index in eine Buchstaben-Bezeichnung wandeln (1=A, 26=Z,
|
||||
;; 27=AA, ... wie Excel-Spalten) - Gegenstueck zu _index_to_alpha in
|
||||
;; lib/export_planquadrat.py.
|
||||
(defun plq-index-alpha (n / result rest)
|
||||
(setq result "")
|
||||
(while (> n 0)
|
||||
(setq rest (rem (1- n) 26))
|
||||
(setq result (strcat (chr (+ 65 rest)) result))
|
||||
(setq n (/ (- n 1 rest) 26))
|
||||
)
|
||||
result
|
||||
)
|
||||
|
||||
;; Label fuer einen 1-basierten Index, alpha-p = T -> Buchstaben, sonst Zahl.
|
||||
(defun plq-label (n alpha-p)
|
||||
(if alpha-p (plq-index-alpha n) (itoa n))
|
||||
)
|
||||
|
||||
;; Inline-Kommentar (" # ...") von einem Config-Wert abschneiden. Der
|
||||
;; gemeinsame INI-Parser (ssg-ini-get/ssg-load-ini, ssg_core.lsp) behandelt
|
||||
;; nur ganze Zeilen ab "#" als Kommentar - die [Planquadrate_*]-Sektionen in
|
||||
;; cfg/export.cfg nutzen aber INLINE-Kommentare hinter x_description/
|
||||
;; y_description (z.B. "alphabetisch # Buchstaben, ..."), analog zu
|
||||
;; lib/export_blockpatterns.py (configparser mit inline_comment_prefixes).
|
||||
(defun plq-strip-comment (s / pos)
|
||||
(setq pos (vl-string-search "#" s))
|
||||
(if pos (vl-string-trim " \t" (substr s 1 pos)) (vl-string-trim " \t" s))
|
||||
)
|
||||
|
||||
;; Zeichnet eine Linie auf dem aktuellen Layer.
|
||||
(defun plq-line (p1 p2)
|
||||
(entmake (list
|
||||
'(0 . "LINE")
|
||||
(cons 10 p1)
|
||||
(cons 11 p2)
|
||||
))
|
||||
)
|
||||
|
||||
;; Zeichnet einen zentrierten Text an insertPoint.
|
||||
(defun plq-text (str insertPoint hoehe)
|
||||
(entmake (list
|
||||
'(0 . "TEXT")
|
||||
(cons 10 insertPoint)
|
||||
(cons 40 hoehe)
|
||||
(cons 1 str)
|
||||
(cons 50 0.0)
|
||||
'(72 . 1)
|
||||
'(73 . 2)
|
||||
(cons 11 insertPoint)
|
||||
))
|
||||
)
|
||||
|
||||
;; ============================================================
|
||||
;; DRAW_PLANQUADRATE - Raster zeichnen/neu aufbauen
|
||||
;; ============================================================
|
||||
(defun c:DRAW_PLANQUADRATE ( / section x-step x-alpha y-step y-alpha
|
||||
ext-min ext-max x-origin y-origin
|
||||
x0 y0 x1 y1 lay hoehe n-x n-y i x y
|
||||
label textabstand lastEnt ss e)
|
||||
(ssg-start "DRAW_PLANQUADRATE" '(("OSMODE")))
|
||||
(setvar "OSMODE" 0)
|
||||
|
||||
(if (null *export-cfg*) (export:load-cfg))
|
||||
(setq section (export:cfg "Planquadrate" "section" ""))
|
||||
|
||||
(if (or (null section) (= section ""))
|
||||
(princ (ssg-text "plq-keine-konfiguration"))
|
||||
(progn
|
||||
(setq x-step (* 1000.0 (atof (export:cfg section "x_step" "1"))))
|
||||
(setq y-step (* 1000.0 (atof (export:cfg section "y_step" "1"))))
|
||||
(setq x-alpha (wcmatch (strcase (substr (plq-strip-comment (export:cfg section "x_description" "numerisch")) 1 5)) "ALPHA*"))
|
||||
(setq y-alpha (wcmatch (strcase (substr (plq-strip-comment (export:cfg section "y_description" "numerisch")) 1 5)) "ALPHA*"))
|
||||
|
||||
(if (or (<= x-step 0.0) (<= y-step 0.0))
|
||||
(princ (ssg-text "plq-ungueltige-schrittweite"))
|
||||
(progn
|
||||
;; Vorhandenes Raster zuerst entfernen (Block + Definition) -
|
||||
;; wiederholte Aufrufe erzeugen so keine Dubletten.
|
||||
(plq-block-entfernen)
|
||||
|
||||
(setq ext-min (getvar "EXTMIN"))
|
||||
(setq ext-max (getvar "EXTMAX"))
|
||||
|
||||
(setq x-origin (export:cfg "Planquadrate" "x_origin" ""))
|
||||
(setq x-origin (if (and x-origin (/= x-origin "")) (* 1000.0 (atof x-origin)) (car ext-min)))
|
||||
(setq y-origin (export:cfg "Planquadrate" "y_origin" ""))
|
||||
(setq y-origin (if (and y-origin (/= y-origin "")) (* 1000.0 (atof y-origin)) (cadr ext-min)))
|
||||
|
||||
(setq x0 x-origin)
|
||||
(setq y0 y-origin)
|
||||
|
||||
;; Anzahl Spalten/Zeilen: mind. 1, sonst so viele volle Schritte,
|
||||
;; bis die Zeichnungs-Extents (mind.) abgedeckt sind - AUFGERUNDET,
|
||||
;; damit x1/y1 exakt auf einem Rasterschritt liegen. Damit endet
|
||||
;; JEDE senkrechte Linie exakt auf der letzten waagerechten (bei
|
||||
;; y1) und jede waagerechte exakt auf der letzten senkrechten (bei
|
||||
;; x1) - das Raster bildet immer ein geschlossenes Rechteck.
|
||||
(setq n-x (max 1 (fix (+ 0.999999 (/ (- (car ext-max) x0) x-step)))))
|
||||
(setq n-y (max 1 (fix (+ 0.999999 (/ (- (cadr ext-max) y0) y-step)))))
|
||||
|
||||
(setq x1 (+ x0 (* n-x x-step)))
|
||||
(setq y1 (+ y0 (* n-y y-step)))
|
||||
|
||||
(setq lay (plq-layer))
|
||||
|
||||
(setq hoehe (atof (export:cfg "Planquadrate" "text_hoehe_mm" "300")))
|
||||
(setq textabstand (* hoehe 1.5))
|
||||
|
||||
;; Letztes Entity VOR dem Zeichnen merken, um danach per entnext
|
||||
;; genau die neu erzeugten Objekte einzusammeln (wie
|
||||
;; kreisel-make-label/draw-module in KreiselInsert.lsp).
|
||||
(setq lastEnt (entlast))
|
||||
|
||||
;; Senkrechte Linien (konstantes X) + Spalten-Beschriftung unten.
|
||||
(setq i 0)
|
||||
(while (<= i n-x)
|
||||
(setq x (+ x0 (* i x-step)))
|
||||
(plq-line (list x y0 0.0) (list x y1 0.0))
|
||||
(if (< i n-x)
|
||||
(progn
|
||||
(setq label (plq-label (1+ i) x-alpha))
|
||||
(plq-text label (list (+ x (/ x-step 2.0)) (- y0 textabstand) 0.0) hoehe)
|
||||
)
|
||||
)
|
||||
(setq i (1+ i))
|
||||
)
|
||||
|
||||
;; Waagerechte Linien (konstantes Y) + Zeilen-Beschriftung links.
|
||||
(setq i 0)
|
||||
(while (<= i n-y)
|
||||
(setq y (+ y0 (* i y-step)))
|
||||
(plq-line (list x0 y 0.0) (list x1 y 0.0))
|
||||
(if (< i n-y)
|
||||
(progn
|
||||
(setq label (plq-label (1+ i) y-alpha))
|
||||
(plq-text label (list (- x0 textabstand) (+ y (/ y-step 2.0)) 0.0) hoehe)
|
||||
)
|
||||
)
|
||||
(setq i (1+ i))
|
||||
)
|
||||
|
||||
;; --- Neu erzeugte Entities einsammeln und zu einem Block zusammenfassen ---
|
||||
(setq ss (ssadd))
|
||||
(if (null lastEnt) (setq e (entnext)) (setq e (entnext lastEnt)))
|
||||
(while e
|
||||
(ssadd e ss)
|
||||
(setq e (entnext e))
|
||||
)
|
||||
(if (> (sslength ss) 0)
|
||||
(progn
|
||||
(command "_.-BLOCK" *plq-blockname* (list 0.0 0.0 0.0) ss "")
|
||||
(command "_.INSERT" *plq-blockname* (list 0.0 0.0 0.0) 1 1 0)
|
||||
)
|
||||
)
|
||||
|
||||
(princ (ssg-textf "plq-fertig" (list (itoa n-x) (itoa n-y) lay)))
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
|
||||
(ssg-end)
|
||||
(princ)
|
||||
)
|
||||
|
||||
;; ============================================================
|
||||
;; DELETE_PLANQUADRATE - Raster-Block entfernen
|
||||
;; ============================================================
|
||||
(defun c:DELETE_PLANQUADRATE ( / n)
|
||||
(ssg-start "DELETE_PLANQUADRATE" nil)
|
||||
(setq n (plq-block-entfernen))
|
||||
(if (> n 0)
|
||||
(princ (ssg-textf "plq-geloescht" (list (itoa n))))
|
||||
(princ (ssg-text "plq-nichts-zu-loeschen"))
|
||||
)
|
||||
(ssg-end)
|
||||
(princ)
|
||||
)
|
||||
|
||||
;; ============================================================
|
||||
;; PLANQUADRATE_TOGGLE - "Planquadrate an/aus": zeichnet das Raster, falls
|
||||
;; noch keines in der Zeichnung existiert, sonst entfernt es das bestehende.
|
||||
;; ============================================================
|
||||
(defun c:PLANQUADRATE_TOGGLE ( / vorhanden)
|
||||
(setq vorhanden (and (tblsearch "BLOCK" *plq-blockname*)
|
||||
(ssget "X" (list (cons 0 "INSERT") (cons 2 *plq-blockname*)))))
|
||||
(if vorhanden
|
||||
(c:DELETE_PLANQUADRATE)
|
||||
(c:DRAW_PLANQUADRATE)
|
||||
)
|
||||
(princ)
|
||||
)
|
||||
|
||||
(princ "\n>>> DrawPlanquadrate.lsp geladen. Befehle: DRAW_PLANQUADRATE, DELETE_PLANQUADRATE, PLANQUADRATE_TOGGLE")
|
||||
(princ)
|
||||
@@ -78,6 +78,12 @@ section=Planquadrate_AN
|
||||
x_origin=
|
||||
y_origin=
|
||||
|
||||
# Texthoehe (mm) der Zaehlungs-Beschriftung am linken/unteren Rand des
|
||||
# Planquadrat-Rasters, siehe Lisp/DrawPlanquadrate.lsp (DRAW_PLANQUADRATE).
|
||||
# Nur fuer diesen Lisp-Befehl relevant, nicht fuer den CSV-/Sivas-Export.
|
||||
# Default 300, falls nicht gesetzt.
|
||||
text_hoehe_mm=300
|
||||
|
||||
# hier kann man im csv Export aus den Koordinaten der Bauteile die Planquadrate berechnen lassen, in denen sie liegen
|
||||
# Zählung ist numerisch oder Alphabetisch möglich, Schrittweite in m (z.B. 2m pro Spalte, 4m pro Zeile)
|
||||
# liegt man im ersten Quadrat, ist diese A/1, oder 1/1 oder 1/A, je nach Formatierung. Die Zählung beginnt immer bei 1
|
||||
|
||||
@@ -152,6 +152,10 @@ vf_beschriftung = VF_Beschriftung, 7
|
||||
# Beschriftungstext der Gefaellestrecke.
|
||||
gf_beschriftung = GF_Beschriftung, 7
|
||||
|
||||
# Planquadrat-Raster (Linien + Zaehlungs-Beschriftung), siehe
|
||||
# Lisp/DrawPlanquadrate.lsp (DRAW_PLANQUADRATE).
|
||||
planquadrate = ZZ_Planquadrate, 8
|
||||
|
||||
|
||||
# ============================================================
|
||||
# Farben fuer Layer OHNE Baugruppen-Key
|
||||
|
||||
@@ -566,6 +566,11 @@
|
||||
"core-blockname-exists": "Blockname '%1' existiert bereits - wird uebersprungen.",
|
||||
"core-dwg-not-found": "\nFEHLER: Block nicht gefunden: %1",
|
||||
"exp-cfg-not-found": "\n[export] WARNUNG: %1 nicht gefunden/leer, verwende Vorgaben.",
|
||||
"plq-keine-konfiguration": "\n[DRAW_PLANQUADRATE] WARNUNG: Keine [Planquadrate]-Konfiguration in cfg/export.cfg gefunden - Abbruch.",
|
||||
"plq-ungueltige-schrittweite": "\n[DRAW_PLANQUADRATE] WARNUNG: x_step/y_step muessen groesser 0 sein - Abbruch.",
|
||||
"plq-fertig": "\n[DRAW_PLANQUADRATE] Raster gezeichnet: %1 Spalten x %2 Zeilen auf Layer '%3'.",
|
||||
"plq-geloescht": "\n[DELETE_PLANQUADRATE] Planquadrat-Raster entfernt (%1 Einfuegung(en)).",
|
||||
"plq-nichts-zu-loeschen": "\n[DELETE_PLANQUADRATE] Kein Planquadrat-Raster in der Zeichnung vorhanden.",
|
||||
"exp-check-ids": "\n[%1] Pruefe und vergebe IDs...",
|
||||
"exp-sep-proxy-fehler": "\n[EXPORT] WARNUNG: Kopie des verpackten Separators '%1' aus Block '%2' fehlgeschlagen (%3) - dieser Separator fehlt im Export.",
|
||||
"exp-sep-zuordnung": "\n[%1] verpackte Separator-Kopie(n): ZUORDNUNG aus der ID des Wrapper-Blocks gesetzt.",
|
||||
|
||||
@@ -566,6 +566,11 @@
|
||||
"core-blockname-exists": "Block name '%1' already exists - skipping.",
|
||||
"core-dwg-not-found": "\nERROR: Block not found: %1",
|
||||
"exp-cfg-not-found": "\n[export] WARNING: %1 not found/empty, using defaults.",
|
||||
"plq-keine-konfiguration": "\n[DRAW_PLANQUADRATE] WARNING: no [Planquadrate] configuration found in cfg/export.cfg - aborting.",
|
||||
"plq-ungueltige-schrittweite": "\n[DRAW_PLANQUADRATE] WARNING: x_step/y_step must be greater than 0 - aborting.",
|
||||
"plq-fertig": "\n[DRAW_PLANQUADRATE] Grid drawn: %1 columns x %2 rows on layer '%3'.",
|
||||
"plq-geloescht": "\n[DELETE_PLANQUADRATE] Planquadrat grid removed (%1 insertion(s)).",
|
||||
"plq-nichts-zu-loeschen": "\n[DELETE_PLANQUADRATE] No Planquadrat grid found in the drawing.",
|
||||
"exp-check-ids": "\n[%1] Checking and assigning IDs...",
|
||||
"exp-sep-proxy-fehler": "\n[EXPORT] WARNING: copying the packed separator '%1' out of block '%2' failed (%3) - this separator is missing from the export.",
|
||||
"exp-sep-zuordnung": "\n[%1] packed separator copy/copies: ZUORDNUNG set from the wrapper block ID.",
|
||||
|
||||
@@ -303,15 +303,11 @@ SEP_SCANNER_PATTERNS = (
|
||||
)
|
||||
|
||||
# Sivas-Nummern und Bezeichnungen je ILS-Elementtyp
|
||||
# Hinweis: "ils_kurve", sind aktuell nur
|
||||
# Typnamen-Platzhalter - die zugehoerigen Menuebefehle sind noch Dummies
|
||||
# (siehe Lisp/README.md), es gibt noch keine Block-Erkennung dafuer.
|
||||
ILS_SIVASNR = {
|
||||
"kreisel": ("6200", "ILS 2.0 Kreisel"),
|
||||
"eckrad": ("6210", "ILS 2.0 Eckrad"),
|
||||
"zusatzmodul": ("6215", "ILS 2.0 Zusatzmodul"),
|
||||
"ils_weiche": ("6216", "ILS 2.0 Weiche"),
|
||||
"ils_kurve": ("", "ILS 2.0 Kurve"),
|
||||
"strecke": ("6220", "ILS 2.0 Strecke"),
|
||||
"gefaellestrecke": ("6220", "ILS 2.0 Gefaellestrecke"),
|
||||
"bt_beladung": ("6215", "BT - Beladung (mit Vereinzeler, ohne Separator)"),
|
||||
|
||||
+57
-45
@@ -614,115 +614,121 @@
|
||||
<Command>^C^C(ssg-ensure "SSG_LIB_Commands") SSG_SPRACHE</Command>
|
||||
</Macro>
|
||||
</MenuMacro>
|
||||
<MenuMacro UID="MM_00135">
|
||||
<MenuMacro UID="MM_00133">
|
||||
<Macro>
|
||||
<Name>Planquadrate an/aus</Name>
|
||||
<Command>^C^C(ssg-ensure "DrawPlanquadrate") PLANQUADRATE_TOGGLE</Command>
|
||||
</Macro>
|
||||
</MenuMacro>
|
||||
<MenuMacro UID="MM_00136">
|
||||
<Macro>
|
||||
<Name>alle Tests ausfuehren und exportieren</Name>
|
||||
<Command>^C^C(load (strcat (getenv "DXFMAKRO") "/tests/test_run_all.lsp")) SSG_RUN_ALL_TESTS_EXPORT</Command>
|
||||
</Macro>
|
||||
</MenuMacro>
|
||||
<MenuMacro UID="MM_00136">
|
||||
<MenuMacro UID="MM_00137">
|
||||
<Macro>
|
||||
<Name>Tests ausfuehren und stehen lassen</Name>
|
||||
<Command>^C^C(load (strcat (getenv "DXFMAKRO") "/tests/test_run_all.lsp")) SSG_RUN_ALL_TESTS_OFFEN</Command>
|
||||
</Macro>
|
||||
</MenuMacro>
|
||||
<MenuMacro UID="MM_00137">
|
||||
<MenuMacro UID="MM_00138">
|
||||
<Macro>
|
||||
<Name>Export CSV/Sivas ALL</Name>
|
||||
<Command>^C^C(load (strcat (getenv "DXFMAKRO") "/tests/test_export_all.lsp")) TEST_EXPORT_ALL</Command>
|
||||
</Macro>
|
||||
</MenuMacro>
|
||||
<MenuMacro UID="MM_00139">
|
||||
<MenuMacro UID="MM_00140">
|
||||
<Macro>
|
||||
<Name>Kreisel</Name>
|
||||
<Command>^C^C(load (strcat (getenv "DXFMAKRO") "/tests/test_kreisel.lsp")) TEST_KREISEL</Command>
|
||||
</Macro>
|
||||
</MenuMacro>
|
||||
<MenuMacro UID="MM_00140">
|
||||
<MenuMacro UID="MM_00141">
|
||||
<Macro>
|
||||
<Name>Foerderer</Name>
|
||||
<Command>^C^C(load (strcat (getenv "DXFMAKRO") "/tests/test_foerderer.lsp")) TEST_FOERDERER</Command>
|
||||
</Macro>
|
||||
</MenuMacro>
|
||||
<MenuMacro UID="MM_00141">
|
||||
<MenuMacro UID="MM_00142">
|
||||
<Macro>
|
||||
<Name>Foerderer-Linienzug</Name>
|
||||
<Command>^C^C(load (strcat (getenv "DXFMAKRO") "/tests/test_linienzug.lsp")) TEST_LINIENZUG</Command>
|
||||
</Macro>
|
||||
</MenuMacro>
|
||||
<MenuMacro UID="MM_00142">
|
||||
<MenuMacro UID="MM_00143">
|
||||
<Macro>
|
||||
<Name>Omniflo</Name>
|
||||
<Command>^C^C(load (strcat (getenv "DXFMAKRO") "/tests/test_omniflo.lsp")) TEST_OMNIFLO</Command>
|
||||
</Macro>
|
||||
</MenuMacro>
|
||||
<MenuMacro UID="MM_00143">
|
||||
<MenuMacro UID="MM_00144">
|
||||
<Macro>
|
||||
<Name>Omniflo Strecke</Name>
|
||||
<Command>^C^C(load (strcat (getenv "DXFMAKRO") "/tests/test_omniflo_strecke.lsp")) TEST_OMNIFLO_STRECKE</Command>
|
||||
</Macro>
|
||||
</MenuMacro>
|
||||
<MenuMacro UID="MM_00144">
|
||||
<MenuMacro UID="MM_00145">
|
||||
<Macro>
|
||||
<Name>Gefaellestrecke</Name>
|
||||
<Command>^C^C(load (strcat (getenv "DXFMAKRO") "/tests/test_gefaellestrecke.lsp")) TEST_GEFAELLESTRECKE</Command>
|
||||
</Macro>
|
||||
</MenuMacro>
|
||||
<MenuMacro UID="MM_00145">
|
||||
<MenuMacro UID="MM_00146">
|
||||
<Macro>
|
||||
<Name>Mubea Gesamtmodell</Name>
|
||||
<Command>^C^C(load (strcat (getenv "DXFMAKRO") "/tests/test_mubea.lsp")) TEST_MUBEA</Command>
|
||||
</Macro>
|
||||
</MenuMacro>
|
||||
<MenuMacro UID="MM_00146">
|
||||
<MenuMacro UID="MM_00147">
|
||||
<Macro>
|
||||
<Name>HundM05 Kreisel-Abschnitt</Name>
|
||||
<Command>^C^C(load (strcat (getenv "DXFMAKRO") "/tests/test_hundm05.lsp")) TEST_HUNDM05</Command>
|
||||
</Macro>
|
||||
</MenuMacro>
|
||||
<MenuMacro UID="MM_00147">
|
||||
<MenuMacro UID="MM_00148">
|
||||
<Macro>
|
||||
<Name>KS 2D/3D pruefen (CSV)</Name>
|
||||
<Command>^C^C(load (strcat (getenv "DXFMAKRO") "/Lisp/ks_pruefung.lsp")) KS_PRUEFEN</Command>
|
||||
</Macro>
|
||||
</MenuMacro>
|
||||
<MenuMacro UID="MM_00159">
|
||||
<MenuMacro UID="MM_00160">
|
||||
<Macro>
|
||||
<Name>Kreisel bearbeiten</Name>
|
||||
<Command>(ssg-ensure "KreiselInsert") KreiselEdit</Command>
|
||||
</Macro>
|
||||
</MenuMacro>
|
||||
<MenuMacro UID="MM_00160">
|
||||
<MenuMacro UID="MM_00161">
|
||||
<Macro>
|
||||
<Name>Omniflo Element bearbeiten</Name>
|
||||
<Command>(ssg-ensure "OmniModulInsert") OMNI_EDIT</Command>
|
||||
</Macro>
|
||||
</MenuMacro>
|
||||
<MenuMacro UID="MM_00161">
|
||||
<MenuMacro UID="MM_00162">
|
||||
<Macro>
|
||||
<Name>Gefaellestrecke bearbeiten</Name>
|
||||
<Command>(ssg-ensure "Gefaellestrecke") GEFAELLESTRECKE_EDIT</Command>
|
||||
</Macro>
|
||||
</MenuMacro>
|
||||
<MenuMacro UID="MM_00162">
|
||||
<MenuMacro UID="MM_00163">
|
||||
<Macro>
|
||||
<Name>VarioFoerderer bearbeiten</Name>
|
||||
<Command>(ssg-ensure "VarioFoerderer") VARIOFOERDERER_EDIT</Command>
|
||||
</Macro>
|
||||
</MenuMacro>
|
||||
<MenuMacro UID="MM_00163">
|
||||
<MenuMacro UID="MM_00164">
|
||||
<Macro>
|
||||
<Name>TRO-Marker bearbeiten</Name>
|
||||
<Command>(ssg-ensure "Tro_Edit") TRO_EDIT</Command>
|
||||
</Macro>
|
||||
</MenuMacro>
|
||||
<MenuMacro UID="MM_00164">
|
||||
<MenuMacro UID="MM_00165">
|
||||
<Macro>
|
||||
<Name>Verbindung bearbeiten</Name>
|
||||
<Command>(ssg-ensure "Connection_Edit") CONNECTION_EDIT</Command>
|
||||
</Macro>
|
||||
</MenuMacro>
|
||||
<MenuMacro UID="MM_00166">
|
||||
<MenuMacro UID="MM_00167">
|
||||
<Macro>
|
||||
<Name>SSG Bearbeiten (Auto)</Name>
|
||||
<Command>(ssg-ensure "SSG_LIB_Commands") SSG_BLOCKEDIT</Command>
|
||||
@@ -742,7 +748,7 @@
|
||||
<PopMenuRef pUID="PM_00113"/>
|
||||
<PopMenuRef pUID="PM_00125"/>
|
||||
<PopMenuRef pUID="PM_00128"/>
|
||||
<PopMenuRef pUID="PM_00134"/>
|
||||
<PopMenuRef pUID="PM_00135"/>
|
||||
</PopMenu>
|
||||
<PopMenu UID="PM_00005">
|
||||
<Name>ILS</Name>
|
||||
@@ -1441,6 +1447,12 @@
|
||||
<MacroRef MenuMacroID="MM_00132"/>
|
||||
</MenuItem>
|
||||
</PopMenuItem>
|
||||
<PopMenuItem>
|
||||
<NameRef>Planquadrate an/aus</NameRef>
|
||||
<MenuItem>
|
||||
<MacroRef MenuMacroID="MM_00133"/>
|
||||
</MenuItem>
|
||||
</PopMenuItem>
|
||||
<PopMenuItem>
|
||||
<NameRef>Konfiguration Schliessen</NameRef>
|
||||
<MenuItem>
|
||||
@@ -1448,126 +1460,126 @@
|
||||
</MenuItem>
|
||||
</PopMenuItem>
|
||||
</PopMenu>
|
||||
<PopMenu UID="PM_00134">
|
||||
<PopMenu UID="PM_00135">
|
||||
<Name>Tests</Name>
|
||||
<PopMenuItem>
|
||||
<NameRef>alle Tests ausfuehren und exportieren</NameRef>
|
||||
<MenuItem>
|
||||
<MacroRef MenuMacroID="MM_00135"/>
|
||||
</MenuItem>
|
||||
</PopMenuItem>
|
||||
<PopMenuItem>
|
||||
<NameRef>Tests ausfuehren und stehen lassen</NameRef>
|
||||
<MenuItem>
|
||||
<MacroRef MenuMacroID="MM_00136"/>
|
||||
</MenuItem>
|
||||
</PopMenuItem>
|
||||
<PopMenuItem>
|
||||
<NameRef>Export CSV/Sivas ALL</NameRef>
|
||||
<NameRef>Tests ausfuehren und stehen lassen</NameRef>
|
||||
<MenuItem>
|
||||
<MacroRef MenuMacroID="MM_00137"/>
|
||||
</MenuItem>
|
||||
</PopMenuItem>
|
||||
<PopMenuItem>
|
||||
<NameRef>Export CSV/Sivas ALL</NameRef>
|
||||
<MenuItem>
|
||||
<MacroRef MenuMacroID="MM_00138"/>
|
||||
</MenuItem>
|
||||
</PopMenuItem>
|
||||
<PopMenuItem IsSeparator="true"/>
|
||||
<PopMenuItem>
|
||||
<NameRef>Kreisel</NameRef>
|
||||
<MenuItem>
|
||||
<MacroRef MenuMacroID="MM_00139"/>
|
||||
<MacroRef MenuMacroID="MM_00140"/>
|
||||
</MenuItem>
|
||||
</PopMenuItem>
|
||||
<PopMenuItem>
|
||||
<NameRef>Foerderer</NameRef>
|
||||
<MenuItem>
|
||||
<MacroRef MenuMacroID="MM_00140"/>
|
||||
<MacroRef MenuMacroID="MM_00141"/>
|
||||
</MenuItem>
|
||||
</PopMenuItem>
|
||||
<PopMenuItem>
|
||||
<NameRef>Foerderer-Linienzug</NameRef>
|
||||
<MenuItem>
|
||||
<MacroRef MenuMacroID="MM_00141"/>
|
||||
<MacroRef MenuMacroID="MM_00142"/>
|
||||
</MenuItem>
|
||||
</PopMenuItem>
|
||||
<PopMenuItem>
|
||||
<NameRef>Omniflo</NameRef>
|
||||
<MenuItem>
|
||||
<MacroRef MenuMacroID="MM_00142"/>
|
||||
<MacroRef MenuMacroID="MM_00143"/>
|
||||
</MenuItem>
|
||||
</PopMenuItem>
|
||||
<PopMenuItem>
|
||||
<NameRef>Omniflo Strecke</NameRef>
|
||||
<MenuItem>
|
||||
<MacroRef MenuMacroID="MM_00143"/>
|
||||
<MacroRef MenuMacroID="MM_00144"/>
|
||||
</MenuItem>
|
||||
</PopMenuItem>
|
||||
<PopMenuItem>
|
||||
<NameRef>Gefaellestrecke</NameRef>
|
||||
<MenuItem>
|
||||
<MacroRef MenuMacroID="MM_00144"/>
|
||||
<MacroRef MenuMacroID="MM_00145"/>
|
||||
</MenuItem>
|
||||
</PopMenuItem>
|
||||
<PopMenuItem>
|
||||
<NameRef>Mubea Gesamtmodell</NameRef>
|
||||
<MenuItem>
|
||||
<MacroRef MenuMacroID="MM_00145"/>
|
||||
<MacroRef MenuMacroID="MM_00146"/>
|
||||
</MenuItem>
|
||||
</PopMenuItem>
|
||||
<PopMenuItem>
|
||||
<NameRef>HundM05 Kreisel-Abschnitt</NameRef>
|
||||
<MenuItem>
|
||||
<MacroRef MenuMacroID="MM_00146"/>
|
||||
<MacroRef MenuMacroID="MM_00147"/>
|
||||
</MenuItem>
|
||||
</PopMenuItem>
|
||||
<PopMenuItem>
|
||||
<NameRef>KS 2D/3D pruefen (CSV)</NameRef>
|
||||
<MenuItem>
|
||||
<MacroRef MenuMacroID="MM_00147"/>
|
||||
<MacroRef MenuMacroID="MM_00148"/>
|
||||
</MenuItem>
|
||||
</PopMenuItem>
|
||||
</PopMenu>
|
||||
<PopMenu UID="PM_00158">
|
||||
<PopMenu UID="PM_00159">
|
||||
<Alias>POP501</Alias>
|
||||
<Name>SSG_LIB Edit Context</Name>
|
||||
<PopMenuItem>
|
||||
<NameRef>Kreisel bearbeiten</NameRef>
|
||||
<MenuItem>
|
||||
<MacroRef MenuMacroID="MM_00159"/>
|
||||
<MacroRef MenuMacroID="MM_00160"/>
|
||||
</MenuItem>
|
||||
</PopMenuItem>
|
||||
<PopMenuItem>
|
||||
<NameRef>Omniflo Element bearbeiten</NameRef>
|
||||
<MenuItem>
|
||||
<MacroRef MenuMacroID="MM_00160"/>
|
||||
<MacroRef MenuMacroID="MM_00161"/>
|
||||
</MenuItem>
|
||||
</PopMenuItem>
|
||||
<PopMenuItem>
|
||||
<NameRef>Gefaellestrecke bearbeiten</NameRef>
|
||||
<MenuItem>
|
||||
<MacroRef MenuMacroID="MM_00161"/>
|
||||
<MacroRef MenuMacroID="MM_00162"/>
|
||||
</MenuItem>
|
||||
</PopMenuItem>
|
||||
<PopMenuItem>
|
||||
<NameRef>VarioFoerderer bearbeiten</NameRef>
|
||||
<MenuItem>
|
||||
<MacroRef MenuMacroID="MM_00162"/>
|
||||
<MacroRef MenuMacroID="MM_00163"/>
|
||||
</MenuItem>
|
||||
</PopMenuItem>
|
||||
<PopMenuItem>
|
||||
<NameRef>TRO-Marker bearbeiten</NameRef>
|
||||
<MenuItem>
|
||||
<MacroRef MenuMacroID="MM_00163"/>
|
||||
<MacroRef MenuMacroID="MM_00164"/>
|
||||
</MenuItem>
|
||||
</PopMenuItem>
|
||||
<PopMenuItem>
|
||||
<NameRef>Verbindung bearbeiten</NameRef>
|
||||
<MenuItem>
|
||||
<MacroRef MenuMacroID="MM_00164"/>
|
||||
<MacroRef MenuMacroID="MM_00165"/>
|
||||
</MenuItem>
|
||||
</PopMenuItem>
|
||||
<PopMenuItem IsSeparator="true"/>
|
||||
<PopMenuItem>
|
||||
<NameRef>SSG Bearbeiten (Auto)</NameRef>
|
||||
<MenuItem>
|
||||
<MacroRef MenuMacroID="MM_00166"/>
|
||||
<MacroRef MenuMacroID="MM_00167"/>
|
||||
</MenuItem>
|
||||
</PopMenuItem>
|
||||
</PopMenu>
|
||||
|
||||
@@ -130,6 +130,7 @@
|
||||
[Alle Bloecke auf 2D]^C^C(ssg-ensure "SSG_LIB_Commands") SSG_DIM_ALL_2D
|
||||
[Alle Bloecke auf 3D]^C^C(ssg-ensure "SSG_LIB_Commands") SSG_DIM_ALL_3D
|
||||
[Sprache]^C^C(ssg-ensure "SSG_LIB_Commands") SSG_SPRACHE
|
||||
[Planquadrate an/aus]^C^C(ssg-ensure "DrawPlanquadrate") PLANQUADRATE_TOGGLE
|
||||
[<-Konfiguration Schliessen]^C^C
|
||||
[->Tests]
|
||||
[alle Tests ausfuehren und exportieren]^C^C(load (strcat (getenv "DXFMAKRO") "/tests/test_run_all.lsp")) SSG_RUN_ALL_TESTS_EXPORT
|
||||
|
||||
Reference in New Issue
Block a user