export: Kettenbausteine ueber KS verketten, Einheiten neu gruppieren
K1/K2 und Boundingbox je Export-Zeile folgen jetzt dem echten Kettenbaustein statt seinem Stellvertreter: - Separator (all_elements): KS + bbox des 300-mm-Trennstegs statt des Sensor-Symbols; separator_track/group_vf_gf behalten das Symbol - AS/ES (all_elements, group_vf_gf): KS + bbox des AS-/ES-Elements statt des 200x200-Markers ohne K - gemeinsamer Kern csv:ks-welt-punkte; VF/GF-Wrapper-K1/K2 = K1 des AS bzw. K2 des ES Gruppierter Export neu (sepliste-/XDATA-Algorithmus entfernt): - Bausteine je Wrapper als Vektorkette K2 -> K1 ordnen (Start am AS) - Foerdereinheit = Separator vor der Umlenkstation bis Motorstation, alles dazwischen Gefaelleeinheit (csv:kette-einheiten, Unit-Tests) - je Einheit ein temporaerer Proxy mit 3D-Boundingbox, K1/K2, Laenge und Anzahl Boegen; wird nach dem Export geloescht (ausser csv_leave_proxies) - IDs neuer Export-Objekte entlang der Kette AS -> ES aufsteigend Weiteres: - ssg-make-layer ohne _LAYER-Befehl fuer bestehende Layer (Konsole) - einheitliche, zweisprachige Meldungen fuer behaltene Hilfskopien - bin/show_exportcsv.bat: Export-CSV als Boundingbox-SVG (sps_skel) Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 5.5
parent
bc481de901
commit
394d476d56
+663
-764
File diff suppressed because it is too large
Load Diff
+17
-9
@@ -363,15 +363,23 @@
|
|||||||
;; Layer anlegen (falls nicht vorhanden) und optional aktivieren
|
;; Layer anlegen (falls nicht vorhanden) und optional aktivieren
|
||||||
;; lay-name = Name; color = Farbnummer als String z.B. "2"; set-aktiv = T/nil
|
;; lay-name = Name; color = Farbnummer als String z.B. "2"; set-aktiv = T/nil
|
||||||
;; Farbe wird nur bei Neuanlage gesetzt, bestehende Layer bleiben unveraendert
|
;; Farbe wird nur bei Neuanlage gesetzt, bestehende Layer bleiben unveraendert
|
||||||
(defun ssg-make-layer (lay-name color set-aktiv / neu)
|
;; Ohne "_LAYER"-Befehl: ein bestehender Layer wird gar nicht angefasst (frueher
|
||||||
(setq neu (not (tblsearch "LAYER" lay-name)))
|
;; lief bei JEDEM Aufruf "_LAYER _N" und fuellte die Konsole, z.B. je Export-
|
||||||
(if set-aktiv
|
;; Marker einmal), ein neuer per entmake angelegt, CLAYER direkt gesetzt. Nur
|
||||||
(command "_LAYER" "_M" lay-name "")
|
;; wenn entmake scheitert (ungueltiger Name), bleibt der alte Befehlsweg.
|
||||||
(command "_LAYER" "_N" lay-name "")
|
(defun ssg-make-layer (lay-name color set-aktiv / farbe)
|
||||||
)
|
(if (not (tblsearch "LAYER" lay-name))
|
||||||
(if neu
|
(progn
|
||||||
(command "_LAYER" "_CO" color lay-name "")
|
(setq farbe (atoi (cond (color) ("7"))))
|
||||||
)
|
(if (or (< farbe 1) (> farbe 255)) (setq farbe 7))
|
||||||
|
(if (not (entmake (list '(0 . "LAYER") '(100 . "AcDbSymbolTableRecord")
|
||||||
|
'(100 . "AcDbLayerTableRecord") (cons 2 lay-name)
|
||||||
|
'(70 . 0) (cons 62 farbe) '(6 . "Continuous"))))
|
||||||
|
(progn
|
||||||
|
(command "_LAYER" "_N" lay-name "")
|
||||||
|
(command "_LAYER" "_CO" color lay-name "")))))
|
||||||
|
(if (and set-aktiv (tblsearch "LAYER" lay-name))
|
||||||
|
(setvar "CLAYER" lay-name))
|
||||||
)
|
)
|
||||||
|
|
||||||
;; ------------------------------------------------------------
|
;; ------------------------------------------------------------
|
||||||
|
|||||||
+3
-2
@@ -73,8 +73,9 @@
|
|||||||
;; weil der Marker in der Zeichnung stehen bleibt.
|
;; weil der Marker in der Zeichnung stehen bleibt.
|
||||||
(wcmatch bname "ZZ_ASES_MARKER*")
|
(wcmatch bname "ZZ_ASES_MARKER*")
|
||||||
;; ZZ_UNIT_MARKER: die Foerdereinheit-/Gefaelleeinheit-Marker
|
;; ZZ_UNIT_MARKER: die Foerdereinheit-/Gefaelleeinheit-Marker
|
||||||
;; (siehe csv:unitmark-aktualisieren, export.lsp) - aus
|
;; (siehe csv:ketten-verarbeiten, export.lsp) - temporaere
|
||||||
;; demselben Grund wie ZZ_ASES_MARKER.
|
;; Export-Proxies, die wie die Separator-Kopien eine ID fuer
|
||||||
|
;; ihre Export-Zeile brauchen.
|
||||||
(wcmatch bname "ZZ_UNIT_MARKER*")
|
(wcmatch bname "ZZ_UNIT_MARKER*")
|
||||||
(wcmatch bname "Separator_SP*,S-LP*,Scanner*")
|
(wcmatch bname "Separator_SP*,S-LP*,Scanner*")
|
||||||
(wcmatch bname "BTMT-Beladung*,SC_Entladung*")
|
(wcmatch bname "BTMT-Beladung*,SC_Entladung*")
|
||||||
|
|||||||
@@ -0,0 +1,73 @@
|
|||||||
|
@echo off
|
||||||
|
REM ================================================================
|
||||||
|
REM DXFMAKROS - Export-CSV als Boundingbox-Draufsicht (SVG) anzeigen
|
||||||
|
REM ================================================================
|
||||||
|
REM Zeichnet jede Zeile der Export-CSV (EXPORTCSV) als achsparalleles
|
||||||
|
REM Rechteck aus Position + Boundingbox, mit Legende und Tooltip je
|
||||||
|
REM Rechteck sowie den Anschluss-Koordinatensystemen K1-K4 (rotes Kreuz,
|
||||||
|
REM blaue Linie K1->K2->K3->K4), und oeffnet das Ergebnis im Browser.
|
||||||
|
REM
|
||||||
|
REM Die Darstellung uebernimmt sps_skel (bin\material_flow.bat,
|
||||||
|
REM Option --show-bbs). sps_skel wird neben dxfmakros erwartet
|
||||||
|
REM (..\sps_skel) oder ueber die Umgebungsvariable SPS_SKEL_HOME.
|
||||||
|
REM
|
||||||
|
REM Aufruf:
|
||||||
|
REM bin\show_exportcsv.bat results\export.csv, alle Zeilen
|
||||||
|
REM bin\show_exportcsv.bat meine_export.csv andere CSV in results\ (oder Pfad)
|
||||||
|
REM bin\show_exportcsv.bat export.csv flow ohne VF/GF-Einzelbausteine
|
||||||
|
REM
|
||||||
|
REM Ergebnis: %SKEL_RESULTS%\<name>_bbs.svg
|
||||||
|
REM ================================================================
|
||||||
|
|
||||||
|
setlocal
|
||||||
|
|
||||||
|
REM Umgebung dxfmakros (DXFM_RESULTS ...)
|
||||||
|
call "%~dp0setenv.bat" >nul
|
||||||
|
|
||||||
|
REM sps_skel suchen
|
||||||
|
if not defined SPS_SKEL_HOME set "SPS_SKEL_HOME=%DXFMAKRO%\..\sps_skel"
|
||||||
|
if not exist "%SPS_SKEL_HOME%\bin\material_flow.bat" (
|
||||||
|
echo FEHLER: sps_skel nicht gefunden: %SPS_SKEL_HOME%
|
||||||
|
echo SPS_SKEL_HOME auf den sps_skel-Ordner setzen.
|
||||||
|
endlocal & exit /b 1
|
||||||
|
)
|
||||||
|
|
||||||
|
REM Umgebung sps_skel (SKEL_RESULTS ...) - material_flow.bat ruft setenv
|
||||||
|
REM zwar selbst auf, SKEL_RESULTS wird hier aber zum Oeffnen der SVG gebraucht.
|
||||||
|
call "%SPS_SKEL_HOME%\bin\setenv.bat" >nul
|
||||||
|
|
||||||
|
REM Eingabe-CSV: Dateiname wird in DXFM_RESULTS gesucht, Pfade bleiben
|
||||||
|
set "CSV=%~1"
|
||||||
|
if "%CSV%"=="" set "CSV=export.csv"
|
||||||
|
if exist "%DXFM_RESULTS%\%CSV%" set "CSV=%DXFM_RESULTS%\%CSV%"
|
||||||
|
if not exist "%CSV%" (
|
||||||
|
echo FEHLER: CSV nicht gefunden: %CSV%
|
||||||
|
echo Erst in BricsCAD EXPORTCSV ausfuehren.
|
||||||
|
endlocal & exit /b 1
|
||||||
|
)
|
||||||
|
for %%F in ("%CSV%") do (
|
||||||
|
set "CSV=%%~fF"
|
||||||
|
set "SVG=%SKEL_RESULTS%\%%~nF_bbs.svg"
|
||||||
|
)
|
||||||
|
|
||||||
|
REM Darstellungsmodus: all (Default) oder flow
|
||||||
|
set "MODE=%~2"
|
||||||
|
if "%MODE%"=="" set "MODE=all"
|
||||||
|
|
||||||
|
REM Alte SVG entfernen, damit nie eine veraltete Ansicht geoeffnet wird
|
||||||
|
if exist "%SVG%" del "%SVG%"
|
||||||
|
|
||||||
|
call "%SPS_SKEL_HOME%\bin\material_flow.bat" --file "%CSV%" --show-bbs %MODE% --show-kx
|
||||||
|
set "RC=%ERRORLEVEL%"
|
||||||
|
|
||||||
|
if not exist "%SVG%" (
|
||||||
|
echo FEHLER: SVG wurde nicht erzeugt ^(material_flow Exit-Code %RC%^).
|
||||||
|
endlocal & exit /b 1
|
||||||
|
)
|
||||||
|
|
||||||
|
echo.
|
||||||
|
echo Boundingbox-Ansicht: %SVG%
|
||||||
|
REM Vorschau direkt im Standardprogramm fuer .svg (Browser) oeffnen
|
||||||
|
start "" "%SVG%"
|
||||||
|
|
||||||
|
endlocal & exit /b 0
|
||||||
+15
-18
@@ -76,14 +76,12 @@
|
|||||||
# Gefaellestrecken-Segmente, Umlenk-/Motorstation). Wie pattern_schleuselement
|
# Gefaellestrecken-Segmente, Umlenk-/Motorstation). Wie pattern_schleuselement
|
||||||
# liegen sie NICHT als eigener top-level INSERT vor, sondern verpackt in der
|
# liegen sie NICHT als eigener top-level INSERT vor, sondern verpackt in der
|
||||||
# Wrapper-Blockdefinition - die Muster dienen der SUCHE dort
|
# Wrapper-Blockdefinition - die Muster dienen der SUCHE dort
|
||||||
# (csv:nested-welt-records). Eine TEMPORAERE Kopie des jeweiligen Original-
|
# (csv:nested-welt-records). Im Modus all_elements wird je Baustein eine
|
||||||
# Blocks wird IMMER erzeugt (csv:element-proxies-erzeugen, wie bei Separator/
|
# TEMPORAERE Kopie erzeugt (csv:element-proxies-erzeugen) und als eigene
|
||||||
# pattern_separator - liefert die Positionsdaten fuer die Gruppierung unten)
|
# Export-Zeile ausgegeben, danach wieder geloescht. Im gruppierten Modus
|
||||||
# und nach dem Export IMMER wieder geloescht; als EIGENE Export-Zeile
|
# (group_vf_gf, Default) fasst csv:ketten-verarbeiten die Bausteine
|
||||||
# erscheinen sie aber NUR, wenn *csv-export-alle-elemente* (export.lsp) auf T
|
# stattdessen zu Foerdereinheit-/Gefaelleeinheit-Zeilen zusammen (siehe
|
||||||
# gesetzt ist. Im Default (nil, gruppierter Modus) fasst
|
# pattern_unit_marker). Vario_Kurve_*
|
||||||
# csv:unitmark-aktualisieren sie stattdessen zu Foerdereinheit-/
|
|
||||||
# Gefaelleeinheit-Zeilen zusammen (siehe pattern_unit_marker). Vario_Kurve_*
|
|
||||||
# ist laut Code-Kommentar (vf_linienzug.lsp) als "nirgends im Projekt
|
# ist laut Code-Kommentar (vf_linienzug.lsp) als "nirgends im Projekt
|
||||||
# tatsaechlich eingefuegt" dokumentiert - in der Praxis kommt es doch vor
|
# tatsaechlich eingefuegt" dokumentiert - in der Praxis kommt es doch vor
|
||||||
# (siehe reale HundM05-Exporte), das Muster bleibt darum wirksam.
|
# (siehe reale HundM05-Exporte), das Muster bleibt darum wirksam.
|
||||||
@@ -93,18 +91,17 @@
|
|||||||
# vier Muster wie Separator/Scanner aus (Stueckzahl steckt schon in den
|
# vier Muster wie Separator/Scanner aus (Stueckzahl steckt schon in den
|
||||||
# GF_Bogen_*/VF_Bogen_*/ANZAHL_VF/ANZAHL_GF-Attributen des Wrappers).
|
# GF_Bogen_*/VF_Bogen_*/ANZAHL_VF/ANZAHL_GF-Attributen des Wrappers).
|
||||||
#
|
#
|
||||||
# pattern_unit_marker: der Marker, den der Export je zusammenhaengendem
|
# pattern_unit_marker: der Proxy, den der Export im gruppierten Modus je
|
||||||
# Foerderer-Abschnitt ("Foerdereinheit") bzw. Gefaelle-Abschnitt
|
# Foerderer-Abschnitt ("Foerdereinheit") bzw. Gefaelle-Abschnitt
|
||||||
# ("Gefaelleeinheit") einer VF_n/GF_n-Kette setzt (ZZ_UNIT_MARKER, ein
|
# ("Gefaelleeinheit") einer VF_n/GF_n-Kette setzt (ZZ_UNIT_MARKER, ein
|
||||||
# Rechteck auf der Bounding-Box-Vereinigung aller enthaltenen Boegen/
|
# Rechteck auf der Bounding-Box-Vereinigung der enthaltenen Bausteine,
|
||||||
# Streckenelemente/Umlenk-/Motorstation-Mitglieder, csv:unitmark-
|
# csv:ketten-verarbeiten in Lisp/export.lsp). Die Kette wird dafuer als
|
||||||
# aktualisieren in Lisp/export.lsp). Bleibt wie ZZ_ASES_MARKER dauerhaft in
|
# Vektorkette K2 -> K1 geordnet; eine Foerdereinheit reicht vom Separator vor
|
||||||
# der Zeichnung stehen und behaelt seine ID ueber Exportlaeufe hinweg
|
# der Umlenkstation bis zur Motorstation, alles dazwischen ist Gefaelle.
|
||||||
# (Attribute ID/ZUORDNUNG/TYP/LFDNR/LAENGE_m/ANZAHL_BOEGEN/K1/K2, alle
|
# Der Proxy ist ein reines Export-Hilfsmittel: er wird bei jedem Export neu
|
||||||
# unsichtbar). Nur aktiv im gruppierten Modus (*csv-export-alle-elemente* =
|
# erzeugt und danach geloescht, ausser der Debug-Schalter csv_leave_proxies
|
||||||
# nil) - im Rohdaten-Modus werden keine neuen Marker angelegt, verwaiste
|
# ist gesetzt (Attribute ID/ZUORDNUNG/TYP/LFDNR/LAENGE_m/ANZAHL_BOEGEN/K1/K2,
|
||||||
# Marker (z.B. nach einem Wechsel gruppiert->roh) werden aber immer
|
# alle unsichtbar). export_sivas.py schliesst dieses Muster wie die vier
|
||||||
# aufgeraeumt. export_sivas.py schliesst dieses Muster wie die vier
|
|
||||||
# pattern_nested_*-Muster aus (Stueckzahl steckt in ANZAHL_VF/ANZAHL_GF).
|
# pattern_nested_*-Muster aus (Stueckzahl steckt in ANZAHL_VF/ANZAHL_GF).
|
||||||
# ============================================================
|
# ============================================================
|
||||||
|
|
||||||
|
|||||||
+15
-23
@@ -1,35 +1,27 @@
|
|||||||
// ============================================================
|
// ============================================================
|
||||||
// csv_export_konfig.dcl - CSV-Export Konfiguration (c:CSV_EXPORT_KONFIG,
|
// csv_export_konfig.dcl - CSV-Export Konfiguration (c:CSV_EXPORT_KONFIG,
|
||||||
// export.lsp). Steuert *csv-export-modus* (drei sich gegenseitig
|
// export.lsp). Steuert *csv-export-modus* (Combobox mit drei sich
|
||||||
// ausschliessende Radio-Buttons im selben boxed_radio_column) sowie die
|
// gegenseitig ausschliessenden Eintraegen) sowie die zwei unabhaengigen
|
||||||
// zwei unabhaengigen Sichtbarkeits-Haken fuer temporaere Element-Proxy-
|
// Sichtbarkeits-Haken fuer temporaere Element-Proxy-Kopien
|
||||||
// Kopien (*csv-export-pruef-zuordnung*/*csv-export-elemente-behalten*).
|
// (*csv-export-pruef-zuordnung*/*csv-export-elemente-behalten*).
|
||||||
//
|
//
|
||||||
// Radio-Button-Labels sind FEST (Deutsch) - set_tile kann bei einem
|
// popup_list statt radio_column: set_tile/get_tile auf einer
|
||||||
// radio_button nur den Zustand, nicht das Label aendern (siehe Kommentar
|
// boxed_radio_column liefern/erwarten den KEY des gewaehlten radio_button
|
||||||
// dcl/variofoerderer.dcl:16-23, gleiche Einschraenkung hier).
|
// (String, z.B. "modus_all"), nicht den numerischen Index - das widersprach
|
||||||
|
// der urspruenglichen Annahme in csv:export-konfig-init/-accept (idx als
|
||||||
|
// "0"/"1"/"2" behandelt) und liess die Vorbelegung beim erneuten Oeffnen
|
||||||
|
// immer auf die erste Option zurueckfallen. popup_list ist eindeutig
|
||||||
|
// index-basiert (siehe dcl/sprache.dcl + SSG_LIB_Commands.lsp
|
||||||
|
// ssg-sprache-init/-accept, dasselbe Muster).
|
||||||
// ============================================================
|
// ============================================================
|
||||||
|
|
||||||
csv_export_konfig : dialog {
|
csv_export_konfig : dialog {
|
||||||
label = "CSV-Export Konfiguration";
|
label = "CSV-Export Konfiguration";
|
||||||
|
|
||||||
: boxed_radio_column {
|
: popup_list {
|
||||||
label = "Export-Modus:";
|
|
||||||
key = "modus";
|
key = "modus";
|
||||||
|
label = "Export-Modus:";
|
||||||
: radio_button {
|
width = 55;
|
||||||
key = "modus_group";
|
|
||||||
label = "Gruppiert: Foerdereinheit/Gefaelleeinheit (Standard)";
|
|
||||||
value = "1";
|
|
||||||
}
|
|
||||||
: radio_button {
|
|
||||||
key = "modus_all";
|
|
||||||
label = "Alle Einzelelemente (Boegen, Strecken, Umlenk-/Motorstation)";
|
|
||||||
}
|
|
||||||
: radio_button {
|
|
||||||
key = "modus_sep";
|
|
||||||
label = "Nur Separator-Spur (AS/ES/Separator, ohne Streckenelemente)";
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
spacer;
|
spacer;
|
||||||
|
|||||||
+52
-3
@@ -104,8 +104,8 @@ Pro INSERT wird ein JSON-Objekt geschrieben:
|
|||||||
| `x`, `y`, `z`, `rotation` | `(assoc 10)` / `(assoc 50)` | roher Einfuegepunkt/-winkel, KEIN `vla-getboundingbox` |
|
| `x`, `y`, `z`, `rotation` | `(assoc 10)` / `(assoc 50)` | roher Einfuegepunkt/-winkel, KEIN `vla-getboundingbox` |
|
||||||
| `attribs` | alle ATTRIB-Werte | |
|
| `attribs` | alle ATTRIB-Werte | |
|
||||||
| `insertpoint` | `csv:kos-encode` | Position+Rotation als 24-Zeichen-Base64 (Quaternion) |
|
| `insertpoint` | `csv:kos-encode` | Position+Rotation als 24-Zeichen-Base64 (Quaternion) |
|
||||||
| `k1`..`k4` | `csv:get-k-kos-strings` bzw. Fallbacks | Anschluss-Koordinatensysteme, siehe unten |
|
| `k1`..`k4` | `csv:k-liste` (Kern `csv:ks-welt-punkte`) bzw. Fallbacks | Anschluss-Koordinatensysteme, siehe unten |
|
||||||
| `bbox` | `csv:get-bbox` (`vla-getboundingbox`) | NUR wenn `include-bbox=T` und der Aufruf gelingt; fehlt sonst komplett im JSON |
|
| `bbox` | `csv:get-bbox` (`vla-getboundingbox`), im Modus `all_elements` fuer Separator/AS/ES die des Bausteins (`csv:baustein-merken`) | NUR wenn `include-bbox=T` und der Aufruf gelingt; fehlt sonst komplett im JSON |
|
||||||
| `warnung` | `*cs-scanner-warnung-by-handle*` | strittige Scanner-Zuordnung aus `cs-zuordnung-lauf` |
|
| `warnung` | `*cs-scanner-warnung-by-handle*` | strittige Scanner-Zuordnung aus `cs-zuordnung-lauf` |
|
||||||
| `zuordnung_fix` | `*cs-sep-fix-by-handle*` | nur bei Proxy-Kopien: die feststehende Wrapper-ID |
|
| `zuordnung_fix` | `*cs-sep-fix-by-handle*` | nur bei Proxy-Kopien: die feststehende Wrapper-ID |
|
||||||
| `sepliste` | `ssg-sepliste-xdata-lesen` + `*csv-sepliste-id-by-handle*` | nur bei VF_n/GF_n, siehe eigener Abschnitt |
|
| `sepliste` | `ssg-sepliste-xdata-lesen` + `*csv-sepliste-id-by-handle*` | nur bei VF_n/GF_n, siehe eigener Abschnitt |
|
||||||
@@ -116,7 +116,56 @@ Laenge+Rotation synthetisiert (`csv:gerade-k-kos-strings`). VF_n/GF_n leiten
|
|||||||
K1 (Eingang) und K2 (Ausgang) aus den eingebetteten AS_Element/ES_Element ab
|
K1 (Eingang) und K2 (Ausgang) aus den eingebetteten AS_Element/ES_Element ab
|
||||||
(`csv:vfgf-k-kos-strings`), damit die Kreisel<->Strecke-Kollisionspruefung in
|
(`csv:vfgf-k-kos-strings`), damit die Kreisel<->Strecke-Kollisionspruefung in
|
||||||
Python mit einer kleinen festen Box an der AS/ES-Position arbeiten kann statt
|
Python mit einer kleinen festen Box an der AS/ES-Position arbeiten kann statt
|
||||||
mit der ganzen (oft sehr langen) Wrapper-Box.
|
mit der ganzen (oft sehr langen) Wrapper-Box. K1 des Wrappers ist dabei K1
|
||||||
|
des AS, K2 der K2 des ES (`csv:vfgf-element-punkte`, dieselbe Rechnung wie
|
||||||
|
deren eigene Zeilen).
|
||||||
|
|
||||||
|
**Kettenteile: Stellvertreter vs. Baustein.** Innerhalb einer VF_n/GF_n-Kette
|
||||||
|
gilt fuer jedes Teil K1 = KS_EIN, K2 = KS_AUS des Bausteins - K2 eines Teils
|
||||||
|
ist exakt K1 des naechsten. Bogen/Streckenelement/Motor-/Umlenkstation werden
|
||||||
|
als 1:1-Kopie exportiert und erfuellen das von selbst. Separator und AS/ES
|
||||||
|
exportieren dagegen einen **Stellvertreter**: die Kopie des Sensor-Symbols
|
||||||
|
`Separator_SP` (sitzt 235 mm weit im 300-mm-Trennsteg
|
||||||
|
`Staustrecke_Separator_SP_300_mm`, hat nur EIN eigenes KS) bzw. den
|
||||||
|
`ZZ_ASES_MARKER` (200x200, ohne KS). Was die Zeile fuehrt, haengt am Modus:
|
||||||
|
|
||||||
|
| Modus | Separator | AS/ES |
|
||||||
|
|---|---|---|
|
||||||
|
| `all_elements` | K1/K2 + bbox des Trennstegs | K1/K2 + bbox des AS-/ES-Elements (AS: K1 Kreisel, K2 Kettenanfang; ES: K1 Kettenende, K2 Kreisel) |
|
||||||
|
| `group_vf_gf` | KS + bbox des Symbols | wie `all_elements` (schliesst an die Einheiten an) |
|
||||||
|
| `separator_track` | KS + bbox des Symbols | bbox des Markers, keine K |
|
||||||
|
|
||||||
|
IDs der neuen Export-Objekte jeder Kette (Separator-/Element-Kopien, neue
|
||||||
|
AS/ES-Marker, Einheiten-Proxies) werden vor `ssg-id-check-all` entlang der
|
||||||
|
Kette von AS nach ES aufsteigend vergeben (`csv:ketten-verarbeiten`) - die
|
||||||
|
CSV ist nach TeileId sortiert, die Zeilen stehen damit in Kettenfolge.
|
||||||
|
|
||||||
|
Umgesetzt ueber `csv:baustein-merken`: beim Erzeugen des Stellvertreters
|
||||||
|
werden K-Punkte (`csv:ks-welt-punkte`) und bbox (kurzlebige Kopie des
|
||||||
|
Bausteins, `csv:baustein-bbox`) unter seinem Handle gemerkt
|
||||||
|
(`*csv-baustein-by-handle*`, je Lauf neu); `csv:k-liste` und
|
||||||
|
`csv:block-to-json` bevorzugen diese Werte. Der Trennsteg eines Symbols wird
|
||||||
|
ueber die Lage des Symbols IM Trennsteg gefunden (`csv:trennsteg-zu-symbol`),
|
||||||
|
nicht ueber den naechsten Ursprung.
|
||||||
|
|
||||||
|
**Gruppierter Modus (`group_vf_gf`): Foerder-/Gefaelleeinheiten.** Eine
|
||||||
|
VF_n/GF_n-Kette wechselt zwischen Gefaelle- und Foerderabschnitten (GF, VF,
|
||||||
|
GF, ...). `csv:ketten-verarbeiten` holt je Wrapper alle Bausteine samt
|
||||||
|
Welt-KS (`csv:kette-teile`: AS, Trennstege, Boegen, Streckenelemente,
|
||||||
|
Umlenk-/Motorstation, ES), ordnet sie als **Vektorkette** - auf K2 eines
|
||||||
|
Bausteins liegt K1 des naechsten, Start am AS (`csv:kette-ordnen`, Toleranz
|
||||||
|
2 mm) - und schneidet die Typfolge in Einheiten (`csv:kette-einheiten`):
|
||||||
|
eine **Foerdereinheit** beginnt am Separator vor der Umlenkstation und endet
|
||||||
|
mit der Motorstation, alles dazwischen ist eine **Gefaelleeinheit**; AS/ES
|
||||||
|
bleiben eigene Zeilen. Kurven sind dabei kein Problem, weil nur die
|
||||||
|
KS-Nachbarschaft zaehlt. Je Einheit entsteht ein Proxy `ZZ_UNIT_MARKER` auf
|
||||||
|
der vereinigten Boundingbox (gemessen an kurzlebigen Kopien der Bausteine),
|
||||||
|
mit K1 vom ersten und K2 vom letzten Baustein, `LAENGE_m` = Summe der
|
||||||
|
Streckenelement-Laengen K1->K2, `ANZAHL_BOEGEN`. Alle Proxies werden nach
|
||||||
|
dem Export geloescht, ausser der Debug-Schalter `csv_leave_proxies` ist
|
||||||
|
gesetzt. Reisst die KS-Kette ab, meldet der Export das (`exp-kette-luecke`)
|
||||||
|
und fuehrt den Rest als eigene Teilkette weiter. Die fruehere Gruppierung
|
||||||
|
ueber die sepliste-XDATA und den Separator-Typ (`SSG_SEP_TYP`) ist entfallen.
|
||||||
|
|
||||||
**Die `bbox` ist das einzige Feld, das `vla-getboundingbox` braucht** — alle
|
**Die `bbox` ist das einzige Feld, das `vla-getboundingbox` braucht** — alle
|
||||||
anderen Felder kommen aus rohen DXF-Gruppencodes oder XDATA. Ein Ausfall von
|
anderen Felder kommen aus rohen DXF-Gruppencodes oder XDATA. Ein Ausfall von
|
||||||
|
|||||||
@@ -711,6 +711,15 @@
|
|||||||
"exp-asmark-blockdef-fehler": "\n[EXPORT] WARNUNG: Blockdefinition '%1' konnte nicht angelegt werden - es werden keine AS/ES-Marker gesetzt.",
|
"exp-asmark-blockdef-fehler": "\n[EXPORT] WARNUNG: Blockdefinition '%1' konnte nicht angelegt werden - es werden keine AS/ES-Marker gesetzt.",
|
||||||
"exp-asmark-bilanz": "\n[EXPORT] AS/ES-Marker: %1 neu, %2 mit bisheriger ID uebernommen, %3 verwaiste entfernt.",
|
"exp-asmark-bilanz": "\n[EXPORT] AS/ES-Marker: %1 neu, %2 mit bisheriger ID uebernommen, %3 verwaiste entfernt.",
|
||||||
"exp-asmark-ids": "\n[EXPORT] %1 AS/ES-Marker mit ihrer ID am sepliste-Eintrag vermerkt.",
|
"exp-asmark-ids": "\n[EXPORT] %1 AS/ES-Marker mit ihrer ID am sepliste-Eintrag vermerkt.",
|
||||||
|
"exp-unitmark-blockdef": "\n[EXPORT] Blockdefinition '%1' fuer die Einheiten-Proxies angelegt.",
|
||||||
|
"exp-unitmark-blockdef-fehler": "\n[EXPORT] WARNUNG: Blockdefinition '%1' konnte nicht angelegt werden - es werden keine Foerder-/Gefaelleeinheiten exportiert.",
|
||||||
|
"exp-unitmark-bilanz": "\n[EXPORT] Foerder-/Gefaelleeinheiten: %1 Proxy(s) erzeugt, %2 alte entfernt.",
|
||||||
|
"exp-unitmark-ids": "\n[EXPORT] %1 Einheiten-Proxy(s) mit ID versehen.",
|
||||||
|
"exp-kette-luecke": "\n[EXPORT] WARNUNG: Kette '%1' reisst ab (kein K1 auf dem letzten K2) - %2 Baustein(e) als eigene Teilkette weitergefuehrt, Einheitengrenzen dort pruefen.",
|
||||||
|
"exp-hilfskopien-behalten": "\n[EXPORT] csv_leave_proxies=1: %1 %2 bleiben in der Zeichnung (Abschalten: (dbg-schalter-off \"csv_leave_proxies\"))",
|
||||||
|
"exp-art-separator": "Separator-Kopie(n)",
|
||||||
|
"exp-art-element": "Element-Kopie(n)",
|
||||||
|
"exp-art-einheit": "Einheiten-Proxy(s)",
|
||||||
"exp-update-hoehe-drehung": "\n[%1] Aktualisiere Hoehe/Drehung...",
|
"exp-update-hoehe-drehung": "\n[%1] Aktualisiere Hoehe/Drehung...",
|
||||||
"exp-collect-blocks": "\n[%1] Sammle relevante Bloecke...",
|
"exp-collect-blocks": "\n[%1] Sammle relevante Bloecke...",
|
||||||
"exp-no-blocks-found": "\n[%1] Keine relevanten Bloecke gefunden.",
|
"exp-no-blocks-found": "\n[%1] Keine relevanten Bloecke gefunden.",
|
||||||
|
|||||||
@@ -711,6 +711,15 @@
|
|||||||
"exp-asmark-blockdef-fehler": "\n[EXPORT] WARNING: block definition '%1' could not be created - no AS/ES markers are placed.",
|
"exp-asmark-blockdef-fehler": "\n[EXPORT] WARNING: block definition '%1' could not be created - no AS/ES markers are placed.",
|
||||||
"exp-asmark-bilanz": "\n[EXPORT] AS/ES markers: %1 new, %2 kept with their previous ID, %3 orphaned ones removed.",
|
"exp-asmark-bilanz": "\n[EXPORT] AS/ES markers: %1 new, %2 kept with their previous ID, %3 orphaned ones removed.",
|
||||||
"exp-asmark-ids": "\n[EXPORT] %1 AS/ES marker ID(s) recorded at their sepliste entry.",
|
"exp-asmark-ids": "\n[EXPORT] %1 AS/ES marker ID(s) recorded at their sepliste entry.",
|
||||||
|
"exp-unitmark-blockdef": "\n[EXPORT] Block definition '%1' for the unit proxies created.",
|
||||||
|
"exp-unitmark-blockdef-fehler": "\n[EXPORT] WARNING: block definition '%1' could not be created - no conveyor/gravity units are exported.",
|
||||||
|
"exp-unitmark-bilanz": "\n[EXPORT] Conveyor/gravity units: %1 proxy(s) created, %2 old ones removed.",
|
||||||
|
"exp-unitmark-ids": "\n[EXPORT] %1 unit proxy(s) given an ID.",
|
||||||
|
"exp-kette-luecke": "\n[EXPORT] WARNING: chain '%1' is broken (no K1 at the last K2) - %2 element(s) continued as a separate sub-chain, check the unit boundaries there.",
|
||||||
|
"exp-hilfskopien-behalten": "\n[EXPORT] csv_leave_proxies=1: %1 %2 remain in the drawing (switch off: (dbg-schalter-off \"csv_leave_proxies\"))",
|
||||||
|
"exp-art-separator": "separator copy(ies)",
|
||||||
|
"exp-art-element": "element copy(ies)",
|
||||||
|
"exp-art-einheit": "unit proxy(ies)",
|
||||||
"exp-update-hoehe-drehung": "\n[%1] Updating height/rotation...",
|
"exp-update-hoehe-drehung": "\n[%1] Updating height/rotation...",
|
||||||
"exp-collect-blocks": "\n[%1] Collecting relevant blocks...",
|
"exp-collect-blocks": "\n[%1] Collecting relevant blocks...",
|
||||||
"exp-no-blocks-found": "\n[%1] No relevant blocks found.",
|
"exp-no-blocks-found": "\n[%1] No relevant blocks found.",
|
||||||
|
|||||||
+10
-4
@@ -274,7 +274,7 @@ def build_element_merkmale(block):
|
|||||||
|
|
||||||
def build_einheit_merkmale(block):
|
def build_einheit_merkmale(block):
|
||||||
"""Merkmale-Dict fuer eine Foerdereinheit-/Gefaelleeinheit-Zeile (ZZ_UNIT_
|
"""Merkmale-Dict fuer eine Foerdereinheit-/Gefaelleeinheit-Zeile (ZZ_UNIT_
|
||||||
MARKER, siehe csv:unitmark-aktualisieren in export.lsp und
|
MARKER, siehe csv:ketten-verarbeiten in export.lsp und
|
||||||
pattern_unit_marker in cfg/export.cfg).
|
pattern_unit_marker in cfg/export.cfg).
|
||||||
|
|
||||||
LAENGE_m/ANZAHL_BOEGEN kommen direkt aus den ATTDEFs des Markers - dort
|
LAENGE_m/ANZAHL_BOEGEN kommen direkt aus den ATTDEFs des Markers - dort
|
||||||
@@ -282,9 +282,15 @@ def build_einheit_merkmale(block):
|
|||||||
zugeordneten Streckenelement-Mitglieder bzw. Anzahl der Bogen-Mitglieder).
|
zugeordneten Streckenelement-Mitglieder bzw. Anzahl der Bogen-Mitglieder).
|
||||||
Python hat im gruppierten Modus KEINEN Zugriff auf die Einzelteile selbst
|
Python hat im gruppierten Modus KEINEN Zugriff auf die Einzelteile selbst
|
||||||
(die werden dort gar nicht erst exportiert), daher keine eigene
|
(die werden dort gar nicht erst exportiert), daher keine eigene
|
||||||
Neuberechnung hier."""
|
Neuberechnung hier.
|
||||||
|
|
||||||
|
"Zuordnung" ist die ID des VF_n/GF_n-Wrappers, aus dem diese Einheit
|
||||||
|
stammt (ATTDEF ZUORDNUNG, von csv:ketten-verarbeiten gesetzt) -
|
||||||
|
dieselbe Bedeutung wie "Zuordnung" bei build_sensor_merkmale, nur eine
|
||||||
|
Ebene hoeher (Einheit -> Strecke statt Sensor -> Carrier)."""
|
||||||
attribs = block.get("attribs", {})
|
attribs = block.get("attribs", {})
|
||||||
return {
|
return {
|
||||||
|
"Zuordnung": attribs.get("ZUORDNUNG", ""),
|
||||||
"Laenge_m": attribs.get("LAENGE_m", ""),
|
"Laenge_m": attribs.get("LAENGE_m", ""),
|
||||||
"Anzahl_Boegen": attribs.get("ANZAHL_BOEGEN", ""),
|
"Anzahl_Boegen": attribs.get("ANZAHL_BOEGEN", ""),
|
||||||
}
|
}
|
||||||
@@ -1034,8 +1040,8 @@ def process_blocks(blocks, lookup, dbg=None):
|
|||||||
continue
|
continue
|
||||||
|
|
||||||
# ZZ_UNIT_MARKER (siehe cfg/export.cfg pattern_unit_marker sowie
|
# ZZ_UNIT_MARKER (siehe cfg/export.cfg pattern_unit_marker sowie
|
||||||
# csv:unitmark-aktualisieren in Lisp/export.lsp): der persistente
|
# csv:ketten-verarbeiten in Lisp/export.lsp): der temporaere
|
||||||
# Marker, den Lisp je zusammenhaengendem Foerderer-/Gefaelle-Abschnitt
|
# Proxy, den Lisp je zusammenhaengendem Foerderer-/Gefaelle-Abschnitt
|
||||||
# einer VF_n/GF_n-Kette setzt (gruppierter Modus, Default). TYP
|
# einer VF_n/GF_n-Kette setzt (gruppierter Modus, Default). TYP
|
||||||
# entscheidet VF->Foerdereinheit / GF->Gefaelleeinheit, analog zur
|
# entscheidet VF->Foerdereinheit / GF->Gefaelleeinheit, analog zur
|
||||||
# AS/ES-Klassifikation oben. K1/K2 brauchen keine Sonderbehandlung -
|
# AS/ES-Klassifikation oben. K1/K2 brauchen keine Sonderbehandlung -
|
||||||
|
|||||||
+1
-1
@@ -416,7 +416,7 @@ SKIP_BLOCKS = set(BLOCKPATTERNS.get("pattern_ks_subblocks", ["K1", "K2", "K3", "
|
|||||||
# siehe csv:element-proxies-erzeugen, export.lsp; nur im Rohdaten-Modus
|
# siehe csv:element-proxies-erzeugen, export.lsp; nur im Rohdaten-Modus
|
||||||
# *csv-export-alle-elemente*=T ueberhaupt in export_raw.json vorhanden) sowie
|
# *csv-export-alle-elemente*=T ueberhaupt in export_raw.json vorhanden) sowie
|
||||||
# fuer die gruppierten Foerdereinheit-/Gefaelleeinheit-Marker (ZZ_UNIT_MARKER,
|
# fuer die gruppierten Foerdereinheit-/Gefaelleeinheit-Marker (ZZ_UNIT_MARKER,
|
||||||
# csv:unitmark-aktualisieren, Default-Modus): ihre Stueckzahl steckt bereits
|
# csv:ketten-verarbeiten, Default-Modus): ihre Stueckzahl steckt bereits
|
||||||
# in den GF_Bogen_*/VF_Bogen_*/ANZAHL_VF/ANZAHL_GF-Attributen des Wrappers
|
# in den GF_Bogen_*/VF_Bogen_*/ANZAHL_VF/ANZAHL_GF-Attributen des Wrappers
|
||||||
# (*strecke-attr-gruppe*, ssg_core.lsp) - ein eigener Sivas-Eintrag wuerde
|
# (*strecke-attr-gruppe*, ssg_core.lsp) - ein eigener Sivas-Eintrag wuerde
|
||||||
# ebenso doppelt zaehlen. Muss VOR der pattern_strecke_module-Pruefung unten
|
# ebenso doppelt zaehlen. Muss VOR der pattern_strecke_module-Pruefung unten
|
||||||
|
|||||||
+98
-136
@@ -530,229 +530,217 @@
|
|||||||
<Command>^C^C(ssg-ensure "OmniModulInsert") OMNI_EDIT</Command>
|
<Command>^C^C(ssg-ensure "OmniModulInsert") OMNI_EDIT</Command>
|
||||||
</Macro>
|
</Macro>
|
||||||
</MenuMacro>
|
</MenuMacro>
|
||||||
<MenuMacro UID="MM_00114">
|
<MenuMacro UID="MM_00113">
|
||||||
<Macro>
|
<Macro>
|
||||||
<Name>Rohrabhaenger</Name>
|
<Name>Geruest...</Name>
|
||||||
<Command>^C^C(ssg-ensure "GeruestInsert") GERUEST_ROHRABHAENGER</Command>
|
<Command>^C^C(ssg-ensure "GeruestInsert") GERUEST</Command>
|
||||||
</Macro>
|
</Macro>
|
||||||
</MenuMacro>
|
</MenuMacro>
|
||||||
<MenuMacro UID="MM_00116">
|
<MenuMacro UID="MM_00116">
|
||||||
<Macro>
|
|
||||||
<Name>2 Zoll Saeulen</Name>
|
|
||||||
<Command>^C^C(ssg-ensure "GeruestInsert") GERUEST_SAEULE_2ZOLL</Command>
|
|
||||||
</Macro>
|
|
||||||
</MenuMacro>
|
|
||||||
<MenuMacro UID="MM_00117">
|
|
||||||
<Macro>
|
|
||||||
<Name>1 Zoll Saeulen</Name>
|
|
||||||
<Command>^C^C(ssg-ensure "GeruestInsert") GERUEST_SAEULE_1ZOLL</Command>
|
|
||||||
</Macro>
|
|
||||||
</MenuMacro>
|
|
||||||
<MenuMacro UID="MM_00118">
|
|
||||||
<Macro>
|
|
||||||
<Name>Wandbefestigung</Name>
|
|
||||||
<Command>^C^C(ssg-ensure "GeruestInsert") GERUEST_WANDBEFESTIGUNG</Command>
|
|
||||||
</Macro>
|
|
||||||
</MenuMacro>
|
|
||||||
<MenuMacro UID="MM_00121">
|
|
||||||
<Macro>
|
<Macro>
|
||||||
<Name>Marker einfuegen</Name>
|
<Name>Marker einfuegen</Name>
|
||||||
<Command>^C^C(ssg-ensure "Tro_Edit") TRO_INSERT</Command>
|
<Command>^C^C(ssg-ensure "Tro_Edit") TRO_INSERT</Command>
|
||||||
</Macro>
|
</Macro>
|
||||||
</MenuMacro>
|
</MenuMacro>
|
||||||
<MenuMacro UID="MM_00122">
|
<MenuMacro UID="MM_00117">
|
||||||
<Macro>
|
<Macro>
|
||||||
<Name>Marker bearbeiten</Name>
|
<Name>Marker bearbeiten</Name>
|
||||||
<Command>^C^C(ssg-ensure "Tro_Edit") TRO_EDIT</Command>
|
<Command>^C^C(ssg-ensure "Tro_Edit") TRO_EDIT</Command>
|
||||||
</Macro>
|
</Macro>
|
||||||
</MenuMacro>
|
</MenuMacro>
|
||||||
<MenuMacro UID="MM_00123">
|
<MenuMacro UID="MM_00118">
|
||||||
<Macro>
|
<Macro>
|
||||||
<Name>Bearbeiten (Auto)</Name>
|
<Name>Bearbeiten (Auto)</Name>
|
||||||
<Command>^C^C(ssg-ensure "SSG_LIB_Commands") SSG_BLOCKEDIT</Command>
|
<Command>^C^C(ssg-ensure "SSG_LIB_Commands") SSG_BLOCKEDIT</Command>
|
||||||
</Macro>
|
</Macro>
|
||||||
</MenuMacro>
|
</MenuMacro>
|
||||||
<MenuMacro UID="MM_00125">
|
<MenuMacro UID="MM_00120">
|
||||||
<Macro>
|
<Macro>
|
||||||
<Name>Verbindung einfuegen</Name>
|
<Name>Verbindung einfuegen</Name>
|
||||||
<Command>^C^C(ssg-ensure "Connection_Edit") CONNECTION_INSERT</Command>
|
<Command>^C^C(ssg-ensure "Connection_Edit") CONNECTION_INSERT</Command>
|
||||||
</Macro>
|
</Macro>
|
||||||
</MenuMacro>
|
</MenuMacro>
|
||||||
<MenuMacro UID="MM_00126">
|
<MenuMacro UID="MM_00121">
|
||||||
<Macro>
|
<Macro>
|
||||||
<Name>Verbindung bearbeiten</Name>
|
<Name>Verbindung bearbeiten</Name>
|
||||||
<Command>^C^C(ssg-ensure "Connection_Edit") CONNECTION_EDIT</Command>
|
<Command>^C^C(ssg-ensure "Connection_Edit") CONNECTION_EDIT</Command>
|
||||||
</Macro>
|
</Macro>
|
||||||
</MenuMacro>
|
</MenuMacro>
|
||||||
<MenuMacro UID="MM_00128">
|
<MenuMacro UID="MM_00123">
|
||||||
<Macro>
|
<Macro>
|
||||||
<Name>Eingang</Name>
|
<Name>Eingang</Name>
|
||||||
<Command>^C^C(ssg-ensure "SSG_LIB_Commands") ILS_EINGANG_INSERT</Command>
|
<Command>^C^C(ssg-ensure "SSG_LIB_Commands") ILS_EINGANG_INSERT</Command>
|
||||||
</Macro>
|
</Macro>
|
||||||
</MenuMacro>
|
</MenuMacro>
|
||||||
<MenuMacro UID="MM_00129">
|
<MenuMacro UID="MM_00124">
|
||||||
<Macro>
|
<Macro>
|
||||||
<Name>Ausgang</Name>
|
<Name>Ausgang</Name>
|
||||||
<Command>^C^C(ssg-ensure "SSG_LIB_Commands") ILS_AUSGANG_INSERT</Command>
|
<Command>^C^C(ssg-ensure "SSG_LIB_Commands") ILS_AUSGANG_INSERT</Command>
|
||||||
</Macro>
|
</Macro>
|
||||||
</MenuMacro>
|
</MenuMacro>
|
||||||
<MenuMacro UID="MM_00130">
|
<MenuMacro UID="MM_00125">
|
||||||
<Macro>
|
<Macro>
|
||||||
<Name>SPS Schliessen</Name>
|
<Name>SPS Schliessen</Name>
|
||||||
<Command>^C^C</Command>
|
<Command>^C^C</Command>
|
||||||
</Macro>
|
</Macro>
|
||||||
</MenuMacro>
|
</MenuMacro>
|
||||||
<MenuMacro UID="MM_00132">
|
<MenuMacro UID="MM_00127">
|
||||||
<Macro>
|
<Macro>
|
||||||
<Name>Export Sivas</Name>
|
<Name>Export Sivas</Name>
|
||||||
<Command>^C^C(ssg-ensure "export") EXPORTSIVAS</Command>
|
<Command>^C^C(ssg-ensure "export") EXPORTSIVAS</Command>
|
||||||
</Macro>
|
</Macro>
|
||||||
</MenuMacro>
|
</MenuMacro>
|
||||||
<MenuMacro UID="MM_00133">
|
<MenuMacro UID="MM_00128">
|
||||||
<Macro>
|
<Macro>
|
||||||
<Name>Export CSV</Name>
|
<Name>Export CSV</Name>
|
||||||
<Command>^C^C(ssg-ensure "export") EXPORTCSV</Command>
|
<Command>^C^C(ssg-ensure "export") EXPORTCSV</Command>
|
||||||
</Macro>
|
</Macro>
|
||||||
</MenuMacro>
|
</MenuMacro>
|
||||||
<MenuMacro UID="MM_00135">
|
<MenuMacro UID="MM_00130">
|
||||||
<Macro>
|
<Macro>
|
||||||
<Name>Umschalten 2D und 3D</Name>
|
<Name>Umschalten 2D und 3D</Name>
|
||||||
<Command>^C^C(ssg-ensure "SSG_LIB_Commands") SSG_DIM_SWITCH</Command>
|
<Command>^C^C(ssg-ensure "SSG_LIB_Commands") SSG_DIM_SWITCH</Command>
|
||||||
</Macro>
|
</Macro>
|
||||||
</MenuMacro>
|
</MenuMacro>
|
||||||
<MenuMacro UID="MM_00136">
|
<MenuMacro UID="MM_00131">
|
||||||
<Macro>
|
<Macro>
|
||||||
<Name>Alle Bloecke auf 2D</Name>
|
<Name>Alle Bloecke auf 2D</Name>
|
||||||
<Command>^C^C(ssg-ensure "SSG_LIB_Commands") SSG_DIM_ALL_2D</Command>
|
<Command>^C^C(ssg-ensure "SSG_LIB_Commands") SSG_DIM_ALL_2D</Command>
|
||||||
</Macro>
|
</Macro>
|
||||||
</MenuMacro>
|
</MenuMacro>
|
||||||
<MenuMacro UID="MM_00137">
|
<MenuMacro UID="MM_00132">
|
||||||
<Macro>
|
<Macro>
|
||||||
<Name>Alle Bloecke auf 3D</Name>
|
<Name>Alle Bloecke auf 3D</Name>
|
||||||
<Command>^C^C(ssg-ensure "SSG_LIB_Commands") SSG_DIM_ALL_3D</Command>
|
<Command>^C^C(ssg-ensure "SSG_LIB_Commands") SSG_DIM_ALL_3D</Command>
|
||||||
</Macro>
|
</Macro>
|
||||||
</MenuMacro>
|
</MenuMacro>
|
||||||
<MenuMacro UID="MM_00138">
|
<MenuMacro UID="MM_00133">
|
||||||
<Macro>
|
<Macro>
|
||||||
<Name>Sprache</Name>
|
<Name>Sprache</Name>
|
||||||
<Command>^C^C(ssg-ensure "SSG_LIB_Commands") SSG_SPRACHE</Command>
|
<Command>^C^C(ssg-ensure "SSG_LIB_Commands") SSG_SPRACHE</Command>
|
||||||
</Macro>
|
</Macro>
|
||||||
</MenuMacro>
|
</MenuMacro>
|
||||||
<MenuMacro UID="MM_00139">
|
<MenuMacro UID="MM_00134">
|
||||||
<Macro>
|
<Macro>
|
||||||
<Name>Planquadrate an/aus</Name>
|
<Name>Planquadrate an/aus</Name>
|
||||||
<Command>^C^C(ssg-ensure "DrawPlanquadrate") PLANQUADRATE_TOGGLE</Command>
|
<Command>^C^C(ssg-ensure "DrawPlanquadrate") PLANQUADRATE_TOGGLE</Command>
|
||||||
</Macro>
|
</Macro>
|
||||||
</MenuMacro>
|
</MenuMacro>
|
||||||
<MenuMacro UID="MM_00142">
|
<MenuMacro UID="MM_00135">
|
||||||
|
<Macro>
|
||||||
|
<Name>CSV-Export</Name>
|
||||||
|
<Command>^C^C(ssg-ensure "export") CSV_EXPORT_KONFIG</Command>
|
||||||
|
</Macro>
|
||||||
|
</MenuMacro>
|
||||||
|
<MenuMacro UID="MM_00137">
|
||||||
<Macro>
|
<Macro>
|
||||||
<Name>alle Tests ausfuehren und exportieren</Name>
|
<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>
|
<Command>^C^C(load (strcat (getenv "DXFMAKRO") "/tests/test_run_all.lsp")) SSG_RUN_ALL_TESTS_EXPORT</Command>
|
||||||
</Macro>
|
</Macro>
|
||||||
</MenuMacro>
|
</MenuMacro>
|
||||||
<MenuMacro UID="MM_00143">
|
<MenuMacro UID="MM_00138">
|
||||||
<Macro>
|
<Macro>
|
||||||
<Name>Tests ausfuehren und stehen lassen</Name>
|
<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>
|
<Command>^C^C(load (strcat (getenv "DXFMAKRO") "/tests/test_run_all.lsp")) SSG_RUN_ALL_TESTS_OFFEN</Command>
|
||||||
</Macro>
|
</Macro>
|
||||||
</MenuMacro>
|
</MenuMacro>
|
||||||
<MenuMacro UID="MM_00144">
|
<MenuMacro UID="MM_00139">
|
||||||
<Macro>
|
<Macro>
|
||||||
<Name>Export CSV/Sivas ALL</Name>
|
<Name>Export CSV/Sivas ALL</Name>
|
||||||
<Command>^C^C(load (strcat (getenv "DXFMAKRO") "/tests/test_export_all.lsp")) TEST_EXPORT_ALL</Command>
|
<Command>^C^C(load (strcat (getenv "DXFMAKRO") "/tests/test_export_all.lsp")) TEST_EXPORT_ALL</Command>
|
||||||
</Macro>
|
</Macro>
|
||||||
</MenuMacro>
|
</MenuMacro>
|
||||||
<MenuMacro UID="MM_00146">
|
<MenuMacro UID="MM_00141">
|
||||||
<Macro>
|
<Macro>
|
||||||
<Name>Kreisel</Name>
|
<Name>Kreisel</Name>
|
||||||
<Command>^C^C(load (strcat (getenv "DXFMAKRO") "/tests/test_kreisel.lsp")) TEST_KREISEL</Command>
|
<Command>^C^C(load (strcat (getenv "DXFMAKRO") "/tests/test_kreisel.lsp")) TEST_KREISEL</Command>
|
||||||
</Macro>
|
</Macro>
|
||||||
</MenuMacro>
|
</MenuMacro>
|
||||||
<MenuMacro UID="MM_00147">
|
<MenuMacro UID="MM_00142">
|
||||||
<Macro>
|
<Macro>
|
||||||
<Name>Foerderer</Name>
|
<Name>Foerderer</Name>
|
||||||
<Command>^C^C(load (strcat (getenv "DXFMAKRO") "/tests/test_foerderer.lsp")) TEST_FOERDERER</Command>
|
<Command>^C^C(load (strcat (getenv "DXFMAKRO") "/tests/test_foerderer.lsp")) TEST_FOERDERER</Command>
|
||||||
</Macro>
|
</Macro>
|
||||||
</MenuMacro>
|
</MenuMacro>
|
||||||
<MenuMacro UID="MM_00148">
|
<MenuMacro UID="MM_00143">
|
||||||
<Macro>
|
<Macro>
|
||||||
<Name>Foerderer-Linienzug</Name>
|
<Name>Foerderer-Linienzug</Name>
|
||||||
<Command>^C^C(load (strcat (getenv "DXFMAKRO") "/tests/test_linienzug.lsp")) TEST_LINIENZUG TEST_LINIENZUG_STUFE2</Command>
|
<Command>^C^C(load (strcat (getenv "DXFMAKRO") "/tests/test_linienzug.lsp")) TEST_LINIENZUG TEST_LINIENZUG_STUFE2</Command>
|
||||||
</Macro>
|
</Macro>
|
||||||
</MenuMacro>
|
</MenuMacro>
|
||||||
<MenuMacro UID="MM_00149">
|
<MenuMacro UID="MM_00144">
|
||||||
<Macro>
|
<Macro>
|
||||||
<Name>Omniflo</Name>
|
<Name>Omniflo</Name>
|
||||||
<Command>^C^C(load (strcat (getenv "DXFMAKRO") "/tests/test_omniflo.lsp")) TEST_OMNIFLO</Command>
|
<Command>^C^C(load (strcat (getenv "DXFMAKRO") "/tests/test_omniflo.lsp")) TEST_OMNIFLO</Command>
|
||||||
</Macro>
|
</Macro>
|
||||||
</MenuMacro>
|
</MenuMacro>
|
||||||
<MenuMacro UID="MM_00150">
|
<MenuMacro UID="MM_00145">
|
||||||
<Macro>
|
<Macro>
|
||||||
<Name>Omniflo Strecke</Name>
|
<Name>Omniflo Strecke</Name>
|
||||||
<Command>^C^C(load (strcat (getenv "DXFMAKRO") "/tests/test_omniflo_strecke.lsp")) TEST_OMNIFLO_STRECKE</Command>
|
<Command>^C^C(load (strcat (getenv "DXFMAKRO") "/tests/test_omniflo_strecke.lsp")) TEST_OMNIFLO_STRECKE</Command>
|
||||||
</Macro>
|
</Macro>
|
||||||
</MenuMacro>
|
</MenuMacro>
|
||||||
<MenuMacro UID="MM_00151">
|
<MenuMacro UID="MM_00146">
|
||||||
<Macro>
|
<Macro>
|
||||||
<Name>Gefaellestrecke</Name>
|
<Name>Gefaellestrecke</Name>
|
||||||
<Command>^C^C(load (strcat (getenv "DXFMAKRO") "/tests/test_gefaellestrecke.lsp")) TEST_GEFAELLESTRECKE</Command>
|
<Command>^C^C(load (strcat (getenv "DXFMAKRO") "/tests/test_gefaellestrecke.lsp")) TEST_GEFAELLESTRECKE</Command>
|
||||||
</Macro>
|
</Macro>
|
||||||
</MenuMacro>
|
</MenuMacro>
|
||||||
<MenuMacro UID="MM_00152">
|
<MenuMacro UID="MM_00147">
|
||||||
<Macro>
|
<Macro>
|
||||||
<Name>Mubea Gesamtmodell</Name>
|
<Name>Mubea Gesamtmodell</Name>
|
||||||
<Command>^C^C(load (strcat (getenv "DXFMAKRO") "/tests/test_mubea.lsp")) TEST_MUBEA</Command>
|
<Command>^C^C(load (strcat (getenv "DXFMAKRO") "/tests/test_mubea.lsp")) TEST_MUBEA</Command>
|
||||||
</Macro>
|
</Macro>
|
||||||
</MenuMacro>
|
</MenuMacro>
|
||||||
<MenuMacro UID="MM_00153">
|
<MenuMacro UID="MM_00148">
|
||||||
<Macro>
|
<Macro>
|
||||||
<Name>HundM05 Kreisel-Abschnitt</Name>
|
<Name>HundM05 Kreisel-Abschnitt</Name>
|
||||||
<Command>^C^C(load (strcat (getenv "DXFMAKRO") "/tests/test_hundm05.lsp")) TEST_HUNDM05</Command>
|
<Command>^C^C(load (strcat (getenv "DXFMAKRO") "/tests/test_hundm05.lsp")) TEST_HUNDM05</Command>
|
||||||
</Macro>
|
</Macro>
|
||||||
</MenuMacro>
|
</MenuMacro>
|
||||||
<MenuMacro UID="MM_00154">
|
<MenuMacro UID="MM_00149">
|
||||||
<Macro>
|
<Macro>
|
||||||
<Name>KS 2D/3D pruefen (CSV)</Name>
|
<Name>KS 2D/3D pruefen (CSV)</Name>
|
||||||
<Command>^C^C(load (strcat (getenv "DXFMAKRO") "/Lisp/ks_pruefung.lsp")) KS_PRUEFEN</Command>
|
<Command>^C^C(load (strcat (getenv "DXFMAKRO") "/Lisp/ks_pruefung.lsp")) KS_PRUEFEN</Command>
|
||||||
</Macro>
|
</Macro>
|
||||||
</MenuMacro>
|
</MenuMacro>
|
||||||
<MenuMacro UID="MM_00166">
|
<MenuMacro UID="MM_00161">
|
||||||
<Macro>
|
<Macro>
|
||||||
<Name>Kreisel bearbeiten</Name>
|
<Name>Kreisel bearbeiten</Name>
|
||||||
<Command>(ssg-ensure "KreiselInsert") KreiselEdit</Command>
|
<Command>(ssg-ensure "KreiselInsert") KreiselEdit</Command>
|
||||||
</Macro>
|
</Macro>
|
||||||
</MenuMacro>
|
</MenuMacro>
|
||||||
<MenuMacro UID="MM_00167">
|
<MenuMacro UID="MM_00162">
|
||||||
<Macro>
|
<Macro>
|
||||||
<Name>Omniflo Element bearbeiten</Name>
|
<Name>Omniflo Element bearbeiten</Name>
|
||||||
<Command>(ssg-ensure "OmniModulInsert") OMNI_EDIT</Command>
|
<Command>(ssg-ensure "OmniModulInsert") OMNI_EDIT</Command>
|
||||||
</Macro>
|
</Macro>
|
||||||
</MenuMacro>
|
</MenuMacro>
|
||||||
<MenuMacro UID="MM_00168">
|
<MenuMacro UID="MM_00163">
|
||||||
<Macro>
|
<Macro>
|
||||||
<Name>Gefaellestrecke bearbeiten</Name>
|
<Name>Gefaellestrecke bearbeiten</Name>
|
||||||
<Command>(ssg-ensure "Gefaellestrecke") GEFAELLESTRECKE_EDIT</Command>
|
<Command>(ssg-ensure "Gefaellestrecke") GEFAELLESTRECKE_EDIT</Command>
|
||||||
</Macro>
|
</Macro>
|
||||||
</MenuMacro>
|
</MenuMacro>
|
||||||
<MenuMacro UID="MM_00169">
|
<MenuMacro UID="MM_00164">
|
||||||
<Macro>
|
<Macro>
|
||||||
<Name>VarioFoerderer bearbeiten</Name>
|
<Name>VarioFoerderer bearbeiten</Name>
|
||||||
<Command>(ssg-ensure "VarioFoerderer") VARIOFOERDERER_EDIT</Command>
|
<Command>(ssg-ensure "VarioFoerderer") VARIOFOERDERER_EDIT</Command>
|
||||||
</Macro>
|
</Macro>
|
||||||
</MenuMacro>
|
</MenuMacro>
|
||||||
<MenuMacro UID="MM_00170">
|
<MenuMacro UID="MM_00165">
|
||||||
<Macro>
|
<Macro>
|
||||||
<Name>TRO-Marker bearbeiten</Name>
|
<Name>TRO-Marker bearbeiten</Name>
|
||||||
<Command>(ssg-ensure "Tro_Edit") TRO_EDIT</Command>
|
<Command>(ssg-ensure "Tro_Edit") TRO_EDIT</Command>
|
||||||
</Macro>
|
</Macro>
|
||||||
</MenuMacro>
|
</MenuMacro>
|
||||||
<MenuMacro UID="MM_00171">
|
<MenuMacro UID="MM_00166">
|
||||||
<Macro>
|
<Macro>
|
||||||
<Name>Verbindung bearbeiten</Name>
|
<Name>Verbindung bearbeiten</Name>
|
||||||
<Command>(ssg-ensure "Connection_Edit") CONNECTION_EDIT</Command>
|
<Command>(ssg-ensure "Connection_Edit") CONNECTION_EDIT</Command>
|
||||||
</Macro>
|
</Macro>
|
||||||
</MenuMacro>
|
</MenuMacro>
|
||||||
<MenuMacro UID="MM_00173">
|
<MenuMacro UID="MM_00168">
|
||||||
<Macro>
|
<Macro>
|
||||||
<Name>SSG Bearbeiten (Auto)</Name>
|
<Name>SSG Bearbeiten (Auto)</Name>
|
||||||
<Command>(ssg-ensure "SSG_LIB_Commands") SSG_BLOCKEDIT</Command>
|
<Command>(ssg-ensure "SSG_LIB_Commands") SSG_BLOCKEDIT</Command>
|
||||||
@@ -769,11 +757,16 @@
|
|||||||
<Name>SSG_LIB</Name>
|
<Name>SSG_LIB</Name>
|
||||||
<PopMenuRef pUID="PM_00005"/>
|
<PopMenuRef pUID="PM_00005"/>
|
||||||
<PopMenuRef pUID="PM_00031"/>
|
<PopMenuRef pUID="PM_00031"/>
|
||||||
<PopMenuRef pUID="PM_00113"/>
|
<PopMenuItem>
|
||||||
<PopMenuRef pUID="PM_00119"/>
|
<NameRef>Geruest...</NameRef>
|
||||||
<PopMenuRef pUID="PM_00131"/>
|
<MenuItem>
|
||||||
<PopMenuRef pUID="PM_00134"/>
|
<MacroRef MenuMacroID="MM_00113"/>
|
||||||
<PopMenuRef pUID="PM_00141"/>
|
</MenuItem>
|
||||||
|
</PopMenuItem>
|
||||||
|
<PopMenuRef pUID="PM_00114"/>
|
||||||
|
<PopMenuRef pUID="PM_00126"/>
|
||||||
|
<PopMenuRef pUID="PM_00129"/>
|
||||||
|
<PopMenuRef pUID="PM_00136"/>
|
||||||
</PopMenu>
|
</PopMenu>
|
||||||
<PopMenu UID="PM_00005">
|
<PopMenu UID="PM_00005">
|
||||||
<Name>ILS</Name>
|
<Name>ILS</Name>
|
||||||
@@ -1366,276 +1359,245 @@
|
|||||||
</MenuItem>
|
</MenuItem>
|
||||||
</PopMenuItem>
|
</PopMenuItem>
|
||||||
</PopMenu>
|
</PopMenu>
|
||||||
<PopMenu UID="PM_00113">
|
<PopMenu UID="PM_00114">
|
||||||
<Name>Geruest</Name>
|
|
||||||
<PopMenuItem>
|
|
||||||
<NameRef>Rohrabhaenger</NameRef>
|
|
||||||
<MenuItem>
|
|
||||||
<MacroRef MenuMacroID="MM_00114"/>
|
|
||||||
</MenuItem>
|
|
||||||
</PopMenuItem>
|
|
||||||
<PopMenuRef pUID="PM_00115"/>
|
|
||||||
<PopMenuItem>
|
|
||||||
<NameRef>Wandbefestigung</NameRef>
|
|
||||||
<MenuItem>
|
|
||||||
<MacroRef MenuMacroID="MM_00118"/>
|
|
||||||
</MenuItem>
|
|
||||||
</PopMenuItem>
|
|
||||||
</PopMenu>
|
|
||||||
<PopMenu UID="PM_00115">
|
|
||||||
<Name>Saeulen</Name>
|
|
||||||
<PopMenuItem>
|
|
||||||
<NameRef>2 Zoll Saeulen</NameRef>
|
|
||||||
<MenuItem>
|
|
||||||
<MacroRef MenuMacroID="MM_00116"/>
|
|
||||||
</MenuItem>
|
|
||||||
</PopMenuItem>
|
|
||||||
<PopMenuItem>
|
|
||||||
<NameRef>1 Zoll Saeulen</NameRef>
|
|
||||||
<MenuItem>
|
|
||||||
<MacroRef MenuMacroID="MM_00117"/>
|
|
||||||
</MenuItem>
|
|
||||||
</PopMenuItem>
|
|
||||||
</PopMenu>
|
|
||||||
<PopMenu UID="PM_00119">
|
|
||||||
<Name>SPS</Name>
|
<Name>SPS</Name>
|
||||||
<PopMenuRef pUID="PM_00120"/>
|
<PopMenuRef pUID="PM_00115"/>
|
||||||
<PopMenuRef pUID="PM_00124"/>
|
<PopMenuRef pUID="PM_00119"/>
|
||||||
<PopMenuItem>
|
<PopMenuItem>
|
||||||
<NameRef>Eingang</NameRef>
|
<NameRef>Eingang</NameRef>
|
||||||
<MenuItem>
|
<MenuItem>
|
||||||
<MacroRef MenuMacroID="MM_00128"/>
|
<MacroRef MenuMacroID="MM_00123"/>
|
||||||
</MenuItem>
|
</MenuItem>
|
||||||
</PopMenuItem>
|
</PopMenuItem>
|
||||||
<PopMenuItem>
|
<PopMenuItem>
|
||||||
<NameRef>Ausgang</NameRef>
|
<NameRef>Ausgang</NameRef>
|
||||||
<MenuItem>
|
<MenuItem>
|
||||||
<MacroRef MenuMacroID="MM_00129"/>
|
<MacroRef MenuMacroID="MM_00124"/>
|
||||||
</MenuItem>
|
</MenuItem>
|
||||||
</PopMenuItem>
|
</PopMenuItem>
|
||||||
<PopMenuItem>
|
<PopMenuItem>
|
||||||
<NameRef>SPS Schliessen</NameRef>
|
<NameRef>SPS Schliessen</NameRef>
|
||||||
<MenuItem>
|
<MenuItem>
|
||||||
<MacroRef MenuMacroID="MM_00130"/>
|
<MacroRef MenuMacroID="MM_00125"/>
|
||||||
</MenuItem>
|
</MenuItem>
|
||||||
</PopMenuItem>
|
</PopMenuItem>
|
||||||
</PopMenu>
|
</PopMenu>
|
||||||
<PopMenu UID="PM_00120">
|
<PopMenu UID="PM_00115">
|
||||||
<Name>TRO</Name>
|
<Name>TRO</Name>
|
||||||
<PopMenuItem>
|
<PopMenuItem>
|
||||||
<NameRef>Marker einfuegen</NameRef>
|
<NameRef>Marker einfuegen</NameRef>
|
||||||
<MenuItem>
|
<MenuItem>
|
||||||
<MacroRef MenuMacroID="MM_00121"/>
|
<MacroRef MenuMacroID="MM_00116"/>
|
||||||
</MenuItem>
|
</MenuItem>
|
||||||
</PopMenuItem>
|
</PopMenuItem>
|
||||||
<PopMenuItem>
|
<PopMenuItem>
|
||||||
<NameRef>Marker bearbeiten</NameRef>
|
<NameRef>Marker bearbeiten</NameRef>
|
||||||
<MenuItem>
|
<MenuItem>
|
||||||
<MacroRef MenuMacroID="MM_00122"/>
|
<MacroRef MenuMacroID="MM_00117"/>
|
||||||
</MenuItem>
|
</MenuItem>
|
||||||
</PopMenuItem>
|
</PopMenuItem>
|
||||||
<PopMenuItem>
|
<PopMenuItem>
|
||||||
<NameRef>Bearbeiten (Auto)</NameRef>
|
<NameRef>Bearbeiten (Auto)</NameRef>
|
||||||
<MenuItem>
|
<MenuItem>
|
||||||
<MacroRef MenuMacroID="MM_00123"/>
|
<MacroRef MenuMacroID="MM_00118"/>
|
||||||
</MenuItem>
|
</MenuItem>
|
||||||
</PopMenuItem>
|
</PopMenuItem>
|
||||||
</PopMenu>
|
</PopMenu>
|
||||||
<PopMenu UID="PM_00124">
|
<PopMenu UID="PM_00119">
|
||||||
<Name>Connections</Name>
|
<Name>Connections</Name>
|
||||||
<PopMenuItem>
|
<PopMenuItem>
|
||||||
<NameRef>Verbindung einfuegen</NameRef>
|
<NameRef>Verbindung einfuegen</NameRef>
|
||||||
<MenuItem>
|
<MenuItem>
|
||||||
<MacroRef MenuMacroID="MM_00125"/>
|
<MacroRef MenuMacroID="MM_00120"/>
|
||||||
</MenuItem>
|
</MenuItem>
|
||||||
</PopMenuItem>
|
</PopMenuItem>
|
||||||
<PopMenuItem>
|
<PopMenuItem>
|
||||||
<NameRef>Verbindung bearbeiten</NameRef>
|
<NameRef>Verbindung bearbeiten</NameRef>
|
||||||
<MenuItem>
|
<MenuItem>
|
||||||
<MacroRef MenuMacroID="MM_00126"/>
|
<MacroRef MenuMacroID="MM_00121"/>
|
||||||
</MenuItem>
|
</MenuItem>
|
||||||
</PopMenuItem>
|
</PopMenuItem>
|
||||||
<PopMenuItem>
|
<PopMenuItem>
|
||||||
<NameRef>Bearbeiten (Auto)</NameRef>
|
<NameRef>Bearbeiten (Auto)</NameRef>
|
||||||
<MenuItem>
|
<MenuItem>
|
||||||
<MacroRef MenuMacroID="MM_00123"/>
|
<MacroRef MenuMacroID="MM_00118"/>
|
||||||
</MenuItem>
|
</MenuItem>
|
||||||
</PopMenuItem>
|
</PopMenuItem>
|
||||||
</PopMenu>
|
</PopMenu>
|
||||||
<PopMenu UID="PM_00131">
|
<PopMenu UID="PM_00126">
|
||||||
<Name>Export</Name>
|
<Name>Export</Name>
|
||||||
<PopMenuItem>
|
<PopMenuItem>
|
||||||
<NameRef>Export Sivas</NameRef>
|
<NameRef>Export Sivas</NameRef>
|
||||||
<MenuItem>
|
<MenuItem>
|
||||||
<MacroRef MenuMacroID="MM_00132"/>
|
<MacroRef MenuMacroID="MM_00127"/>
|
||||||
</MenuItem>
|
</MenuItem>
|
||||||
</PopMenuItem>
|
</PopMenuItem>
|
||||||
<PopMenuItem>
|
<PopMenuItem>
|
||||||
<NameRef>Export CSV</NameRef>
|
<NameRef>Export CSV</NameRef>
|
||||||
<MenuItem>
|
<MenuItem>
|
||||||
<MacroRef MenuMacroID="MM_00133"/>
|
<MacroRef MenuMacroID="MM_00128"/>
|
||||||
</MenuItem>
|
</MenuItem>
|
||||||
</PopMenuItem>
|
</PopMenuItem>
|
||||||
</PopMenu>
|
</PopMenu>
|
||||||
<PopMenu UID="PM_00134">
|
<PopMenu UID="PM_00129">
|
||||||
<Name>Konfiguration</Name>
|
<Name>Konfiguration</Name>
|
||||||
<PopMenuItem>
|
<PopMenuItem>
|
||||||
<NameRef>Umschalten 2D und 3D</NameRef>
|
<NameRef>Umschalten 2D und 3D</NameRef>
|
||||||
<MenuItem>
|
<MenuItem>
|
||||||
<MacroRef MenuMacroID="MM_00135"/>
|
<MacroRef MenuMacroID="MM_00130"/>
|
||||||
</MenuItem>
|
</MenuItem>
|
||||||
</PopMenuItem>
|
</PopMenuItem>
|
||||||
<PopMenuItem>
|
<PopMenuItem>
|
||||||
<NameRef>Alle Bloecke auf 2D</NameRef>
|
<NameRef>Alle Bloecke auf 2D</NameRef>
|
||||||
<MenuItem>
|
<MenuItem>
|
||||||
<MacroRef MenuMacroID="MM_00136"/>
|
<MacroRef MenuMacroID="MM_00131"/>
|
||||||
</MenuItem>
|
</MenuItem>
|
||||||
</PopMenuItem>
|
</PopMenuItem>
|
||||||
<PopMenuItem>
|
<PopMenuItem>
|
||||||
<NameRef>Alle Bloecke auf 3D</NameRef>
|
<NameRef>Alle Bloecke auf 3D</NameRef>
|
||||||
<MenuItem>
|
<MenuItem>
|
||||||
<MacroRef MenuMacroID="MM_00137"/>
|
<MacroRef MenuMacroID="MM_00132"/>
|
||||||
</MenuItem>
|
</MenuItem>
|
||||||
</PopMenuItem>
|
</PopMenuItem>
|
||||||
<PopMenuItem>
|
<PopMenuItem>
|
||||||
<NameRef>Sprache</NameRef>
|
<NameRef>Sprache</NameRef>
|
||||||
<MenuItem>
|
<MenuItem>
|
||||||
<MacroRef MenuMacroID="MM_00138"/>
|
<MacroRef MenuMacroID="MM_00133"/>
|
||||||
</MenuItem>
|
</MenuItem>
|
||||||
</PopMenuItem>
|
</PopMenuItem>
|
||||||
<PopMenuItem>
|
<PopMenuItem>
|
||||||
<NameRef>Planquadrate an/aus</NameRef>
|
<NameRef>Planquadrate an/aus</NameRef>
|
||||||
<MenuItem>
|
<MenuItem>
|
||||||
<MacroRef MenuMacroID="MM_00139"/>
|
<MacroRef MenuMacroID="MM_00134"/>
|
||||||
</MenuItem>
|
</MenuItem>
|
||||||
</PopMenuItem>
|
</PopMenuItem>
|
||||||
<PopMenuItem>
|
<PopMenuItem>
|
||||||
<NameRef>Konfiguration Schliessen</NameRef>
|
<NameRef>CSV-Export</NameRef>
|
||||||
<MenuItem>
|
<MenuItem>
|
||||||
<MacroRef MenuMacroID="MM_00130"/>
|
<MacroRef MenuMacroID="MM_00135"/>
|
||||||
</MenuItem>
|
</MenuItem>
|
||||||
</PopMenuItem>
|
</PopMenuItem>
|
||||||
</PopMenu>
|
</PopMenu>
|
||||||
<PopMenu UID="PM_00141">
|
<PopMenu UID="PM_00136">
|
||||||
<Name>Tests</Name>
|
<Name>Tests</Name>
|
||||||
<PopMenuItem>
|
<PopMenuItem>
|
||||||
<NameRef>alle Tests ausfuehren und exportieren</NameRef>
|
<NameRef>alle Tests ausfuehren und exportieren</NameRef>
|
||||||
<MenuItem>
|
<MenuItem>
|
||||||
<MacroRef MenuMacroID="MM_00142"/>
|
<MacroRef MenuMacroID="MM_00137"/>
|
||||||
</MenuItem>
|
</MenuItem>
|
||||||
</PopMenuItem>
|
</PopMenuItem>
|
||||||
<PopMenuItem>
|
<PopMenuItem>
|
||||||
<NameRef>Tests ausfuehren und stehen lassen</NameRef>
|
<NameRef>Tests ausfuehren und stehen lassen</NameRef>
|
||||||
<MenuItem>
|
<MenuItem>
|
||||||
<MacroRef MenuMacroID="MM_00143"/>
|
<MacroRef MenuMacroID="MM_00138"/>
|
||||||
</MenuItem>
|
</MenuItem>
|
||||||
</PopMenuItem>
|
</PopMenuItem>
|
||||||
<PopMenuItem>
|
<PopMenuItem>
|
||||||
<NameRef>Export CSV/Sivas ALL</NameRef>
|
<NameRef>Export CSV/Sivas ALL</NameRef>
|
||||||
<MenuItem>
|
<MenuItem>
|
||||||
<MacroRef MenuMacroID="MM_00144"/>
|
<MacroRef MenuMacroID="MM_00139"/>
|
||||||
</MenuItem>
|
</MenuItem>
|
||||||
</PopMenuItem>
|
</PopMenuItem>
|
||||||
<PopMenuItem IsSeparator="true"/>
|
<PopMenuItem IsSeparator="true"/>
|
||||||
<PopMenuItem>
|
<PopMenuItem>
|
||||||
<NameRef>Kreisel</NameRef>
|
<NameRef>Kreisel</NameRef>
|
||||||
<MenuItem>
|
<MenuItem>
|
||||||
<MacroRef MenuMacroID="MM_00146"/>
|
<MacroRef MenuMacroID="MM_00141"/>
|
||||||
</MenuItem>
|
</MenuItem>
|
||||||
</PopMenuItem>
|
</PopMenuItem>
|
||||||
<PopMenuItem>
|
<PopMenuItem>
|
||||||
<NameRef>Foerderer</NameRef>
|
<NameRef>Foerderer</NameRef>
|
||||||
<MenuItem>
|
<MenuItem>
|
||||||
<MacroRef MenuMacroID="MM_00147"/>
|
<MacroRef MenuMacroID="MM_00142"/>
|
||||||
</MenuItem>
|
</MenuItem>
|
||||||
</PopMenuItem>
|
</PopMenuItem>
|
||||||
<PopMenuItem>
|
<PopMenuItem>
|
||||||
<NameRef>Foerderer-Linienzug</NameRef>
|
<NameRef>Foerderer-Linienzug</NameRef>
|
||||||
<MenuItem>
|
<MenuItem>
|
||||||
<MacroRef MenuMacroID="MM_00148"/>
|
<MacroRef MenuMacroID="MM_00143"/>
|
||||||
</MenuItem>
|
</MenuItem>
|
||||||
</PopMenuItem>
|
</PopMenuItem>
|
||||||
<PopMenuItem>
|
<PopMenuItem>
|
||||||
<NameRef>Omniflo</NameRef>
|
<NameRef>Omniflo</NameRef>
|
||||||
<MenuItem>
|
<MenuItem>
|
||||||
<MacroRef MenuMacroID="MM_00149"/>
|
<MacroRef MenuMacroID="MM_00144"/>
|
||||||
</MenuItem>
|
</MenuItem>
|
||||||
</PopMenuItem>
|
</PopMenuItem>
|
||||||
<PopMenuItem>
|
<PopMenuItem>
|
||||||
<NameRef>Omniflo Strecke</NameRef>
|
<NameRef>Omniflo Strecke</NameRef>
|
||||||
<MenuItem>
|
<MenuItem>
|
||||||
<MacroRef MenuMacroID="MM_00150"/>
|
<MacroRef MenuMacroID="MM_00145"/>
|
||||||
</MenuItem>
|
</MenuItem>
|
||||||
</PopMenuItem>
|
</PopMenuItem>
|
||||||
<PopMenuItem>
|
<PopMenuItem>
|
||||||
<NameRef>Gefaellestrecke</NameRef>
|
<NameRef>Gefaellestrecke</NameRef>
|
||||||
<MenuItem>
|
<MenuItem>
|
||||||
<MacroRef MenuMacroID="MM_00151"/>
|
<MacroRef MenuMacroID="MM_00146"/>
|
||||||
</MenuItem>
|
</MenuItem>
|
||||||
</PopMenuItem>
|
</PopMenuItem>
|
||||||
<PopMenuItem>
|
<PopMenuItem>
|
||||||
<NameRef>Mubea Gesamtmodell</NameRef>
|
<NameRef>Mubea Gesamtmodell</NameRef>
|
||||||
<MenuItem>
|
<MenuItem>
|
||||||
<MacroRef MenuMacroID="MM_00152"/>
|
<MacroRef MenuMacroID="MM_00147"/>
|
||||||
</MenuItem>
|
</MenuItem>
|
||||||
</PopMenuItem>
|
</PopMenuItem>
|
||||||
<PopMenuItem>
|
<PopMenuItem>
|
||||||
<NameRef>HundM05 Kreisel-Abschnitt</NameRef>
|
<NameRef>HundM05 Kreisel-Abschnitt</NameRef>
|
||||||
<MenuItem>
|
<MenuItem>
|
||||||
<MacroRef MenuMacroID="MM_00153"/>
|
<MacroRef MenuMacroID="MM_00148"/>
|
||||||
</MenuItem>
|
</MenuItem>
|
||||||
</PopMenuItem>
|
</PopMenuItem>
|
||||||
<PopMenuItem>
|
<PopMenuItem>
|
||||||
<NameRef>KS 2D/3D pruefen (CSV)</NameRef>
|
<NameRef>KS 2D/3D pruefen (CSV)</NameRef>
|
||||||
<MenuItem>
|
<MenuItem>
|
||||||
<MacroRef MenuMacroID="MM_00154"/>
|
<MacroRef MenuMacroID="MM_00149"/>
|
||||||
</MenuItem>
|
</MenuItem>
|
||||||
</PopMenuItem>
|
</PopMenuItem>
|
||||||
</PopMenu>
|
</PopMenu>
|
||||||
<PopMenu UID="PM_00165">
|
<PopMenu UID="PM_00160">
|
||||||
<Alias>POP501</Alias>
|
<Alias>POP501</Alias>
|
||||||
<Name>SSG_LIB Edit Context</Name>
|
<Name>SSG_LIB Edit Context</Name>
|
||||||
<PopMenuItem>
|
<PopMenuItem>
|
||||||
<NameRef>Kreisel bearbeiten</NameRef>
|
<NameRef>Kreisel bearbeiten</NameRef>
|
||||||
<MenuItem>
|
<MenuItem>
|
||||||
<MacroRef MenuMacroID="MM_00166"/>
|
<MacroRef MenuMacroID="MM_00161"/>
|
||||||
</MenuItem>
|
</MenuItem>
|
||||||
</PopMenuItem>
|
</PopMenuItem>
|
||||||
<PopMenuItem>
|
<PopMenuItem>
|
||||||
<NameRef>Omniflo Element bearbeiten</NameRef>
|
<NameRef>Omniflo Element bearbeiten</NameRef>
|
||||||
<MenuItem>
|
<MenuItem>
|
||||||
<MacroRef MenuMacroID="MM_00167"/>
|
<MacroRef MenuMacroID="MM_00162"/>
|
||||||
</MenuItem>
|
</MenuItem>
|
||||||
</PopMenuItem>
|
</PopMenuItem>
|
||||||
<PopMenuItem>
|
<PopMenuItem>
|
||||||
<NameRef>Gefaellestrecke bearbeiten</NameRef>
|
<NameRef>Gefaellestrecke bearbeiten</NameRef>
|
||||||
<MenuItem>
|
<MenuItem>
|
||||||
<MacroRef MenuMacroID="MM_00168"/>
|
<MacroRef MenuMacroID="MM_00163"/>
|
||||||
</MenuItem>
|
</MenuItem>
|
||||||
</PopMenuItem>
|
</PopMenuItem>
|
||||||
<PopMenuItem>
|
<PopMenuItem>
|
||||||
<NameRef>VarioFoerderer bearbeiten</NameRef>
|
<NameRef>VarioFoerderer bearbeiten</NameRef>
|
||||||
<MenuItem>
|
<MenuItem>
|
||||||
<MacroRef MenuMacroID="MM_00169"/>
|
<MacroRef MenuMacroID="MM_00164"/>
|
||||||
</MenuItem>
|
</MenuItem>
|
||||||
</PopMenuItem>
|
</PopMenuItem>
|
||||||
<PopMenuItem>
|
<PopMenuItem>
|
||||||
<NameRef>TRO-Marker bearbeiten</NameRef>
|
<NameRef>TRO-Marker bearbeiten</NameRef>
|
||||||
<MenuItem>
|
<MenuItem>
|
||||||
<MacroRef MenuMacroID="MM_00170"/>
|
<MacroRef MenuMacroID="MM_00165"/>
|
||||||
</MenuItem>
|
</MenuItem>
|
||||||
</PopMenuItem>
|
</PopMenuItem>
|
||||||
<PopMenuItem>
|
<PopMenuItem>
|
||||||
<NameRef>Verbindung bearbeiten</NameRef>
|
<NameRef>Verbindung bearbeiten</NameRef>
|
||||||
<MenuItem>
|
<MenuItem>
|
||||||
<MacroRef MenuMacroID="MM_00171"/>
|
<MacroRef MenuMacroID="MM_00166"/>
|
||||||
</MenuItem>
|
</MenuItem>
|
||||||
</PopMenuItem>
|
</PopMenuItem>
|
||||||
<PopMenuItem IsSeparator="true"/>
|
<PopMenuItem IsSeparator="true"/>
|
||||||
<PopMenuItem>
|
<PopMenuItem>
|
||||||
<NameRef>SSG Bearbeiten (Auto)</NameRef>
|
<NameRef>SSG Bearbeiten (Auto)</NameRef>
|
||||||
<MenuItem>
|
<MenuItem>
|
||||||
<MacroRef MenuMacroID="MM_00173"/>
|
<MacroRef MenuMacroID="MM_00168"/>
|
||||||
</MenuItem>
|
</MenuItem>
|
||||||
</PopMenuItem>
|
</PopMenuItem>
|
||||||
</PopMenu>
|
</PopMenu>
|
||||||
|
|||||||
+52
-77
@@ -411,86 +411,61 @@
|
|||||||
(tu-eq "csv:element-teileart/unbekannt" nil
|
(tu-eq "csv:element-teileart/unbekannt" nil
|
||||||
(csv:element-teileart "AS_Element_90_links"))
|
(csv:element-teileart "AS_Element_90_links"))
|
||||||
|
|
||||||
;; --- csv:sepliste-partition: sepliste in Foerdereinheit-/Gefaelleeinheit-
|
;; --- csv:kette-typ: Bausteintyp einer VF_n/GF_n-Kette aus dem Blocknamen --
|
||||||
;; Spannen aufteilen (Lauflaengen-Kodierung ueber den effektiven Typ) -----
|
(tu-eq "csv:kette-typ/as" "AS" (csv:kette-typ "AS_Element_90_links_3D"))
|
||||||
;; Reine Rechenfunktion auf (typ lfdnr strecke-typ welt-pt)-Tupeln, hier
|
(tu-eq "csv:kette-typ/es" "ES" (csv:kette-typ "ES_Element_30_rechts_2D"))
|
||||||
;; ohne Zeichnung testbar (welt-pt wird von der Partitionierung selbst
|
(tu-eq "csv:kette-typ/sep" "SEP" (csv:kette-typ "Staustrecke_Separator_SP_300_mm_3D"))
|
||||||
;; nicht gebraucht, darum ueberall nil).
|
(tu-eq "csv:kette-typ/streckenelement" "STRECKENELEMENT"
|
||||||
|
(csv:kette-typ "Staustrecke_SP_1000_mm_3D"))
|
||||||
|
(tu-eq "csv:kette-typ/umlenk" "UMLENKSTATION"
|
||||||
|
(csv:kette-typ "Vario_Umlenkstation_500mm_rechts_3D"))
|
||||||
|
(tu-nil "csv:kette-typ/symbol-ist-kein-baustein" (csv:kette-typ "Separator_SP_3D"))
|
||||||
|
|
||||||
;; HundM05 VF_1-Beispiel (echt verifiziert): AS, SEP2=VF, SEP3=GF, SEP4=GF,
|
;; --- csv:kette-einheiten: geordnete Typfolge in VF-/GF-Einheiten schneiden
|
||||||
;; SEP5=VF, ES -> 3 Einheiten VF,GF,VF. SEP3+SEP4 bracketen GEMEINSAM eine
|
;; VF = Separator vor der Umlenkstation ... Motorstation; alles dazwischen
|
||||||
;; einzige Gefaelleeinheit (nicht zwei separate).
|
;; GF; AS/ES gehoeren zu keiner Einheit. Reine Rechenfunktion.
|
||||||
(setq _sep-hundm05
|
;; HundM05 VF_5 (Bausteinfolge aus der Testzeichnung, per KS-Kette geordnet):
|
||||||
'(("AS" 1 nil nil) ("SEP" 2 "VF" nil) ("SEP" 3 "GF" nil)
|
;; GF(1) VF(2..10) GF(11 12) VF(13..25) GF(26 27) - passt zu L_GF_m
|
||||||
("SEP" 4 "GF" nil) ("SEP" 5 "VF" nil) ("ES" 6 nil nil)))
|
;; "0.727,0.201,0.318" des Wrappers (drei Gefaelleabschnitte).
|
||||||
(tu-eq "csv:sepliste-partition/hundm05"
|
(setq _kette-hundm05
|
||||||
'(("VF" (1 2)) ("GF" (3 4)) ("VF" (5 6)))
|
'("AS" "STRECKENELEMENT" "SEP" "UMLENKSTATION" "BOGEN" "STRECKENELEMENT"
|
||||||
(csv:sepliste-partition _sep-hundm05))
|
"BOGEN" "STRECKENELEMENT" "BOGEN" "BOGEN" "MOTORSTATION" "SEP"
|
||||||
|
"STRECKENELEMENT" "SEP" "UMLENKSTATION" "BOGEN" "STRECKENELEMENT" "BOGEN"
|
||||||
;; Minimalfall: nur AS-SEP(VF)-ES, kein Typwechsel -> 1 Foerdereinheit ueber
|
"BOGEN" "BOGEN" "STRECKENELEMENT" "BOGEN" "BOGEN" "STRECKENELEMENT" "BOGEN"
|
||||||
;; die ganze Kette.
|
"MOTORSTATION" "STRECKENELEMENT" "SEP" "ES"))
|
||||||
(setq _sep-minimal '(("AS" 1 nil nil) ("SEP" 2 "VF" nil) ("ES" 3 nil nil)))
|
(tu-eq "csv:kette-einheiten/hundm05"
|
||||||
(tu-eq "csv:sepliste-partition/minimal"
|
'(("GF" (1)) ("VF" (2 3 4 5 6 7 8 9 10)) ("GF" (11 12))
|
||||||
'(("VF" (1 2 3)))
|
("VF" (13 14 15 16 17 18 19 20 21 22 23 24 25)) ("GF" (26 27)))
|
||||||
(csv:sepliste-partition _sep-minimal))
|
(csv:kette-einheiten _kette-hundm05))
|
||||||
|
;; Reine Gefaellestrecke ohne Stationen -> eine einzige GF.
|
||||||
;; Einzel-GF-Fall: die Gefaelleeinheit wird nur von EINEM SEP (nicht zwei)
|
(tu-eq "csv:kette-einheiten/nur-gf"
|
||||||
;; UND dem nachfolgenden ES bracketiert.
|
|
||||||
(setq _sep-einzel-gf
|
|
||||||
'(("AS" 1 nil nil) ("SEP" 2 "VF" nil) ("SEP" 3 "GF" nil) ("ES" 4 nil nil)))
|
|
||||||
(tu-eq "csv:sepliste-partition/einzel-gf"
|
|
||||||
'(("VF" (1 2)) ("GF" (3 4)))
|
|
||||||
(csv:sepliste-partition _sep-einzel-gf))
|
|
||||||
|
|
||||||
;; 3+ gleichtypige SEP-Eintraege hintereinander muessen weiterhin EINE
|
|
||||||
;; Einheit ergeben (nicht mehrere) - Lauflaengen-Regel, kein Sonderfall.
|
|
||||||
(setq _sep-dreifach-gf
|
|
||||||
'(("AS" 1 nil nil) ("SEP" 2 "VF" nil) ("SEP" 3 "GF" nil)
|
|
||||||
("SEP" 4 "GF" nil) ("SEP" 5 "GF" nil) ("SEP" 6 "VF" nil) ("ES" 7 nil nil)))
|
|
||||||
(tu-eq "csv:sepliste-partition/dreifach-gf"
|
|
||||||
'(("VF" (1 2)) ("GF" (3 4 5)) ("VF" (6 7)))
|
|
||||||
(csv:sepliste-partition _sep-dreifach-gf))
|
|
||||||
|
|
||||||
;; Kette beginnend mit GF (AS erbt den Typ des ersten SEP-Eintrags, hier GF
|
|
||||||
;; statt des sonstigen Default "VF").
|
|
||||||
(setq _sep-startet-gf
|
|
||||||
'(("AS" 1 nil nil) ("SEP" 2 "GF" nil) ("ES" 3 nil nil)))
|
|
||||||
(tu-eq "csv:sepliste-partition/startet-gf"
|
|
||||||
'(("GF" (1 2 3)))
|
'(("GF" (1 2 3)))
|
||||||
(csv:sepliste-partition _sep-startet-gf))
|
(csv:kette-einheiten '("AS" "STRECKENELEMENT" "BOGEN" "SEP" "ES")))
|
||||||
|
;; Kette beginnt direkt mit dem Foerderer (Separator gleich hinter dem AS),
|
||||||
|
;; endet mit der Motorstation vor dem ES -> nur eine VF, keine leeren GF.
|
||||||
|
(tu-eq "csv:kette-einheiten/nur-vf"
|
||||||
|
'(("VF" (1 2 3 4)))
|
||||||
|
(csv:kette-einheiten '("AS" "SEP" "UMLENKSTATION" "STRECKENELEMENT" "MOTORSTATION" "ES")))
|
||||||
|
;; Umlenkstation ohne Separator davor beginnt die VF selbst; der Separator,
|
||||||
|
;; der NICHT vor einer Umlenkstation steht, bleibt im Gefaelle.
|
||||||
|
(tu-eq "csv:kette-einheiten/umlenk-ohne-sep"
|
||||||
|
'(("GF" (1 2)) ("VF" (3 4 5)))
|
||||||
|
(csv:kette-einheiten '("AS" "SEP" "BOGEN" "UMLENKSTATION" "STRECKENELEMENT" "MOTORSTATION" "ES")))
|
||||||
|
|
||||||
;; --- csv:dot2: 2D-Skalarprodukt ---
|
;; --- csv:kette-ordnen: Vektorkette K2 -> K1, unabhaengig von der
|
||||||
(tu-eqf "csv:dot2/achsen" 0.0 (csv:dot2 '(1.0 0.0) '(0.0 1.0)))
|
;; Eingangsreihenfolge; Start am AS. rec wird dafuer nicht gebraucht (nil).
|
||||||
(tu-eqf "csv:dot2/parallel" 6.0 (csv:dot2 '(2.0 0.0) '(3.0 0.0)))
|
(setq _t-as (list "AS" nil '(0.0 0.0 0.0) '(10.0 0.0 0.0)))
|
||||||
|
(setq _t-s1 (list "STRECKENELEMENT" nil '(10.0 0.0 0.0) '(20.0 0.0 0.0)))
|
||||||
;; --- csv:element-unit-zuordnung: Elemente per Kettenrichtungs-Projektion
|
(setq _t-b (list "BOGEN" nil '(20.0 0.0 0.0) '(20.0 10.0 0.0)))
|
||||||
;; den Einheiten-Spannen zuordnen und INNERHALB jeder Spanne nach der
|
(setq _t-es (list "ES" nil '(20.0 10.0 0.0) '(30.0 10.0 0.0)))
|
||||||
;; Projektion sortieren -----------------------------------------------
|
(tu-eq "csv:kette-ordnen/verwuerfelt"
|
||||||
;; Gerade Kette AS(0,0) -SEP2(VF, 10,0)- SEP3(GF, 20,0) -ES(30,0)- entlang
|
(list _t-as _t-s1 _t-b _t-es)
|
||||||
;; der X-Achse. unit-spans: VF=[1,2], GF=[2,3] (SEP2 gehoert zu beiden
|
(csv:kette-ordnen (list _t-b _t-es _t-as _t-s1) "TEST"))
|
||||||
;; Spannen als Grenzmarker, siehe csv:sepliste-partition).
|
;; Innerhalb der Toleranz (2 mm) gilt ein Anschluss noch als geschlossen.
|
||||||
(setq _sep-proj
|
(setq _t-s1b (list "STRECKENELEMENT" nil '(11.5 0.0 0.0) '(20.0 0.0 0.0)))
|
||||||
'(("AS" 1 nil (0.0 0.0 0.0)) ("SEP" 2 "VF" (10.0 0.0 0.0))
|
(tu-eq "csv:kette-ordnen/toleranz"
|
||||||
("SEP" 3 "GF" (20.0 0.0 0.0)) ("ES" 4 nil (30.0 0.0 0.0))))
|
(list _t-as _t-s1b)
|
||||||
(setq _spans-proj (csv:sepliste-partition _sep-proj))
|
(csv:kette-ordnen (list _t-s1b _t-as) "TEST"))
|
||||||
(tu-eq "csv:sepliste-partition/proj-spans" '(("VF" (1 2)) ("GF" (3 4))) _spans-proj)
|
|
||||||
;; Zwei Elemente: eines bei x=5 (klar in der VF-Spanne [0,10]), eines bei
|
|
||||||
;; x=17 (in der Luecke zwischen den Spannen-Grenzpunkten [10,20], aber
|
|
||||||
;; naeher an der GF-Grenze 20 als an der VF-Grenze 10 - eindeutig GF, kein
|
|
||||||
;; Gleichstand wie bei x=15 in der Luecken-Mitte).
|
|
||||||
(setq _elem-vf (list 'PROXY1 'WRAPPER "STRECKENELEMENT" '(5.0 0.0 0.0)))
|
|
||||||
(setq _elem-gf (list 'PROXY2 'WRAPPER "STRECKENELEMENT" '(17.0 0.0 0.0)))
|
|
||||||
(setq _zuord (csv:element-unit-zuordnung _spans-proj _sep-proj (list _elem-vf _elem-gf)))
|
|
||||||
(tu-eq "csv:element-unit-zuordnung/vf-treffer" (list _elem-vf) (nth 0 _zuord))
|
|
||||||
(tu-eq "csv:element-unit-zuordnung/gf-treffer" (list _elem-gf) (nth 1 _zuord))
|
|
||||||
|
|
||||||
;; Sortierung innerhalb einer Spanne: zwei Elemente in der VF-Spanne,
|
|
||||||
;; absichtlich in "falscher" Reihenfolge uebergeben - das Ergebnis muss
|
|
||||||
;; nach x sortiert sein (frueheres x zuerst).
|
|
||||||
(setq _elem-a (list 'PROXY_A 'WRAPPER "BOGEN" '(8.0 0.0 0.0)))
|
|
||||||
(setq _elem-b (list 'PROXY_B 'WRAPPER "BOGEN" '(2.0 0.0 0.0)))
|
|
||||||
(setq _zuord2 (csv:element-unit-zuordnung _spans-proj _sep-proj (list _elem-a _elem-b)))
|
|
||||||
(tu-eq "csv:element-unit-zuordnung/sortiert" (list _elem-b _elem-a) (nth 0 _zuord2))
|
|
||||||
|
|
||||||
;; --- csv:export-modus-setzen / -p-Praedikate: 3 Modi + Ungueltig-Schutz --
|
;; --- csv:export-modus-setzen / -p-Praedikate: 3 Modi + Ungueltig-Schutz --
|
||||||
;; Bestehenden Modus sichern/wiederherstellen, damit dieser Testblock keine
|
;; Bestehenden Modus sichern/wiederherstellen, damit dieser Testblock keine
|
||||||
|
|||||||
Reference in New Issue
Block a user