# Conflicts:
#	MAIN_SSG.rdx
This commit is contained in:
2023-11-08 13:23:39 +01:00
39 changed files with 53635 additions and 74 deletions
@@ -0,0 +1,260 @@
# Zuordnung zwischen der Zeile im RD Export und SIVAS ILS TOS Kalkulation
## 1. Generelle Zeilenüberschrift der RD Exportdatei
```csv
Elementnummer;TeileArt;TeileId;NachbarIds;Bezeichnung;Planquadrat;Merkmale;
```
## 2. Zeilen mit Kreiselinformationen
### RD-csv Zeile
Die Spalte "TeileArt" enthält "ILS 2.0 Kreisel", z.B.
```csv
X;Y;"ILS 2.0 Kreisel";xx-111-yyy--22--zzz;"Kreisel 1 im 1.Stock";"1/A";
```
alternativ heisst die TeileArt auch **"ILS 2.0 Kreisel mit Pin"**
Die letzte Spalte ist ein json String mit allen Attributen:
```json
{
1 "Kreiselart":"Pin/Standard",
2 "Abstand (Kreiselachse A - Kreiselachse) in Meter": "4.5",
3 "Anzahl der Separatoren":"2",
4 "Anzahl der Scanner":"1",
5 "Anzahl der Weichen":"1",
}
```
### Attribute im TOS
|AttributeId| Eingabe-text | Inhalte |
|:---------:| -------------- | ------- |
|3000| Kreisel - Modul| ja/nein |
|3001| Kreisel 001 oder Kreisel mit PINBAND 001 oder Verbindungskreisel 001| Kreisel/Kreisel mit PINBAND/Verbindungskreisel/nein |
|3003| Kreisel 001 - zu fertigende Menge| ganze Zahl |
|3005| Kreisel 001 - Abstand (Kreiselachse A - Kreiselachse B) in Meter | Fliesskomma Zahl |
|3007| Kreisel 001 - Anzahl der zusätzlichen / abzuziehenden Separatoren (pro Kreisel sind zwei Separatoren vorgesehen)| ganze Zahl |
|3313| Kreisel 001 - Anzahl der zusätzlichen / abzuziehenden Scanner (pro Kreisel mit PINBAND ist ein Scanner vorgesehen)| ganze Zahl |
|3314| Kreisel 001 - Anzahl der zusätzlichen / abzuziehenden Weichen (pro Kreisel und Kreisel mit PINBAND ist ein Weichenset vorgesehen)| ganze Zahl |
### Zuordnung
Die folgenden Attribut IDs werden entnommen aus der json Bezeichnung in Zeile
| Attribut | json Zeile |
| -------- | ---------- |
|3005 | 2 |
|3007 | 3 |
|3313 | 4 |
|3314 | 5 |
die folgenden Attributids existieren für alle Folgekreisel:
|Bezeichnung|Wert|Kreisel 002|Kreisel 003|Kreisel 004|Kreisel 005|Kreisel 006|Kreisel 007|Kreisel 008|Kreisel 009|Kreisel 010|
| --------- | -- |:---------:|:---------:|:---------:|:---------:|:---------:|:---------:|:---------:|:---------:|:---------:|
|weiterer Kreisel | ja/nein |3320|3330|3340|3350|3360|3410|3420|3430|3440|
|Kreisel 00X mit PINBAND oder Verbindungskreisel | Kreisel/Kreisel mit PINBAND/Verbindungskreisel/nein |3321|3331|3341|3351|3361|3411|3421|3431|3441|
|zu fertigende Menge | ganze Zahl |3323|3333|3343|3353|3363|3413|3423|3433|3443|
|Abstand (Kreiselachse A - Kreiselachse B) in Meter | Fliesskomma Zahl |3324|3334|3344|3354|3364|3414|3424|3434|3444|
|Anzahl der zusätzlichen / abzuziehenden Separatoren | ganze Zahl |3326|3336|3346|3356|3366|3416|3426|3436|3446|
|Anzahl der zusätzlichen / abzuziehenden Scanner | ganze Zahl |3328|3338|3348|3358|3368|3418|3428|3438|3448|
|Anzahl der zusätzlichen / abzuziehenden Weichen | ganze Zahl |3329|3339|3349|3359|3369|3419|3429|3439|3449|
## 3. Zeilen für das Eckrad
### RD-csv Zeile
```csv
X;Y;"ILS 2.0 Eckrad";"Eckrad 1.Stock";"1/A";
```
letzte Spalte
```json
{
1 "Anzahl der Zusatzseparatoren":"3",
}
```
### Attribute im TOS
|AttributeId| Eingabe-text | Inhalte |
|:---------:| -------------- | ------- |
| 3380 | Eckrad |ja/nein |
| 3381 | Eckrad - zu fertigende Menge| ganze Zahl |
## 4. Zeilen für die Gefällestrecke
### RD-csv Zeile
```csv
X;Y;"ILS 2|.0 Gefällestrecke";"Gefällestrecke am 1. Kreisel";"1/A";
```
letzte Spalte
```json
{
1 "Anzahl der Zusatzseparatoren":"3",
2 "Länge in Meter":"3.2",
}
```
### Attribute im TOS
|AttributeId| Eingabe-text | Inhalte |
|:---------:| -------------- | ------- |
|3300|Gefällestrecke 001 |ja /nein |
|3600|Gefällestrecke 001 - zu fertigende Menge | ganze Zahl |
|3601|Gefällestrecke 001 - Länge in Meter | Fliesskomma Zahl |
|3602|Gefällestrecke 001 - Zusatzseparator (pro Gefällestrecke ist ein Separator vorgesehen) |ja/nein |
|3603|Gefällestrecke 001 - Anzahl der Zusatzseparatoren | ganze Zahl |
|3609|Gefällestrecke 001 - Anzahl der Scanner | ganze Zahl |
### Zuordnung
Die folgenden Attribut IDs werden entnommen aus der json Bezeichnung in Zeile
| Attribut | json Zeile |
| -------- | ---------- |
|3601 | 2 |
|3603 | 1 |
**TODO**: Die Attribute
"Anzahl der Zusatzseparatoren",
"Anzahl der Scanner"
sind noch nicht im json enthalten.
die folgenden Attributids existieren für alle weiteren Gefällestrecken:
|Bezeichnung|Wert|Gefällestr. 002|Gefällestr. 003|Gefällestr. 004|Gefällestr. 005|Gefällestr. 006|Gefällestr. 007|Gefällestr. 008|Gefällestr. 009|Gefällestr. 010|
| --------- | -- |:---------:|:---------:|:---------:|:---------:|:---------:|:---------:|:---------:|:---------:|:---------:|
|Gefällestrecke 00X | ja/nein |3610|3620|3630|3640|3650|3660|3670|3680|3690|
|zu fertigende Menge | ganze Zahl |3612|3622|3632|3642|3652|3662|3672|3682|3692|
|Länge in Meter | Fliesskomma Zahl |3613|3623|3633|3643|3653|3663|3673|3683|3693|
|Zusatz Separator | ja/nein |3614|3624|3634|3644|3654|3664|3674|3684|3694|
|Anzahl der Zusatzseparatoren | ganze Zahl |3615|3625|3635|3645|3655|3665|3675|3685|3695|
|Anzahl der Scanner | ganze Zahl |3616|3626|3636|3646|3656|3666|3676|3686|3696|
## 5. Zeilen für Förderer
### RD-csv Zeile
```csv
X;Y;"Förderer";"Förderer am 1. Kreisel";"1/A";
```
letzte Spalte
```json
{
1 "Höhe ETF oben in Meter":"3",
2 "Höhe ETF unten in Meter":"2.3",
3 "Zusatzseparator":"3",
}
```
### Attribute im TOS
|AttributeId| Eingabetext | Inhalte |
|:---------:| -------------- | ------- |
|3900| Förderer ILS | ja/nein |
|3901| ETF 01 | ja/nein |
|3903| ETF 01 - zu fertigende Menge| ganze Zahl |
|3909| ETF 01 - Höhe ETF oben in Meter | Fliesskomma Zahl|
|3910| ETF 01 - Höhe ETF unten in Meter| Fliesskomma Zahl|
|3913| ETF 01 - Länge der zusätzlichen Gefällestrecke ETF 01 in Meter (ohne Gefällestrecke bitte 0 eintragen) | Fliesskomma Zahl|
|3914| ETF 01 - Zusatzseparator der zusätzlichen Gefällestrecke ETF 01 | ja/nein |
|3915| ETF 01 - Anzahl der Zusatzseparatoren der zusätzlichen Gefällestrecke ETF | ganze Zahl |
### Zuordnung
Die folgenden Attribut IDs werden entnommen aus der json Bezeichnung in Zeile
| Attribut | json Zeile |
| -------- | ---------- |
|3909 | 1 |
|3910 | 2 |
|3914 | 3 |
**TODO**: Die Attribute
"Länge der zusätzlichen Gefällestrecke in Meter",
"Anzahl der Zusatzseparatoren der zusätzlichen Gefällestrecke ETF"
sind noch nicht im json enthalten.
die folgenden Attributids existieren für alle weiteren Förderer:
|Bezeichnung|Wert|ETF 002|ETF 003|ETF 004|ETF 005|
| --------- | -- |:-----:|:-----:|:-----:|:-----:|
|weiterer ETF 00X| ja/nein |3920|3930|3940|3951|
|zu fertigende Menge| ganze Zahl |3922|3932|3942|3952|
|Höhe ETF oben in Meter | Fliesskomma Zahl |3923|3933|3943|3953|
|Höhe ETF unten in Meter| Fliesskomma Zahl |3924|3934|3944|3954|
|Länge der zusätzlichen Gefällestrecke ETF 01 in Meter (ohne Gefällestrecke bitte 0 eintragen) | Fliesskomma Zahl |3926|3936|3946|3956|
|Zusatzseparator der zusätzlichen Gefällestrecke ETF 01 | ja/nein |3927|3937|3947|3957|
|Anzahl der Zusatzseparatoren der zusätzlichen Gefällestrecke ETF | ganze Zahl |3928|3938|3948|3958|
## 6. Zeilen für Bügelträger Beladung
### RD-csv Zeile
```csv
X;Y;"BT - Beladung";"BT Beladung";"2/X";
```
letzte Spalte
```json
{}
```
### Attribute im TOS
|AttributeId| Eingabe-text | Inhalte |
|:---------:| -------------- | ------- |
|3500| Zusatzmodul| ja/nein |
|3501| BT - Beladung (mit Vereinzeler, ohne Separator) | ja/nein |
|3503| Anzahl der BT - Entladung (mit Vereinzeler, ohne Separator | ganze Zahl |
## 7. Zeilen für Abwurf
### RD-csv Zeile
```csv
X;Y;"Abwurf für Klammerbügel";"Abwurf";"2/Y";
```
letzte Spalte
```json
{}
```
### Attribute im TOS
|AttributeId| Eingabe-text | Inhalte |
|:---------:| -------------- | ------- |
|3502| Abwurf für Klammerbügel Sitzbezüge / Kleiderbügel| ja/nein |
|3504| Anzahl der Abwürfe | ganze Zahl |
## 8. Zeilen für Weiche
### RD-csv Zeile
```csv
X;Y;"ILS 2.0 Weiche";"Weiche 1: zw. Kreisel 2 und Kreisel 3";""
```
letzte Spalte
```json
{
1 "Weichenart":"passiv/aktiv"
}
```
### Attribute im TOS
-> Weichen werden im TOS nicht berücksichtigt, da hinter jedem Kreisel eine entsprechende Anzahl hinterlegt ist.
Binary file not shown.

After

Width:  |  Height:  |  Size: 8.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 19 KiB

+39
View File
@@ -0,0 +1,39 @@
# CSV Export
Die Export Datei sollte grundsätzlich eine .csv Datei in **utf8** Codierung sein, welche wie folgt aufgebaut sein soll:
```csv
Elementnummer;TeileArt;TeileId;NachbarIds;Bezeichnung;Planquadrat;Merkmale;
1;"ILS 2.0 Kreisel";(id);(nachbarids);"Kreisel 1 im 1.Stock";"1/A";{ "Kreiselart":"Pin/Standard", Abstand (Kreiselachse A - Kreiselachse) in Meter": "4.5", "Anzahl der Separatoren":"2", "Anzahl der Scanner":"1", "Anzahl der Scanner":"1", "Anzahl der Rampen": "4" }
2;"ILS 2.0 Kreisel mit Pin";(id);(nachbarids);"Pinkreisel 1 im 1.Stock";"1/A";{ "Abstand (Kreiselachse A - Kreiselachse) in Meter": "4.5", "Anzahl der Separatoren":"2", "Anzahl der Scanner":"1", "Anzahl der Scanner":"1", "Anzahl der Weichen": "4" }
3;"ILS 2.0 Eckrad";(id);(nachbarids);"Eckrad 1.Stock";"1/A";{ "Anzahl der Zusatzseparatoren":"3", "Länge in Meter":"3.2",}
4;"ILS 2.0 Gefällestrecke";(id);(nachbarids);"Gefällestrecke am 1. Kreisel";"1/A";{ "Anzahl der Zusatzseparatoren":"3", "Länge in Meter":"3.2",}
5;"Förderer";(id);(nachbarids);"Förderer am 1. Kreisel";"1/A";{ "Höhe ETF oben in Meter":"3", "Höhe ETF unten in Meter":"2.3", "Zusatzseparator":"3",}
6;"BT - Beladung";"BT Beladung";"2/X";{}
7;"Abwurf für Klammerbügel";(id);(nachbarids);"Abwurf";"2/Y";{}
8:"ILS 2.0 Weiche";(id);(nachbarids);"Weiche 1: zw. Kreisel 2 und Kreisel 3";"{ "Weichenart":"passiv/aktiv" }"
```
Die erste Zeile ist als Kommentar enthalten.
Jede Zeile ist exemplarisch für eine aktuell implementiertes Objekt (Kreisel, Kreisel mit Pin, Eckrad, usw.).
Beim Export ist dies einfache eine Liste aller Objekte, welche vom Benutzer in dieser Session / in dieser Anlage angelegt wurden.
Die Merkmale jedes Objektes werden wie in die Datei geschrieben, wie sie im RD verwendet werden. Eine Übersetzung in die Merkmale für das ERP findet ausserhalb statt.
- Die **Elementnummer** ist einfach eine laufende Nummer
- Die **TeileArt** ist ein Bezeichner, welches jedes Objekt als Eigenschaft mit gegeben hat (ich bin ein “Kreisel”, “Kreisel mit Pin”, etc.)
- **TeileId** ist eine eindeutige ID diese Objekts
- **NachbarIds** ist eine kommaseparierte Liste aller Objekte, welche sich in direkter Nachbarschaft zum Objekt befinden
- **Bezeichnung** sollte vom Benutzer jedem Objekt zugewiesen werden können, um in den Listen besser ein Verständnis zu diesem Objekt zu finden
- **Planquadrat** ist die Position des Objekts auf der 2D Ebene. Wurde kein Planquadrat definiert, sollen einfach die X/Y Koordinaten des Objekts ausgegeben werden
- **Merkmale** sind die vom Nutzer angegebenen Merkmale dieses Objeks, Z.B. Abstand der Motor zur Spannstation, Höhe, usw. im json format
Beim Kreisel ist dies zum Beispiel
```json
{
"Kreiselart":"Pin/Standard",
"Abstand (Kreiselachse A - Kreiselachse) in Meter": "4.5",
"Anzahl der Separatoren":"2",
"Anzahl der Scanner":"1",
"Anzahl der Scanner":"1",
"Anzahl der Rampen": "4"
}
```
+66
View File
@@ -0,0 +1,66 @@
- [1. Frequently Asked Questions](#1-frequently-asked-questions)
- [1.1. definiert man ein einfaches Objekt/Shape?](#11-definiert-man-ein-einfaches-objektshape)
- [1.2. versehe ich ein Shape mit seinen Eigenschaften? Z.B. Kreis mit Durchmesser und Farbe](#12-versehe-ich-ein-shape-mit-seinen-eigenschaften-zb-kreis-mit-durchmesser-und-farbe)
- [1.3. ist das zum Shape zugehörige svg Handling (Format, Grösse, wo liegt diese, wie bezieht man sich darauf)?](#13-ist-das-zum-shape-zugehörige-svg-handling-format-grösse-wo-liegt-diese-wie-bezieht-man-sich-darauf)
- [1.4. erstelle ich ein Dialogfenster mit einer Meldung, die sich nach Bestätigung mit ok wieder schliesst](#14-erstelle-ich-ein-dialogfenster-mit-einer-meldung-die-sich-nach-bestätigung-mit-ok-wieder-schliesst)
- [1.5. bekomme ich Dialogfenster mit Eingabemöglichkeit für eine Ganze Zahl, eine Flieskommazahl und einen Text?](#15-bekomme-ich-dialogfenster-mit-eingabemöglichkeit-für-eine-ganze-zahl-eine-flieskommazahl-und-einen-text)
- [1.6. werden hier fehlerhafte Eingaben in der Oberfläche verarbeitet (z.B. fehlerhafter Typ), oder wird dies technisch verhindert?](#16-werden-hier-fehlerhafte-eingaben-in-der-oberfläche-verarbeitet-zb-fehlerhafter-typ-oder-wird-dies-technisch-verhindert)
- [1.7. frage ich die Eingaben des Nutzers aus dem Fenster in einer Callback Routine ab?](#17-frage-ich-die-eingaben-des-nutzers-aus-dem-fenster-in-einer-callback-routine-ab)
- [1.8. definiert man einen Knopf in der oberen/unteren/Seitenleiste und die zugehörige Callbackroutine?](#18-definiert-man-einen-knopf-in-der-oberenunterenseitenleiste-und-die-zugehörige-callbackroutine)
- [1.9. definiert man ein Shape mit Linien bzw. svg Datei?](#19-definiert-man-ein-shape-mit-linien-bzw-svg-datei)
- [1.10. kann man die Muster und Farbdefinition der Linie ändern?](#110-kann-man-die-muster-und-farbdefinition-der-linie-ändern)
- [1.11. funktioniert ein Fenster mit einem Dropdown für 4 Varianten?](#111-funktioniert-ein-fenster-mit-einem-dropdown-für-4-varianten)
- [1.12. erstelle ich ein Fenster mit Dropdown deren angebotene Varianten aus einer Text/Config-Datei kommen?](#112-erstelle-ich-ein-fenster-mit-dropdown-deren-angebotene-varianten-aus-einer-textconfig-datei-kommen)
- [1.13. erstelle ich einen Slider, dessen Wert in einer Funktion verwendet und dann am Screen ausgegeben wird ?](#113-erstelle-ich-einen-slider-dessen-wert-in-einer-funktion-verwendet-und-dann-am-screen-ausgegeben-wird-)
- [1.14. erzeugt man einen Split für verschiedener Anlagetypen in verschiedenen rdx Files?](#114-erzeugt-man-einen-split-für-verschiedener-anlagetypen-in-verschiedenen-rdx-files)
- [1.15. erzeugt man eine Baumstruktur für das neue Omiflow System?](#115-erzeugt-man-eine-baumstruktur-für-das-neue-omiflow-system)
- [1.16. bekomme ich ein neues Objekt im Baum?](#116-bekomme-ich-ein-neues-objekt-im-baum)
# 1. Frequently Asked Questions
Wie?
## 1.1. definiert man ein einfaches Objekt/Shape?
Man definiert, welche Daten ein Shape enthalten soll, z.B. hier beim Eckrad
![ Typendefinition eines Eckrades ](bilder/Eckrad-Typendefinition.png)
das dann im Ruledesigner so aussieht
![ Typendefinition des Kreisels](bilder/Eckrad.png)
## 1.2. versehe ich ein Shape mit seinen Eigenschaften? Z.B. Kreis mit Durchmesser und Farbe
## 1.3. ist das zum Shape zugehörige svg Handling (Format, Grösse, wo liegt diese, wie bezieht man sich darauf)?
## 1.4. erstelle ich ein Dialogfenster mit einer Meldung, die sich nach Bestätigung mit ok wieder schliesst
## 1.5. bekomme ich Dialogfenster mit Eingabemöglichkeit für eine Ganze Zahl, eine Flieskommazahl und einen Text?
## 1.6. werden hier fehlerhafte Eingaben in der Oberfläche verarbeitet (z.B. fehlerhafter Typ), oder wird dies technisch verhindert?
## 1.7. frage ich die Eingaben des Nutzers aus dem Fenster in einer Callback Routine ab?
## 1.8. definiert man einen Knopf in der oberen/unteren/Seitenleiste und die zugehörige Callbackroutine?
## 1.9. definiert man ein Shape mit Linien bzw. svg Datei?
## 1.10. kann man die Muster und Farbdefinition der Linie ändern?
## 1.11. funktioniert ein Fenster mit einem Dropdown für 4 Varianten?
## 1.12. erstelle ich ein Fenster mit Dropdown deren angebotene Varianten aus einer Text/Config-Datei kommen?
## 1.13. erstelle ich einen Slider, dessen Wert in einer Funktion verwendet und dann am Screen ausgegeben wird ?
## 1.14. erzeugt man einen Split für verschiedener Anlagetypen in verschiedenen rdx Files?
## 1.15. erzeugt man eine Baumstruktur für das neue Omiflow System?
## 1.16. bekomme ich ein neues Objekt im Baum?
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
+247 -74
View File
@@ -1,6 +1,10 @@
<?xml version="1.0" encoding="utf-8"?>
<PROCESS Id="RDK:0001" Name="MAIN_SSG" ModernUI="True" Options="(GITSAVEMODE)(NOUPDATEINCLUDEFILES)" Expanded="True">
<<<<<<< HEAD
<PROCESSPROPERTY CrUser="pmarani [ENGMARANI17R]" CrDate="2022-05-05T18:05:31" ModUser="dre [NBDELP3561-04C]" ModDate="2023-11-08T13:18:11" LanguageVersion="2014.1.3.610" />
=======
<PROCESSPROPERTY CrUser="pmarani [ENGMARANI17R]" CrDate="2022-05-05T18:05:31" ModUser="PBUadmin [DESKTOP-1HM2V4B]" ModDate="2023-10-12T11:07:33" LanguageVersion="2014.1.3.596" />
>>>>>>> 7af10efe7baf3a896d753acee04d89d552c4a1a4
<GROUP Id="RDK:0002" Name="Declarations" SubType="Declarations" Expanded="True">
<GROUP Id="RDK:0003" Name="Types" SubType="TypeSet" IncludeDate="0">
<GROUP Id="RDK:26387" Name="SSG_Group" SubType="TypeSet" IncludeDate="0">
@@ -709,6 +713,13 @@
<FIELD Id="RDK:1345489" Name="NewHoeheUnten" Type="double" />
<FIELD Id="RDK:1370529" Name="Text" Type="string" />
</TYPE>
<TYPE Id="RDK:1529401" Name="IndirectConnGefaellestreckeType" SubType="structure" HasArrayType="True" DesignTimeNotes="20231011 -1-">
<TYPE_VALUES />
<FIELD Id="RDK:1529402" Name="Id" Type="string" />
<FIELD Id="RDK:1529403" Name="Cp" Type="string" />
<FIELD Id="RDK:1529404" Name="ConnToId" Type="string" />
<FIELD Id="RDK:1539541" Name="NewHoehe" Type="string" />
</TYPE>
</GROUP>
<GROUP Id="RDK:0004" Name="Parameters" SubType="ParameterDefs" />
<GROUP Id="RDK:0005" Name="Global Variables" SubType="VarSet" IncludeDate="0">
@@ -718,6 +729,15 @@
<VAR Id="RDK:1007751" Name="PolyLineShapeList" Type="Editor2DShapeTypeList" />
<VAR Id="RDK:412307" Name="Shape_Prototype" Type="Editor2DShapeType" />
<VAR Id="RDK:260961" Name="LinkedShapeIDs" Type="string[]" />
<VAR Id="RDK:1276768" Name="KreiselGroupList" Type="string[]" DesignTimeNotes="20230928 -1-" />
<VAR Id="RDK:1486596" Name="RemovedGefaellestreckeList" Type="string[]" DesignTimeNotes="20231005 -1-" />
<VAR Id="RDK:1194866" Name="ConnectedGefaellestreckeList" Type="string[]" DesignTimeNotes="20230928 -1-" />
<VAR Id="RDK:1528236" Name="IndirectConnGefaellestreckeList" Type="IndirectConnGefaellestreckeType[]" DesignTimeNotes="20231011 -1-" />
<VAR Id="RDK:1544029" Name="IndirectConnKreiselList" Type="string[]" DesignTimeNotes="20231011 -1-" />
<VAR Id="RDK:1503346" Name="ConnGefaellestreckeIdList" Type="string[]" DesignTimeNotes="20230928 -1-" />
<VAR Id="RDK:1280575" Name="RemovedKreiselGroupList" Type="string[]" DesignTimeNotes="20231005 -1-" />
<VAR Id="RDK:1458661" Name="RemovedKreiselList" Type="string[]" DesignTimeNotes="20231005 -1-" />
<VAR Id="RDK:1345490" Name="InheritHeightData" Type="InheritHeightType" DesignTimeNotes="20231005 -1-" />
<VAR Id="RDK:9052" Name="ShapeItem" Type="Editor2DShapeType" />
<VAR Id="RDK:98465" Name="ShapeTotalLength" Type="double" />
<VAR Id="RDK:453142" Name="SSGConnectionPoint" Type="SSGConnectionPoint" />
@@ -824,13 +844,6 @@
<VAR Id="RDK:1007444" Name="Point2D" Type="Point2D" />
<VAR Id="RDK:1054119" Name="Trace" Type="string" DesignTimeRemark="Generated by RD" />
<VAR Id="RDK:1241416" Name="ExportSnapshot" Type="string" DesignTimeRemark="Generated by RD" />
<VAR Id="RDK:1276768" Name="KreiselGroupList" Type="string[]" DesignTimeNotes="20230928 -1-" />
<VAR Id="RDK:1280575" Name="RemovedKreiselGroupList" Type="string[]" DesignTimeNotes="20231005 -1-" />
<VAR Id="RDK:1458661" Name="RemovedKreiselList" Type="string[]" DesignTimeNotes="20231005 -1-" />
<VAR Id="RDK:1345490" Name="InheritHeightData" Type="InheritHeightType" DesignTimeNotes="20231005 -1-" />
<VAR Id="RDK:1486596" Name="RemovedGefaellestreckeList" Type="string[]" DesignTimeNotes="20231005 -1-" />
<VAR Id="RDK:1194866" Name="ConnectedGefaellestreckeList" Type="string[]" DesignTimeNotes="20230928 -1-" />
<VAR Id="RDK:1503346" Name="ConnGefaellestreckeIdList" Type="string[]" DesignTimeNotes="20230928 -1-" />
<VAR Id="RDK:1519830" Name="SessionZip" Type="string" />
</GROUP>
<GROUP Id="RDK:0006" Name="Profiles" SubType="ProfileSet">
@@ -4394,7 +4407,7 @@ ShapeTotalLength-SSGConnectionPoint.x_S-(KreiselData.Durchmesser/2)
<PAR Name="ExitCondExp">
<EXP><![CDATA[$V$]]></EXP>
</PAR>
<GROUP Id="RDK:1290698" Name="Debug" SubType="Generic">
<GROUP Id="RDK:1290698" Name="Debug" SubType="Generic" Suppressed="True">
<VALUECONDITION Value="true">
<EXP><![CDATA[$=$Kreisel = "shape_bf46f457-0fe9-10dc-948e-527caac18289"]]></EXP>
</VALUECONDITION>
@@ -4496,7 +4509,7 @@ ShapeTotalLength-SSGConnectionPoint.x_S-(KreiselData.Durchmesser/2)
<PAR Name="ExitCondExp">
<EXP><![CDATA[$V$]]></EXP>
</PAR>
<GROUP Id="RDK:1291778" Name="Debug" SubType="Generic">
<GROUP Id="RDK:1291778" Name="Debug" SubType="Generic" Suppressed="True">
<VALUECONDITION Value="true">
<EXP><![CDATA[$=$TempLink = "shape_87055166-b35d-c935-5bc6-efe821c00749"]]></EXP>
</VALUECONDITION>
@@ -5478,6 +5491,8 @@ ShapeTotalLength-SSGConnectionPoint.x_S-(KreiselData.Durchmesser/2)
<VAR Id="RDK:1228202" Name="HeightAllreadySetList" Type="string[]" />
<VAR Id="RDK:1228762" Name="TempLinkedShapeIDs" Type="string[]" />
<VAR Id="RDK:1229831" Name="TempLink" Type="string" />
<VAR Id="RDK:1528242" Name="TempKreisel" Type="string" />
<VAR Id="RDK:1544010" Name="TempGefaellestrecke" Type="IndirectConnGefaellestreckeType" />
</GROUP>
<SET Id="RDK:1188989" VarRef="ShapeList[TempIndex].text">
<EXP><![CDATA[$C$NOTHING]]></EXP>
@@ -5499,6 +5514,10 @@ ShapeTotalLength-SSGConnectionPoint.x_S-(KreiselData.Durchmesser/2)
<EXP><![CDATA[$C$NOTHING]]></EXP>
<PAR Name="AdvancedOptions" />
</SET>
<SET Id="RDK:1528804" VarRef="IndirectConnGefaellestreckeList">
<EXP><![CDATA[$C$NOTHING]]></EXP>
<PAR Name="AdvancedOptions" />
</SET>
<GROUP Id="RDK:1128703" Name="Find Children" SubType="Generic">
<SET Id="RDK:1128698" VarRef="LinkedShapeIDs">
<EXP><![CDATA[$C$NOTHING]]></EXP>
@@ -5591,6 +5610,116 @@ ShapeTotalLength-SSGConnectionPoint.x_S-(KreiselData.Durchmesser/2)
</PAR>
<PAR Name="Options" />
</CALLFUNCTION>
<GROUP Id="RDK:1528230" Name="Set IndirectConnGefaellestreckeList" SubType="Generic" DesignTimeNotes="20231011 -1-">
<VALUECONDITION Value="true">
<EXP><![CDATA[$=$Shape_Prototype.family = "Gefaellestrecke"]]></EXP>
</VALUECONDITION>
<FOREACHLOOP Id="RDK:1528238" ItemVarRef="TempKreisel">
<PAR Name="ArrayValueExp">
<EXP><![CDATA[$=$KreiselGroupList]]></EXP>
</PAR>
<PAR Name="ExitCondExp">
<EXP><![CDATA[$V$]]></EXP>
</PAR>
<GROUP Id="RDK:1528246" Name="Local Vars" SubType="VarSet" IncludeDate="0" DesignTimeNotes="20230928 -1-">
<VAR Id="RDK:1528247" Name="TempKreiselLink" Type="string" />
<VAR Id="RDK:1529406" Name="TempIndirectConn" Type="IndirectConnGefaellestreckeType" />
<VAR Id="RDK:1538963" Name="TempNewHoehe" Type="string" />
</GROUP>
<FOREACHLOOP Id="RDK:1528244" ItemVarRef="TempKreiselLink">
<PAR Name="ArrayValueExp">
<EXP><![CDATA[$=$ShapeList["id=" + TempKreisel].Links]]></EXP>
</PAR>
<PAR Name="ExitCondExp">
<EXP><![CDATA[$V$]]></EXP>
</PAR>
<GROUP Id="RDK:1528248" Name="Group" SubType="Generic">
<VALUECONDITION Value="true">
<EXP><![CDATA[$=$ShapeList["id=" + StrAfter(TempKreiselLink, ";")].family = "Gefaellestrecke"]]></EXP>
</VALUECONDITION>
<VALUECONDITION Value="false">
<EXP><![CDATA[$=$StrAfter(TempKreiselLink, ";") = Shape_Prototype.id]]></EXP>
</VALUECONDITION>
<VALUECONDITION Value="false">
<EXP><![CDATA[$=$Contains(StrArrayFromListOfStructs(IndirectConnGefaellestreckeList, "Id"), StrAfter(TempKreiselLink, ";"))]]></EXP>
</VALUECONDITION>
<GROUP Id="RDK:1538965" Name="Linked to Gefällestrecke (Shape_Prototype) cp1 (top point)" SubType="Generic">
<VALUECONDITION Value="true">
<EXP><![CDATA[$=$Contains(Shape_Prototype.links, "cp1;" + TempKreisel)]]></EXP>
</VALUECONDITION>
<SET Id="RDK:1538964" VarRef="TempNewHoehe">
<EXP><![CDATA[$=$Param.Input.NewHoeheOben]]></EXP>
<PAR Name="AdvancedOptions" />
</SET>
</GROUP>
<GROUP Id="RDK:1539536" Name="Linked to Gefällestrecke (Shape_Prototype) cp2 (top point)" SubType="Generic">
<VALUECONDITION Value="true">
<EXP><![CDATA[$=$Contains(Shape_Prototype.links, "cp2;" + TempKreisel)]]></EXP>
</VALUECONDITION>
<SET Id="RDK:1539535" VarRef="TempNewHoehe">
<EXP><![CDATA[$=$Param.Input.NewHoeheUnten]]></EXP>
<PAR Name="AdvancedOptions" />
</SET>
</GROUP>
<SET_STRUCT Id="RDK:1529407" VarRef="TempIndirectConn" ClearAll="True" ListRef="IndirectConnGefaellestreckeList">
<PAR Name="Id">
<EXP><![CDATA[$=$StrAfter(TempKreiselLink, ";")]]></EXP>
</PAR>
<PAR Name="Cp">
<EXP><![CDATA[$=$StrBefore(ListStrFilter(ShapeList["id=" + StrAfter(TempKreiselLink, ";")].links, "*" + TempKreisel)[0], ";")]]></EXP>
</PAR>
<PAR Name="ConnToId">
<EXP><![CDATA[$=$TempKreisel]]></EXP>
</PAR>
<PAR Name="NewHoehe">
<EXP><![CDATA[$=$TempNewHoehe]]></EXP>
</PAR>
</SET_STRUCT>
</GROUP>
</FOREACHLOOP>
</FOREACHLOOP>
</GROUP>
<GROUP Id="RDK:1543998" Name="Set IndirectConnKreiselList" SubType="Generic">
<VALUECONDITION Value="true">
<EXP><![CDATA[$=$Shape_Prototype.family = "Gefaellestrecke"]]></EXP>
</VALUECONDITION>
<FOREACHLOOP Id="RDK:1544007" ItemVarRef="TempGefaellestrecke">
<PAR Name="ArrayValueExp">
<EXP><![CDATA[$=$IndirectConnGefaellestreckeList]]></EXP>
</PAR>
<PAR Name="ExitCondExp">
<EXP><![CDATA[$V$]]></EXP>
</PAR>
<GROUP Id="RDK:1544013" Name="Local Vars" SubType="VarSet" IncludeDate="0" DesignTimeNotes="20230928 -1-">
<VAR Id="RDK:1544015" Name="TempGefaellestreckeLink" Type="string" />
</GROUP>
<FOREACHLOOP Id="RDK:1544011" ItemVarRef="TempGefaellestreckeLink">
<PAR Name="ArrayValueExp">
<EXP><![CDATA[$=$ShapeList["id=" + TempGefaellestrecke.Id].Links]]></EXP>
</PAR>
<PAR Name="ExitCondExp">
<EXP><![CDATA[$V$]]></EXP>
</PAR>
<GROUP Id="RDK:1544016" Name="Group" SubType="Generic">
<VALUECONDITION Value="true">
<EXP><![CDATA[$=$ShapeList["id=" + StrAfter(TempGefaellestreckeLink, ";")].family = "Kreisel"]]></EXP>
</VALUECONDITION>
<VALUECONDITION Value="false">
<EXP><![CDATA[$=$ShapeList["id=" + StrAfter(TempGefaellestreckeLink, ";")].id = TempGefaellestrecke.ConnToId]]></EXP>
</VALUECONDITION>
<VALUECONDITION Value="false">
<EXP><![CDATA[$=$Contains(IndirectConnKreiselList, StrAfter(TempGefaellestreckeLink, ";"))]]></EXP>
</VALUECONDITION>
<LIST_ADD Id="RDK:1545155" ListRef="IndirectConnKreiselList">
<PAR Name="VALUE_TO_ADD">
<EXP><![CDATA[$=$StrAfter(TempGefaellestreckeLink, ";")]]></EXP>
</PAR>
<PAR Name="POS_TO_ADD" />
</LIST_ADD>
</GROUP>
</FOREACHLOOP>
</FOREACHLOOP>
</GROUP>
<FOREACHLOOP Id="RDK:1128707" ItemVarRef="Link">
<PAR Name="ArrayValueExp">
<EXP><![CDATA[$=$LinkedShapeIDs]]></EXP>
@@ -5608,7 +5737,7 @@ ShapeTotalLength-SSGConnectionPoint.x_S-(KreiselData.Durchmesser/2)
</GROUP>
<GROUP Id="RDK:1194293" Name="Debug" SubType="Generic">
<VALUECONDITION Value="true">
<EXP><![CDATA[$=$Link = "shape_7643f9e9-f8d1-bc80-f60a-16bdce0a3ba9"]]></EXP>
<EXP><![CDATA[$=$LinkIndex = 10]]></EXP>
</VALUECONDITION>
<COMMENTS Id="RDK:1194296" />
</GROUP>
@@ -5626,6 +5755,9 @@ ShapeTotalLength-SSGConnectionPoint.x_S-(KreiselData.Durchmesser/2)
<VALUECONDITION Value="false">
<EXP><![CDATA[$=$Contains(RemovedKreiselGroupList, Link)]]></EXP>
</VALUECONDITION>
<VALUECONDITION Value="false">
<EXP><![CDATA[$=$Contains(StrArrayFromListOfStructs(IndirectConnGefaellestreckeList, "Id"), Link)]]></EXP>
</VALUECONDITION>
<SELECTCASE Id="RDK:1311069">
<EXP><![CDATA[$=$ShapeList["id=" + Link].family]]></EXP>
<CASEGROUP Id="RDK:1311063" CaseType="0">
@@ -5635,7 +5767,9 @@ ShapeTotalLength-SSGConnectionPoint.x_S-(KreiselData.Durchmesser/2)
<EXP><![CDATA[$=$ShapeList["id=" + Link].KreiselDefinition.Hoehe = Shape_Prototype.KreiselDefinition.Hoehe]]></EXP>
</VALUECONDITION>
<VALUECONDITION Value="false">
<EXP><![CDATA[$=$Contains(KreiselGroupList, Link) AND Contains(RemovedKreiselGroupList, Link) AND Shape_Prototype.family = "Gefaellestrecke"]]></EXP>
<EXP><![CDATA[$=$(Contains(KreiselGroupList, Link) AND Contains(RemovedKreiselGroupList, Link) AND Shape_Prototype.family = "Gefaellestrecke")
OR
Contains(IndirectConnKreiselList, Link) AND Shape_Prototype.family = "Gefaellestrecke"]]></EXP>
</VALUECONDITION>
<GROUP Id="RDK:1311073" SubType="Then">
<SET Id="RDK:1311085" VarRef="ShapeList[LinkIndex].text">
@@ -5644,9 +5778,9 @@ ShapeTotalLength-SSGConnectionPoint.x_S-(KreiselData.Durchmesser/2)
</SET>
</GROUP>
<GROUP Id="RDK:1311074" SubType="Else">
<GROUP Id="RDK:1325350" Name="Debug" SubType="Generic">
<GROUP Id="RDK:1325350" Name="Debug" SubType="Generic" Suppressed="True">
<VALUECONDITION Value="true">
<EXP><![CDATA[$=$Link = "shape_f9ef68c5-c20a-447a-21f9-f2b37e64fc46"]]></EXP>
<EXP><![CDATA[$=$LinkIndex = 5]]></EXP>
</VALUECONDITION>
<COMMENTS Id="RDK:1325355" />
</GROUP>
@@ -5661,7 +5795,7 @@ ShapeTotalLength-SSGConnectionPoint.x_S-(KreiselData.Durchmesser/2)
<EXP><![CDATA[$C$Gefaellestrecke]]></EXP>
<GROUP Id="RDK:1325361" Name="Debug" SubType="Generic" Suppressed="True">
<VALUECONDITION Value="true">
<EXP><![CDATA[$=$Link = "shape_f9ef68c5-c20a-447a-21f9-f2b37e64fc46"]]></EXP>
<EXP><![CDATA[$=$LinkIndex = 5]]></EXP>
</VALUECONDITION>
<COMMENTS Id="RDK:1325360" />
</GROUP>
@@ -5684,7 +5818,7 @@ ShapeTotalLength-SSGConnectionPoint.x_S-(KreiselData.Durchmesser/2)
<EXP><![CDATA[$=$Contains(RemovedGefaellestreckeList, Link)]]></EXP>
</VALUECONDITION>
<SET Id="RDK:1311107" VarRef="ShapeList[LinkIndex].text">
<EXP><![CDATA[$C$Gelb]]></EXP>
<EXP><![CDATA[$C$^ Gelb]]></EXP>
<PAR Name="AdvancedOptions" />
</SET>
</GROUP>
@@ -5740,7 +5874,7 @@ ShapeTotalLength-SSGConnectionPoint.x_S-(KreiselData.Durchmesser/2)
<PAR Name="ExitCondExp">
<EXP><![CDATA[$V$]]></EXP>
</PAR>
<GROUP Id="RDK:1385983" Name="Debug" SubType="Generic">
<GROUP Id="RDK:1385983" Name="Debug" SubType="Generic" Suppressed="True">
<VALUECONDITION Value="true">
<EXP><![CDATA[$=$TempLink = "shape_9ce528b3-a2c9-6954-2139-5c489bb174b1"]]></EXP>
</VALUECONDITION>
@@ -5753,6 +5887,9 @@ ShapeTotalLength-SSGConnectionPoint.x_S-(KreiselData.Durchmesser/2)
<VALUECONDITION Value="false">
<EXP><![CDATA[$=$ShapeList["id=" + Link].family = "Weiche"]]></EXP>
</VALUECONDITION>
<VALUECONDITION Value="false">
<EXP><![CDATA[$=$Contains(StrArrayFromListOfStructs(IndirectConnGefaellestreckeList, "Id"), TempLink)]]></EXP>
</VALUECONDITION>
<GROUP Id="RDK:1320603" Name="LocalVars" SubType="VarSet" IncludeDate="0">
<VAR Id="RDK:1320604" Name="TempLinkIndex" Type="integer">
<SET Id="RDK:1320605" VarRef="Me">
@@ -5798,7 +5935,7 @@ ShapeTotalLength-SSGConnectionPoint.x_S-(KreiselData.Durchmesser/2)
<CASEGROUP Id="RDK:1311125" CaseType="0">
<EXP><![CDATA[$C$Gefaellestrecke]]></EXP>
<SET Id="RDK:1227670" VarRef="ShapeList[TempLinkIndex].text">
<EXP><![CDATA[$C$Gelb]]></EXP>
<EXP><![CDATA[$C$^ Gelb]]></EXP>
<PAR Name="AdvancedOptions" />
</SET>
</CASEGROUP>
@@ -5819,9 +5956,12 @@ ShapeTotalLength-SSGConnectionPoint.x_S-(KreiselData.Durchmesser/2)
<VALUECONDITION Value="true" Oper="OR">
<EXP><![CDATA[$=$ListStrContains(Shape_Prototype.links, "*;" + Link)]]></EXP>
</VALUECONDITION>
<VALUECONDITION Value="true">
<VALUECONDITION Value="true" Oper="OR">
<EXP><![CDATA[$=$ShapeList["id=" + Link].family = "Kreisel" AND NOT Contains(RemovedKreiselGroupList, Link)]]></EXP>
</VALUECONDITION>
<VALUECONDITION Value="true">
<EXP><![CDATA[$=$ShapeList["id=" + Link].family = "Gefaellestrecke" AND Contains(StrArrayFromListOfStructs(IndirectConnGefaellestreckeList, "Id"), Link)]]></EXP>
</VALUECONDITION>
<GROUP Id="RDK:1263574" Name="Group" SubType="Generic">
<VALUECONDITION Value="true">
<EXP><![CDATA[$=$Contains(HeightAllreadySetList, Link)]]></EXP>
@@ -5981,6 +6121,37 @@ ShapeTotalLength-SSGConnectionPoint.x_S-(KreiselData.Durchmesser/2)
<PAR Name="POS_TO_ADD" />
</LIST_ADD>
</GROUP>
<GROUP Id="RDK:1529388" Name="Is Indirect Connected Gefaellestrecke" SubType="Generic">
<VALUECONDITION Value="true">
<EXP><![CDATA[$=$ShapeList["id=" + Link].family = "Gefaellestrecke" AND Contains(StrArrayFromListOfStructs(IndirectConnGefaellestreckeList, "Id"), Link)]]></EXP>
</VALUECONDITION>
<GROUP Id="RDK:1530016" Name="Linked to Gefällestrecke cp1 (top point)" SubType="Generic">
<VALUECONDITION Value="true">
<EXP><![CDATA[$=$FieldValue(FilterByFieldValue(IndirectConnGefaellestreckeList, "Id", Link, false)[0], "cp") = "cp1"]]></EXP>
</VALUECONDITION>
<SET Id="RDK:1532298" VarRef="ShapeList[&quot;id=&quot; + Link].text">
<EXP><![CDATA[$C$^ Grau]]></EXP>
<PAR Name="AdvancedOptions" />
</SET>
<SET Id="RDK:1530046" VarRef="ShapeList[&quot;id=&quot; + Link].GefaelleDefinition.HoeheOben">
<EXP><![CDATA[$=$FieldValue(FilterByFieldValue(IndirectConnGefaellestreckeList, "Id", Link, false)[0], "NewHoehe")]]></EXP>
<PAR Name="AdvancedOptions" />
</SET>
</GROUP>
<GROUP Id="RDK:1530032" Name="Linked to Gefällestrecke cp1 (top point)" SubType="Generic">
<VALUECONDITION Value="true">
<EXP><![CDATA[$=$FieldValue(FilterByFieldValue(IndirectConnGefaellestreckeList, "Id", Link, false)[0], "cp") = "cp2"]]></EXP>
</VALUECONDITION>
<SET Id="RDK:1532296" VarRef="ShapeList[&quot;id=&quot; + Link].text">
<EXP><![CDATA[$C$^ Grau]]></EXP>
<PAR Name="AdvancedOptions" />
</SET>
<SET Id="RDK:1530042" VarRef="ShapeList[&quot;id=&quot; + Link].GefaelleDefinition.HoeheUnten">
<EXP><![CDATA[$=$FieldValue(FilterByFieldValue(IndirectConnGefaellestreckeList, "Id", Link, false)[0], "NewHoehe")]]></EXP>
<PAR Name="AdvancedOptions" />
</SET>
</GROUP>
</GROUP>
<COMMENTS Id="RDK:1156147" DesignTimeRemark="Momentan nicht möglich wenn h0 und H1 schon einen Wert haben, da unbekannt ist welcher Wert dann geändert werden soll." DesignTimeNotes="20230928 -1-" />
<IFTHENELSE Id="RDK:1155598" Suppressed="True" DesignTimeNotes="20230928 -1-&#xD;&#xA;suppressed">
<VALUECONDITION Value="true">
@@ -9769,7 +9940,47 @@ ShapeList["id="+Param.Input[1].shapeID].name
</SET_STRUCT>
</GROUP>
<GROUP Id="RDK:1516912" Name="FAB" SubType="Generic">
<SET_STRUCT Id="RDK:1516919" VarRef="ButtonDefItem" ClearAll="True" ListRef="FABButtonsList">
<SET_STRUCT Id="RDK:1516919" VarRef="ButtonDefItem" ClearAll="True" ListRef="FABButtonsList" Suppressed="True">
<PAR Name="ButtonText">
<EXP><![CDATA[$C$Zeige Infos]]></EXP>
</PAR>
<PAR Name="ButtonValue">
<EXP><![CDATA[$C$ShowInfos]]></EXP>
</PAR>
<PAR Name="ButtonType" />
<PAR Name="ButtonAction" />
<PAR Name="ButtonLocation">
<EXP><![CDATA[$C$FAB]]></EXP>
</PAR>
<PAR Name="ButtonStyle" />
<PAR Name="ButtonClass" />
<PAR Name="ButtonImage">
<EXP><![CDATA[$C$icon:info]]></EXP>
</PAR>
<PAR Name="ButtonTooltip" />
<PAR Name="ButtonOptions" />
</SET_STRUCT>
<SET_STRUCT Id="RDK:1526578" VarRef="ButtonDefItem" ClearAll="True" ListRef="FABButtonsList" Suppressed="True">
<PAR Name="ButtonText">
<EXP><![CDATA[$C$Text löschen]]></EXP>
</PAR>
<PAR Name="ButtonValue">
<EXP><![CDATA[$C$DeleteText]]></EXP>
</PAR>
<PAR Name="ButtonType" />
<PAR Name="ButtonAction" />
<PAR Name="ButtonLocation">
<EXP><![CDATA[$C$FAB]]></EXP>
</PAR>
<PAR Name="ButtonStyle" />
<PAR Name="ButtonClass" />
<PAR Name="ButtonImage">
<EXP><![CDATA[$C$icon:delete]]></EXP>
</PAR>
<PAR Name="ButtonTooltip" />
<PAR Name="ButtonOptions" />
</SET_STRUCT>
<SET_STRUCT Id="RDK:1526030" VarRef="ButtonDefItem" ClearAll="True" ListRef="FABButtonsList">
<PAR Name="ButtonText">
<EXP><![CDATA[$C$Sitzung speichern]]></EXP>
</PAR>
@@ -11507,7 +11718,7 @@ ShapeList["id="+Param.Input[1].shapeID].name
<PAR Name="DataSource" />
<PAR Name="Options" />
</ACTION_CALL>
<ACTION_CALL Id="RDK:314381" Name="RDEngineering_ModernUIControl" DesignTimeRemark="{ActionType} {PanelName} &lt;-- {UIType}:{Field} {Id} {ParentID}" DesignTimeNotes="20231005 -1-&#xD;&#xA;Read only changed&#xD;&#xA;&#xD;&#xA;20230928 -1-&#xD;&#xA;Label changed">
<ACTION_CALL Id="RDK:314381" Name="RDEngineering_ModernUIControl" DesignTimeRemark="{ActionType} {PanelName} &lt;-- {UIType}:{Field} {Id} {ParentID}" DesignTimeTip="cp1 top point" DesignTimeNotes="20231005 -1-&#xD;&#xA;Read only changed&#xD;&#xA;&#xD;&#xA;20230928 -1-&#xD;&#xA;Label changed">
<PAR Name="RDLibraryName">
<EXP><![CDATA[$C$RDEngineering_UI]]></EXP>
</PAR>
@@ -11526,7 +11737,7 @@ ShapeList["id="+Param.Input[1].shapeID].name
</PAR>
<PAR Name="ParentId" />
<PAR Name="Label">
<EXP><![CDATA[$C$Höhe oben (H1)]]></EXP>
<EXP><![CDATA[$C$H1]]></EXP>
</PAR>
<PAR Name="Field">
<EXP><![CDATA[$C$HoeheOben]]></EXP>
@@ -11558,7 +11769,7 @@ ShapeList["id="+Param.Input[1].shapeID].name
<PAR Name="DataSource" />
<PAR Name="Options" />
</ACTION_CALL>
<ACTION_CALL Id="RDK:837490" Name="RDEngineering_ModernUIControl" DesignTimeRemark="{ActionType} {PanelName} &lt;-- {UIType}:{Field} {Id} {ParentID}" DesignTimeNotes="20231005 -1-&#xD;&#xA;Read only changed&#xD;&#xA;&#xD;&#xA;20230928 -1-&#xD;&#xA;Label changed">
<ACTION_CALL Id="RDK:837490" Name="RDEngineering_ModernUIControl" DesignTimeRemark="{ActionType} {PanelName} &lt;-- {UIType}:{Field} {Id} {ParentID}" DesignTimeTip="cp2 top point" DesignTimeNotes="20231005 -1-&#xD;&#xA;Read only changed&#xD;&#xA;&#xD;&#xA;20230928 -1-&#xD;&#xA;Label changed">
<PAR Name="RDLibraryName">
<EXP><![CDATA[$C$RDEngineering_UI]]></EXP>
</PAR>
@@ -11577,7 +11788,7 @@ ShapeList["id="+Param.Input[1].shapeID].name
</PAR>
<PAR Name="ParentId" />
<PAR Name="Label">
<EXP><![CDATA[$C$Höhe unten (h0)]]></EXP>
<EXP><![CDATA[$C$h0]]></EXP>
</PAR>
<PAR Name="Field">
<EXP><![CDATA[$C$HoeheUnten]]></EXP>
@@ -12414,61 +12625,23 @@ ShapeList["id="+Param.Input[1].shapeID].name
</GROUP>
</CASEGROUP>
<CASEGROUP Id="RDK:1409928" CaseType="0" Suppressed="True" DesignTimeNotes="20231005 -1-">
<EXP><![CDATA[$C$Delete Text]]></EXP>
<EXP><![CDATA[$C$DeleteText]]></EXP>
<EXEC_ON_VALUES Id="RDK:1409929" VarRef="ShapeList">
<PAR Name="text">
<EXP><![CDATA[$C$NOTHING]]></EXP>
</PAR>
<PAR Name="SivasNummer" />
<PAR Name="KreiselDefinition" />
<PAR Name="GefaelleDefinition" />
<PAR Name="WeicheDefinition" />
<PAR Name="source" />
<PAR Name="sourceLibrary" />
<PAR Name="signature" />
<PAR Name="id" />
<PAR Name="name" />
<PAR Name="family" />
<PAR Name="description" />
<PAR Name="x" />
<PAR Name="y" />
<PAR Name="z" />
<PAR Name="width" />
<PAR Name="height" />
<PAR Name="depth" />
<PAR Name="rotation" />
<PAR Name="behaviour" />
<PAR Name="datadump" />
<PAR Name="path" />
<PAR Name="ctrl1x" />
<PAR Name="ctrl1y" />
<PAR Name="ctrl2x" />
<PAR Name="ctrl2y" />
<PAR Name="shapeFromId" />
<PAR Name="shapeFromPointIndex" />
<PAR Name="shapeToId" />
<PAR Name="shapeToPointIndex" />
<PAR Name="dimStack" />
<PAR Name="dimType" />
<PAR Name="dimDriving" />
<PAR Name="dimValue" />
<PAR Name="color" />
<PAR Name="colorOpacity" />
<PAR Name="color3D" />
<PAR Name="colorOpacity3D" />
<PAR Name="lineWidth" />
<PAR Name="lineColor" />
<PAR Name="lineOpacity" />
<PAR Name="lineColor3D" />
<PAR Name="lineOpacity3D" />
<PAR Name="links" />
<PAR Name="group" />
<PAR Name="layer" />
<PAR Name="connectionPoints" />
<PAR Name="modified" />
<PAR Name="pinned" />
<PAR Name="selected" />
<PAR Name="includeInBOM" />
</EXEC_ON_VALUES>
</CASEGROUP>
<CASEGROUP Id="RDK:1526582" CaseType="0" Suppressed="True" DesignTimeNotes="20231005 -1-">
<EXP><![CDATA[$C$ShowInfos]]></EXP>
<EXEC_ON_VALUES Id="RDK:1526581" VarRef="ShapeList">
<PAR Name="text">
<EXP><![CDATA[$=$Me.text + Lf() + IIF(Me.family = "Kreisel" OR Me.family = "Gefaellestrecke", Me.name, "") + Lf() + IIF(Me.family = "Kreisel" OR Me.family = "Gefaellestrecke", Me.id, "")
]]></EXP>
</PAR>
</EXEC_ON_VALUES>
</CASEGROUP>
<CASEGROUP Id="RDK:358" CaseType="1">
File diff suppressed because one or more lines are too long
+13000
View File
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
+10
View File
@@ -0,0 +1,10 @@
# Informationen über den Ruledesigner Konfigurator
## Roadmap für die Firmenweite Anwendung
[Roadmap für die Entwicklung bei Schönenberger Systems](http://gitea.schoenenberger.de/mistangl/SSG-Ruledesigner-Konfigurator/wiki/Roadmap)
## Installation und Umgebung
[Installation und Lizenzfile](http://gitea.schoenenberger.de/mistangl/SSG-Ruledesigner-Konfigurator/wiki/Installation-RD-Configurator)
## Mitschnitte der Teams Session der Schulungen
[Video Recordings der Schulungen](http://gitea.schoenenberger.de/mistangl/SSG-Ruledesigner-Konfigurator/wiki/Schulungsmitschnitte)
+44
View File
@@ -0,0 +1,44 @@
# Download der Installationsdaten
Die Installationsdateien könne hier heruntergeladen werden:
> \\\ssg.local\freigaben\Software\IT\RuleDesigner Konfigurator
## Installation RDC
RDC wird mit dem Ausführen der RDConfiguratorFusion_1.3.113.exe installiert. Nutzen Sie die Standardpfade für die Installation. Installieren Sie mit Administrator Rechten
## Installation CadEditorX
CadEditorX wird mit setupen_x64.exe installiert. Dieses Programm wird im RDC Prozess für die Konvertierung der DWG Dateien nach SVG genutzt.
## Lizenzierung
Für die Lizenzierung von RDC muss eine Systemumgebungsvariable angelegt werden.
Name: RD_LICENSE_FILE
> Wert: \\\RD-Schulung\RDF_Daten\RDLICENSE.DAT
Bei der Nutzung von CAD mit der Fusionlizenz muss der folgende Pfad eingetragen sein.
> Wert: \\\ruledesigner\RDF_Daten\RDLICENSE.DAT
Dies wird nach der Beendigung der Testlizenzen wahrscheilich auf den oberen Pfad reduziert.
## Update RDC
Nach der Installation von RDC muss für die Enwicklung immer die neuste Version benutzt werden. Im Installationsverzeichniss gibt es unter C:\PLM\RuleDesigner\RDConfigurator Fusion\RDLiveUpdate.exe
Wählen Sie "Latest BETA Update" und führen Sie Update aus.
## Einstellungen Firewall und Antivirus
Falls der Ordner "C:\Program Files\RuleDesigner\RDConfigurator Fusion\" von Ihrem Antivirussystem überwacht wird, erstellen Sie eine Ausnahme. Da RD in echtzeit Webseiten erzeugt, führt ein Antivirus zur Verlangsamung des Systems.
## Einsatz einer Batchdatei für mehrere Lizenzumgebungen
Falls RuleDesigner Fusion-Installationsverzeichnis von "C:\PLM\RuleDesigner\RDConfigurator Fusion" abweicht muss das Verzeichnis im Batch-Script angepasst werden.
Batch-Script, um Testsystem als Lizenzumgebung zu verwenden:
>SET RD_LICENSE_FILE=\\RD-Schulung\RDF_Daten\RDLICENSE.DAT
>
>START /d "C:\PLM\RuleDesigner\RDConfigurator Fusion" RDDesigner.exe
Batch-Script, um Produktivsystem als Lizenzumgebung zu verwenden:
>SET RD_LICENSE_FILE=\\RD-Schulung\RDF_Daten\RDLICENSE.DAT
>
>START /d "C:\PLM\RuleDesigner\RDConfigurator Fusion" RDDesigner.exe
+108
View File
@@ -0,0 +1,108 @@
- [1. Allgemeines zur Integration ein neuen Shapes in die Library des RD Configurators](#1-allgemeines-zur-integration-ein-neuen-shapes-in-die-library-des-rd-configurators)
- [1.1. Welche Programme benötige ich zur Erstellung des neuen Shapes](#11-welche-programme-benötige-ich-zur-erstellung-des-neuen-shapes)
- [1.2. Definition der Bilder zur Darstellung am Beispiel einer Säule](#12-definition-der-bilder-zur-darstellung-am-beispiel-einer-säule)
- [1.3. Erzeugung einer 3D STL Datei im CAD als Repräsentant](#13-erzeugung-einer-3d-stl-datei-im-cad-als-repräsentant)
- [2. Schritte zur Erstellung der Säule im WebGraphicalEditor (WGE)](#2-schritte-zur-erstellung-der-säule-im-webgraphicaleditor-wge)
- [2.1. Vorbereitung der Umgebung](#21-vorbereitung-der-umgebung)
- [2.2. Start des Programmes](#22-start-des-programmes)
- [2.3. Aufruf des Wizards](#23-aufruf-des-wizards)
- [2.4. Erstellung einer neuen Gruppe für Shapes](#24-erstellung-einer-neuen-gruppe-für-shapes)
- [2.5. Erzeugung eines Shapes](#25-erzeugung-eines-shapes)
- [2.6. Angaben zu den Dimensionen des Shapes](#26-angaben-zu-den-dimensionen-des-shapes)
- [2.7. Angaben der Connection Points](#27-angaben-der-connection-points)
# 1. Allgemeines zur Integration ein neuen Shapes in die Library des RD Configurators
## 1.1. Welche Programme benötige ich zur Erstellung des neuen Shapes
- inkscape (oder ein ähnliches Programm zur Erstellung von SVG Dateien)
- eventuell ein Programm zur windows Bildverarbeitung (für icons)
- ein CAD System zur Ableitung der STL Datei aus dem 3D Modell
## 1.2. Definition der Bilder zur Darstellung am Beispiel einer Säule
- svg Datei: Darstellung der Säule in 2D mit dem Format der nötigen Länge und Breite, hier z.B. 100 mm Breite und 150 mm Länge
![Säule als .svg](bilder/S1Zoll.svg)
- ein Bild der Pixelgröße 64x64
![Säule als 64pixel .jpg](bilder/S1Zoll64.jpg)
- ein Bild der Pixelgröße 32x32
![Säule als 32pixel .jpg](bilder/S1Zoll32.jpg)
## 1.3. Erzeugung einer 3D STL Datei im CAD als Repräsentant
ein Bild der Erzeugung im SolidEdge
![Säule als 32pixel .jpg](bilder/S1Zoll3d.png)
Anschliessend muss dieses als .stl Datei exportiert werden.
Bei der Erstellung der STL ist zu beachten, dass der Ursprung der 2D Icons des svg mit dem der 3D Datei übereinstimmt.
# 2. Schritte zur Erstellung der Säule im WebGraphicalEditor (WGE)
## 2.1. Vorbereitung der Umgebung
Zuerst muss man den .rdx aufrufen, der die Library verwendet. Dabei wird der Ordner mit allen Shapes etc. ins Installationsverzeichnkis kopiert. (Alternativ auch von Hand dorthin kopieren, z.B. **C:\PLM\RuleDesigner\RDConfigurator Fusion\WebApi\Editor2D**
## 2.2. Start des Programmes
Danach muss das Programm mit der Library gestartet werden, damit es im folgenden Assistenten auswählbar ist.
## 2.3. Aufruf des Wizards
Dann muss der Wizard gestartet werden, welcher die Aufnahme von Shapes in die Library ermöglicht
![Menü des WGE](bilder/MenüWGE.png)
## 2.4. Erstellung einer neuen Gruppe für Shapes
wenn benötigt kann eine neue Gruppe erstellt werden:
![Erstelle Gruppe](bilder/ErstellungGruppe.png )
Wichtig ist bei der Erstellung der IDs, keine Sonderzeichen, keine Umlaute oder sonstige Leerzeichen.
## 2.5. Erzeugung eines Shapes
![Fügt Shape hinzu](bilder/AddShape.png)
![Setze Id des Shapes](bilder/AddShapeIdSet.png)
### Eintragung der Pfade zu den erstellten Icons, bzw. der STL, bzw. der SVG Datei
Icons:
![Trage Icons 32/64 pixel als Pfad ein](bilder/WebGraphicalEditorIcons.png)
STL:
![Gebe STL Datei an](bilder/WebGraphicalEditorSTL.png )
SVG:
![Gebe SVG Datei an](bilder/WebGraphicalEditorSVG.png )
Der Wizard erstellt daraufhin jeweils eine Kopie der Originaldatei
## 2.6. Angaben zu den Dimensionen des Shapes
![Angabe der Dimensionen](bilder/Angabe3DInfos.png )
## 2.7. Angaben der Connection Points
Die Angaben der Connection Points beziehen sich auf ein Quadrat der Kantenlänge von 1000 pixel.
Hier als Referenz jeweils ein Punkt in der linken oberen/rechten unteren Ecke und einen in der Mitte:
![Angabe der Dimensionen](bilder/ConnectionPoints.png )
hier die *Dokumentation* von PBU als Hilfe:
```
96 px = 1 Inch = 25,4 mm
Connection Point works on a sqare of 1000 point:
A --------- B
| |
F| E |
| |
C --------- D
A=(0,0)
B=(1000,0)
C=(1000,1000)
D=(0,1000)
E=(500,500)
F=(0,500)
PROPERTIES ACTIONS :
(WIDTH=100)
(HEIGHT=Value-(Width*2))
(IMAGE=xxx.jpg)
(ROTATION=45) reasons clockwise
```
+270
View File
@@ -0,0 +1,270 @@
- [I. Grundfunktionen der Schönenberger RD Anwendung](#i-grundfunktionen-der-schönenberger-rd-anwendung)
- [Aufbau einer Anlage im Modell](#aufbau-einer-anlage-im-modell)
- [Darstellung des Modells](#darstellung-des-modells)
- [Exportmöglichkeiten eines Modells](#exportmöglichkeiten-eines-modells)
- [II. Aufgaben abgeleitet aus der Grundfunktionalität](#ii-aufgaben-abgeleitet-aus-der-grundfunktionalität)
- [TODOs non Programming](#todos-non-programming)
- [TODOs Programming](#todos-programming)
- [III. Meilensteine zum Aufbau des RD Konfigurator Systems](#iii-meilensteine-zum-aufbau-des-rd-konfigurator-systems)
- [Arbeitspaket 1: Verwendbarkeit für das Angebotswesen](#arbeitspaket-1-verwendbarkeit-für-das-angebotswesen)
- [Arbeitspaket 2: Detaillierung des Modells zur genaueren Kalkulation](#arbeitspaket-2-detaillierung-des-modells-zur-genaueren-kalkulation)
- [Arbeitspaket 3: Verwendbarkeit für die Projektierung](#arbeitspaket-3-verwendbarkeit-für-die-projektierung)
- [Arbeitspaket 4: Verwendbarkeit für die Automation](#arbeitspaket-4-verwendbarkeit-für-die-automation)
- [Arbeitspaket 5: Verwendbarkeit für Marketing Zwecke und Sonderkonstruktion](#arbeitspaket-5-verwendbarkeit-für-marketing-zwecke-und-sonderkonstruktion)
- [IV. Detailplanung (Personen und Zwischenergebnisse):](#iv-detailplanung-personen-und-zwischenergebnisse)
- [0. Installation des RD Konfigurator](#0-installation-des-rd-konfigurator)
- [1. Schulung zum Ruledesigner](#1-schulung-zum-ruledesigner)
- [Arbeitspaket 1: Angebotswesen](#arbeitspaket-1-angebotswesen)
- [Arbeitspaket 2: Detaillierung](#arbeitspaket-2-detaillierung)
- [Arbeitspaket 3: Projektierung](#arbeitspaket-3-projektierung)
- [Arbeitspaket 4: Automation](#arbeitspaket-4-automation)
- [Arbeitspaket 5: Marketing](#arbeitspaket-5-marketing)
# I. Grundfunktionen der Schönenberger RD Anwendung
## Aufbau einer Anlage im Modell
1. Import eines Hallenplans
Auswahl einer .png/.dxf Datei zur Zur Definition. Selektion einer Länge (z.B. Breite der Halle) und Angabe eines Zahlenwertes für die Skalierung
2. Raster zur Aufteilung der StücklistenBereiche in der Halle definieren (wichtig zur Ableitung der Stückliste)
Angabe in wie viele Teile jeweils Länge und Breite aufgeteilt werden müssen
3. Aufbau der Anlage
* a) 2D Strecke zeichnen: Aus Polyline mit geraden Strecken und Bogenübergänge (90,60,45,30), Angabe der Höhe prozedural nach dem Ablegen des letzten Elements. Standardhöhe in der Voreinstellung
* b) Platzierung von Anlagenkomponenten (Kreisel, Matrixsorter, ..), Arbeitsplätzen und Betriebsmitteln
* c) Verbindung und Unterbrechnung der Strecken durch Weichen (Unterbrechung der Strecke mit Abzweigung), Sensoren (Punkt auf der Strecke) und Gefällestrecken
* d) Kopieren, Mustern, Löschen und Verschieben von Streckenabschnitten oder Komponenten
* e) Aufbau eines Gerüsts (Säulen, Abhänger und Querträger)
* f) Detaillieren der benötigten Profile durch split der Strecke in Einzelkomponenten. Ergebnis sollen verschiebbaren Punkte auf der Strecke sein, welche die Profillängen definieren
4. Speichern, laden und "hinzuladen" eines Modells
5. Verwaltung der erzeugten Modelle
6. Versionierung des RD Softwarestandes
7. Versionierung der Modelle
## Darstellung des Modells
1. Anzeige der Anlage über verschiedene Layer:
* Strecke (angetrieben, nicht angetrieben)
* Gerüst (Säulen, DRT, DreifachRT, Beschriftung)
* Maschinenteile (Kettenförderer, Senkrechtförderer)
* Weichen (Ein- und Ausschleusweichen, Passivweichen)
* Elektrokomponenten (Sensoren, Aktoren, Kabel, Schaltschränke)
* Kabelpritschen, Kabel
2. Filter nach Komponenten
3. Darstellung der Anlage in 3D in verschiedenen Level of detail (LOD): Grob und fein
4. Darstellung der Anlage in 2D (ev. mit verschiedenen wählbaren Symbolen) zur Zeichnung des Hallenlayouts für Monteure
## Exportmöglichkeiten eines Modells
1. Export einer kompletten Anlage als CSV bzw json. Definition einer Stückliste ist notwendig. Beispiele sind zu definieren (zum Import ins Sivas für eine Kalkulation)
2. Filterung vor dem Export (zum Import ins Sivas für eine Kalkulation)
* Ableitung von Stücklisten nach 2D Sektionen in der Halle (z.B. A2, A3 und B2)
* Ableitung von Stücklisten nach anwählbaren Layer der Komponenten (z.B. nur Gerüst)
3. Export einer 2D Bild/Zeichnung. (ev. auch .dxf?) der kompletten Anlage als
4. Export einer kompletten Anlage als 3D Solidedge File
# II. Aufgaben abgeleitet aus der Grundfunktionalität
## TODOs non Programming
* Definition einer Bedienoberfläche (Menüs des Programmes, Struktur des Modellbaum für die angebotenen Maschinen/Element, )
* 3D Dummy-Komponenten für die Umgebung schaffen (zuerst BOX, CYLINDER, später STL Dateien mit den passend benannten Koordinatensystemen)
* Erstellung der ersten Referenzelemente (.svg/.stl) mit den passenden Koordinatensystem mit Funktionstest für 2 verschiedene "Level of Details" (LOD)
* Export der vorhandenen ILS Elemente/Maschinen, Gerüste, Arbeitsplätze aus CREO als STL file
* Aufbau der Elemente in Solid Edge (für den Gesamtexport der Anlage zu SolidEdge, bsp. zur Visualisierung, rendern eines Videos)
* 2D Symbole für alle Komponenten definieren (dabei auf Größenverhältnisse achten)
* 3D Files für jede Komponente, Strecke, Weichen, Gerüst konstruieren , ILS Komponenten anlegen:
* Bahnstrecke bestehen aus 2 Umlenkrollen und 2 Strecken
* Größere Verbund-Elemente (z.B. Matrix-Sortierer, Arbeitsplatz, )
* Gefällestrecke
* angetriebene Steigstrecke
## TODOs Programming
* Lernen der Programmierumgebung
* Integration der Funktion zum Platzieren und Verteilen von Gerüstelementen (Portale aus Säulen und Querträger, die am Boden stehen oder per Abhänger an der Decke verschraubt sind)
* Logik der Stücklistenerzeugung aus einer Anlage (Varianten einer Komponente, z.B. Kreisel rechts/links sollten zu jeder Komponente definiert werden können)
* Funktionen zum Kopieren, Verschieben, etc. der Einzelteile oder Gruppen in der Anlage
* Komponenteninformationen ans ERP übergeben (Export einer Liste json/csv)
* 2 verschiedene Darstellungen aller Komponenten (vereinfacht und ausmodelliert) Umschalten in Graphical Studio zwischen der Darstellungen
* Aufteilen der Schienen in einzelne Elemente und Hinzufügen der Verbindungselemente
* Exportools für SIVAS (gefiltert oder als Gesamtanlage)
* Export aller 2d Symbole einer Anlage in Form einer dxf Datei (für die Nachbearbeitung z.B. mit Listen für die Monteure)
* einen eigen RuleDesigner Prozess zum Auslesen der Connection Points aus Solid Edge Koordinatensystemen erzeugen, um alle Koordinaten aus den Teilen automatisch einzupflegen
# III. Meilensteine zum Aufbau des RD Konfigurator Systems
## Arbeitspaket 1: Verwendbarkeit für das Angebotswesen
Aufbau der Mechanik einer sehr einfachen Anlage: Nur Kreisel und Weichen (Ohne Gerüst, ohne Automation, ohne Fördere u.ä. Maschinen) zur Erstellung einer Grundkalkulation im SIVAS
* Menüstruktur des Ruledesigner (Laden, Speichern und SivasExport der Anlage)
* Elementbaum des RD zur Anwahl und Platzierung
* Löschen von Komponenten
* 2D Symbole von Kreisel, Strecke, Weiche und Ausschleuselement
* 3D STL Dateien von Kreisel, Strecke und Weiche
* Erzeugung eines einfachen .csv Reports aus allen Anlagenkomponenten und deren Eigenschaften (Typ:Gerüst/Maschine, Position:Planquadrat 2B, usw.)
## Arbeitspaket 2: Detaillierung des Modells zur genaueren Kalkulation
Ergänzung der Mechanik der Anlage durch Gerüst und mechanisches Umfeld
* Definition von Separatoren
* Ergänzung von Gerüstkomponenten (Säulen, Abhänger und Querverbinder)
* Komponenten mehrfach kopieren und "mustern"
* Definition der Fahrtrichtung (automatische Änderung von Weichen und Ausschleuselementen)
## Arbeitspaket 3: Verwendbarkeit für die Projektierung
Detaillierungsmöglichkeit der Anlage, so dass diespäteren Komponenten verbaut werden können
* Detaillierungsmöglichkeit für alle Komponenten der Anlage (Weichen rechts/links, aktiv/passiv, Separator rechts/links usw.)
* Split der Strecke in Einzelteile
* Definition von Ausparungen in der Strecke an Weichen und Ausschleuselementen
* Definition der Pneumatik (Pfade für die Schläuche aus dem Luftbedarf, Verbinder der entsprechenden Baugruppe, Anschluss der Versorgung)
## Arbeitspaket 4: Verwendbarkeit für die Automation
Definition der Grundelemente und benötigten logikbausteine/SPS Komponenten
* Berechnung der benötigten Teile für die Automation: Anzahl der EAS (aus Aktoren und Sensoren)
* Platzierung Schaltschränke, Unterschaltschränke, Sensoren
* Definition der Wege für Kabel, Signalkabel, Kabelpritschen
* Export der nötigen Teile zur Kalkulation ins Sivas
## Arbeitspaket 5: Verwendbarkeit für Marketing Zwecke und Sonderkonstruktion
Ableitung eines vollständigen CAD Modells der Anlage
* automatische Modellierung aller Einzelteile einer Anlage (inkl. Kabelpritschen, Gerüst, ..) als SolidEdge Assembly
* Definition des Workflows im Jobserver für eine automatische Ableitung
# IV. Detailplanung (Personen und Zwischenergebnisse):
## 0. Installation des RD Konfigurator
## 1. Schulung zum Ruledesigner
* Programmierdokumentation zur IDE
* Beispiele und zugehörige Funktionen
* Erklärung zu Versionierung des Softwarestandes
## Arbeitspaket 1: Angebotswesen
### 1. Menüstruktur des Ruledesigner (Laden, Speichern und SivasExport der Anlage) (*@b.mueller, @s.steuer, @m.stangl, @s.schmutzler*)
* Funktionalitäten, Features definieren
* Schaltflächen, UI
* Skizzen der Oberfläche
* Definition eines Benutzungs-Verhaltens durch den gedachten Aufbau eines Modells in Einzelschritten
* Definition von Grenzen für z.B. max./min. Kreisellänge, Stauprofillänge, Länge von Förderern o.Ä.
### 2. Elementbaum des RD zur Anwahl und Platzierung (*@e.erk, @s.schmutzler, @d.fetzer, @m.stangl*)
* Was muss in den Elementbaum, was wird automatisch generiert (z.B. Weichen können anfangs platziert werden, später aber nur noch konfiguriert (Richtungsänderung, feststellen)
* Liste der Gruppen und Einzelteile (für ILS vorhanden)
* Liste der späteren Struktur des Elementbaumes wenn einmal alles gefüllt ist (Teile für Automation, Gerüst, Peripherie, Arbeitsplätze, Fördertechnik, Verpackungsmaschinen etc...)
### 3. Review Treffen mit (*@s.schmutzler, @e.erk, @s.schoenenberger, @m.stangl*)
### 4. Löschen von Komponenten (*@m.stangl, @reif_pbu*)
### 5. 2D Symbole von Kreisel, Strecke, Weiche und Ausschleuselement (*@s.schmutzler, @e.erk*)
* eine Auswahl von Referenzanlagen
* Zusammenstellung der nötigen Nummernkreise für alle Einzelteile in den Assemblies
* Design/Erstellung der .svg Icons für den 2D Hallenplan (Koordinatensysteme abgleichen zu realen 3D-Baugruppen), Unterschied Icon (Elementbaum) und Zeichnungssymbol(Wir im 2D-Plan platziert)
### 6. 3D STL Dateien von Kreisel, Strecke und Weiche (*@s.steuer, @b.mueller*)
* Erstellung der STL Dateien für die vereinfachten Ersatzgeometrien (mit richtiger Breite, Höhe, Tiefe und richtig benannten Koordinatensystemen zum Anschluss von Strecken)
* Suche der nötigen Assemblies im Creo
* oder Erstellung im SolidEdge
* Ableitung der Neutralformate im Batchbetrieb
### 7. Erzeugung eines einfachen .csv Reports aus allen Anlagenkomponenten und deren Eigenschaften (Typ:Gerüst/Maschine, Position:Planquadrat 2B, usw.)
* Definition einer Schnittstelle für die SIVAS Kalkulation einer vollständigen Anlage (mit Hierarchien der Subsysteme nach Berechnungskategorie wie heute schon - keine einfache Liste aller Teile), Übergabeparameter für die Kalkulation (Kalkulationsschemata, Dispogruppen,…) (*@d.fetzer, @m.stangl, @anton_jakob*)
* Export einer .csv Liste entsprechend des gewünschten Sivas Imports aus dem RuleDesigner Configurator Modell (*@reif_pbu, @m.stangl*)
## Arbeitspaket 2: Detaillierung
### 1. Definition von Separatoren
* Liste aller Separatoren und deren SIVAS Nummern (wahrscheinlich schon vorhanden)
* Skizze über die Platzierung und Auswahl der gewünschten Separatoren auf einem Kreisel in Ruledesigner (welche Klicks/Menüs sollen existieren) (*@m.stangl, @s.schmutzler*)
### 2. Ergänzung von Gerüstkomponenten (Säulen, Abhänger und Querverbinder)
* Liste aller Säulen, Querverbinder und Abhänger und deren SIVAS Nummern
* Skizze über die Platzierung von Säulen bzw. Portalen in Ruledesigner (welche Klicks/Menüs sollen existieren) (*@m.stangl, @s.schmutzler*)
* Skizze über die Modifikation von Säulen zu Abhängern in Ruledesigner (welche Klicks/Menüs sollen existieren) (*@m.stangl, @s.schmutzler*)
### 3. Komponenten mehrfach kopieren und "mustern"
* Art der Muster festlegen (z.B. für Säulen oder Portale im x/yRaster oder nur linear) (*@m.stangl, @s.schmutzler*)
* kopieren bzw. Mehrfachkopie in x/y-Richtung (*@reif_pbu, @m.stangl, @s.schmutzler, @s.steuer, @b.mueller*)
### 4. Definition der Fahrtrichtung pro Kreisel (automatische Änderung von Weichen und Ausschleuselementen)
* Festlegung des Auslöseknopfes bzw. der Bereiche für eine Einstellmöglichkeit (an 2D/3D Elementen) (*@m.stangl, @s.schmutzler*)
* Programmierung der Abhängigkeitsverwaltung von zusammengehörigen Einheiten (Motorstation+Spannstation+Weichen+Abwürfe) (*@reif_pbu, @m.stangl, @s.schmutzler, @s.steuer, @b.mueller*)
## Arbeitspaket 3: Projektierung
### 1. Detaillierungsmöglichkeit für alle Komponenten der Anlage (Weichen rechts/links, aktiv/passiv, Separator rechts/links usw.)
* Liste der am Ende möglichen Zustände aller Elemente und aller ihrer möglichen Zustände (*@e.erk, @m.stangl, @s.schmutzler*)
* Festlegung des Auslöseknopfes bzw. der Bereiche für eine Einstellmöglichkeit (an 2D/3D Elementen) (*@m.stangl, @s.schmutzler*)
### 2. Definition der Ausparungen in der ILS Strecke an Weichen und Ausschleuselementen (*@e.erk, @m.stangl, @s.schmutzler*)
### 3. Definition der Pneumatik (Pfade für die Schläuche aus dem Luftbedarf, Verbinder der entsprechenden Baugruppe, Anschluss der Versorgung) (*@e.erk, @t.boos, @m.stangl*)
### 4. Definition einer Strecke für andere Anlagetypen (z.B. Omniflo aus Polygonlinienzug (*@reif_pbu, @m.stangl*)
* Knopf zum Split der Strecke in Einzelteile
* Abfrage der Angabe der Standardlänge der Streckenteile (z.B. 6 m)
* Platzierung von Punkten/Marker im Modell auf jedem Schienenende/anfang mit einer Verschiebemöglichkeit per Maus und Anzeige der neuen Längen
## Arbeitspaket 4: Automation
### 1. Liste der SIVAS Nummern aller für die Automation nötigen Elemente (*@t.schiller, @m.schellhammer, @m.stangl*)
### 2. Workshop zu den benötigten Layern und Komponenten (*@t.schiller, @m.schellhammer, @m.stangl*)
### 3. Design/Erstellung der .svg Icons für den 2D Hallenplan (*@s.schmutzler, @m.schellhammer*)
### 4. 3D STL Dateien von Schaltschrank, Kabelpritsche und Sensoren (*@s.steuer, @b.mueller*)
* Erstellung der STL Dateien für die vereinfachten Ersatzgeometrien (mit richtiger Breite, Höhe, Tiefe und richtig benannten Koordinatensystemen zum Anschluss von Strecken)
* Integration der Koordinatensysteme zur Anbindung der Kabel
### 5. Platzierung Schaltschränke, Unterschaltschränke, Sensoren
* Definiton der benötigten SIVAS Nummern für die Baugruppen (*@m.schellhammer, @f.seyfried*)
* Aufnahme in den RD Elementbaum zur Auswahl und Platzierung (*@m.stangl, @s.steuer, @b.mueller*)
### 6. Definition der Wege für Kabel, Signalkabel, Kabelpritschen
* Liste der SIVAS Nummern der möglichen Verbindungskabel
* Definition der Kabelwege in Form eines Polygonzugs zwischen den Schaltschränken (*@reif_pbu, @m.stangl*)
* Selektion mehrerer "Wege" in der Anlage zur Definition eines Pfades für ein oder mehrerer Kabel
### 7. Exportmöglichkeiten
* nach SIVAS: Definition der nötigen Informationen für den strukturierte Kalkulation (*@reif_pbu, @m.stangl, @anton_jakob*)
* nach WSCAD (*@reif_pbu, @m.stangl, @m.schellhammer*)
* Export des Mengengerüsts: Berechnung der benötigten Teile aus der Hardware, also Anzahl der nötigen Ein und Ausgänge aus Aktoren und Sensoren (*@t.schiller, @m.schellhammer, @m.stangl, @e.yüksel, @t.molina, @f.seyfried*)
## Arbeitspaket 5: Marketing
### 1. automatische Modellierung aller Einzelteile einer Anlage (inkl. Kabelpritschen, Gerüst, ..) als SolidEdge Assembly (*@reif_pbu, @m.stangl*)
* Bereitstellung aller Einzelteile der Modelle als SolidEdge Files
* Fertiges Assembly einer Halle als Vorlage für die Integration der Maschinen
### 2. Definition des Workflows im Jobserver für eine automatische Ableitung (*@reif_pbu, @m.stangl*)
+191
View File
@@ -0,0 +1,191 @@
- [1. Schulung 1](#1-schulung-1)
- [1.1. Einführung in den RD Configurator](#11-einführung-in-den-rd-configurator)
- [2. Schulung 2](#2-schulung-2)
- [2.1. Einführung das Graphical Studio](#21-einführung-das-graphical-studio)
# 1. Schulung 1
## 1.1. Einführung in den RD Configurator
### Thematische Gliederung
#### Session 1 von Schulung 1: Kontrollstrukturen
- Variablen
- Kontrollstrukturen (IF/ ELSE/ THEN, SWITCH CASE)
- Funktionen
- Message Box
- Kommentarfunktion (Remark als Debugging Punkt)
#### Session 2 von Schulung 1: Schleifen
- WHILE
- DO UNTIL
- FOREACH
- Übergabe von Parametern an Subprozess
- EXIT
- INLINE IF
- Typendeklaration
- Snapshot: Export einer Variable als XML String oder in eine Datei
#### Session 3 von Schulung 1: GUI
- klassischer Renderer
- modern UI
- Definition von Widgets (Buttons, Eingabefelder, Comboboxen, Dropdown)
- Panels, Kontrollsets Tabellen
### Video des Mitschnitts
\\\\195.243.223.8\allgemein\RuleDesigner\2023-11-02-RuleDesigner-Configurator-Schulung.mp4
### Inhalte je Zeitstempel
Hier zählt immer der angezeigte Zeitstempel von Teams im im Recording in der linken oberen Ecke.
Zeit [h:mm]| Thema
:--------- |:-----
0:13|Umgebungsvariable auf die Lizenzdatei.
0:17|Externer Programmaufruf
0:18|Aufruf eines weiteren Ruledesigner Subprozesses
0:19|Aufruf eines externen Programmes, z.B. Notepad
0:21|Aufruf einer CMD Shell
0:22|Deklaration einer Variable
0:31|IF Else Verzweigung: Unter "Flow Control"
0:34|Message Box
0:41|Switch CASE
0:42|Remarks sind Kommentare
0:43|log file eines Programmlaufs unter <Installation>\RuleDesigner\Spooler
0:49|Gruppen: Übersichtlichkeit, Error Protekted, Log an/aus
0:52|Suppress von Zeilen des Programms möglich
0:53|Aufruf einer Funktion am Beispiel des Error Handlings
0:58|IF THEN, geschrieben als eine Gruppe
1:00|Conditional node: Prüfung von verschiedenen Variablen
1:10| **Pause 1**
1:15|while condition
1:20|DO UNTIL
1:24|FOREACH am Beispiel eines Nummern Arrays
1:26|Definition einer Range oder Sequence
1:28|Funktion aufrufen innerhalb einer Schleife
1:33|Funktion aufrufen innerhalb einer Schleife, neuer Anlauf
1:43|in Foreach: Exit Condition, Tip
1:50|Subprozess definieren. Parameter für Programmlauf definieren
1:51|Aufruf des Subprozesses aus einem Hauptprogramm
1:57|Optionen des Subprozesses
1:59|EXIT: Beenden Prozess, Gruppe, Loop, Funktion oder Programm
2:01|INLINE IF: Schnelle Zuordnung eines Wertes in Abhängigkeit anderer Variablen ohne eigenen Code Block
2:04|Variable Anzahl von Parametern
2:09|Definition eines neuen Typs (Person)
2:11|Person als Parameter an eine Funktion geben
2:16|Übersicht der "Variables"
2:18|Erklärung ProcPath(): Gibt den Pfad zurück, wo das Programm ausgeführt wird
2:22|Snapshot: Export einer Variable in eine Datei
2:26|zugehörig zum Datentyp einer Liste: Durchlauf durch alle Elemnte der Liste ähnlich FOREACH, Performanter als foreach
2:32|**Pause 2**
2:45|Profilekarte (klassischer Renderer)
2:48|Lauf einer Weboberfläche
2:50|Umbau zu einer Dropdown
2:55|Definition von Buttons und Callback
3:00|Template Types (Toolbar Types)
3:03|Befüllung des Button Items
3:05|Buttons in FAB definieren (icons von pictogrammers.com für angular)
3:12|Erzeugung eines Button über Button Definition Type
3:13|Renderung mit Modern UI (unter Template einstellen: ModernUI)
3:17|Panel
3:19|Definition des Input Types, Bsp. Vorname
3:24|Ergänzung von Nachname und PLZ
3:31|Dokumentation der speziellen Visualisierungen unter [CRM of Ruledesigner](http://crm.ruledesigner.com/RDWebPlayer/rdwr/index.html?mode=page&uri=aHR0cHM6Ly9jcm0ucnVsZWRlc2lnbmVyLmNvbS9SRFdlYkFwaS9hcGkvcHVibGljL3Byb2Nlc3Mvc3RhcnQvTWFpblByb2Nlc3M%2FcHJvY2Vzc2ZvbGRlcj1NVUk%3D)
3:32|bootstrap (Spalten 1-12, Angabe von col=6 ist die Hälfte des Screens). Siehe auch www.getbootstrap.com
3:39|Definition eines Dropdown Menüs
3:48|Panels, Controlsets
3:53|Tabelle der eingegebenen Werte
4:04|Fragen
# 2. Schulung 2
## 2.1. Einführung das Graphical Studio
#### Session 1 von Schulung 2: Einrichtung und Konfiguration eines Graphical Studios
- WebEditor2d-> Types (Baustein -> Userinterface)
- Verknüpfung von WebEditor2d mit Editor2DOption zur Verwaltung der Configuration der Umgebung
![Säule als .svg](bilder/Schulung2_web2dinterface.png)
#### Session 2 von Schulung 2: Aufbau einer eigenen Library
- ab 1:45 Kopie der Library
- Erzeugung eines eigenen Shapes am Beispiel der Säule
### Video des Mitschnitts
\\\\195.243.223.8\allgemein\RuleDesigner\2023-11-06-RuleDesigner-Configurator-Schulung_2.mp4
### Inhalte je Zeitstempel
Hier zählt immer der angezeigte Zeitstempel von Teams im im Recording in der linken oberen Ecke.
Zeit [h:mm]| Thema
:--------- |:-----
0:22|WebEditor2d-> Types (Baustein, Userinterface)
0:23|Anlegen der Globalenvariable ShapeList vom Typ Editor2DShapeTypeList zur Verwaltung alle Shapes
0:25|verknüpfung von WebEditor2d mit Editor2DOption zur Verwaltung der Configuration der Umgebung
0:26|Befüllung der Editor2dOption mit der Bibliothek ShapeLibrary (liegt in RDConfigurator/WebApi/Editor2D/DefaultLibrary)
0:28|Web Graphical Editor Library Wizard zur Definition der Bibliothek
0:30|Start der Defaultsession mit Baum aus der Defaultlibrary
0:31|Einschränkung der Shapes im Graphical Editor
0:32|Aktivierung aller Eigenschaften der Defaultlibrary. Visualisierung der aktivierten
0:34|Editing PageShowToolsOnToolbar, UndoRedo: Pfeile, DrawTools: (Polyline, Line, ...), SmartlineCopy
0:39|Button Pressed: Aufruf einer Callbackfunktion
0:42|Grid button tool: Erzeugung von Mustern in 2D/3D
0:45|Dreieck in 2D ist eine Verschiebung in 3D
0:46|Grouptools: OnEditor2dGrouped als Callbackfunktion
0:48|Beispiel für Gruppierung: Callbackfunktion: drop von WebMessage in Regrouped Funktion
0:51|Suche im WebGraphical Editor Library Wizard nach der Callbackfunktion
0:52|Beispiel für Callback an Ctrl-V: Änderung der Einstellung am OBjekt
0:53|Beispiel für Callback von Doppelklick:
0:54|Freigabe an ShapeEvents in den Options für alle Events für die Reaktionen die man will. Zusätzlich am Shape selbst
0:58|Help button: HTML Seiten, welche auch in der Default Library liegen (siehe auch 0:57)
1:00|Neues Shape anlegen im WebGraphical Editor Library
1:02|Erklärung der Inhalte von RDConfigurator/WebApi/Editor2D/DefaultLibrary
1:02:30|Pfad zur Ablage der .html Datei mit der Hilfe
1:07|Frage von Simon: Das Objekt wird nach der Bestätigung mit OK in die Variable Shapelist geschrieben
1:12|**Pause**
1:18|Vergabe einer id in der Library bzw. in der Session
1:20|Umrechnung pixel, inch, mm am Shape
1:21|Erklärung weiterer Element im Editor2dOption
1:22|Frage zur Kollisionsprüfung: Nur Check der BoundingBox des Objektes gegeneinander
1:26|Editor2dOption: Autosave, DoExportImage2D
1:28|Editor2dOption: EnterBehaviour (für Polyline, z.B. bei der Angabe von FINISH/CLOSE)
1:39|Umgebung: Erstellung der Sesssion aus dem Git Repo.
1:41|Erklärung des Konzeptes der Trennung der Pfade git Repo und Installation
1:46|Kreisels als Assembly von Motor-/Spannstation und Bändern
1:50|Erklärung der Buttons FAB: Speziell Button Raster
1:54|Callbackfunktion zu Raster
1:59|Callbackfunktion zum Import
2:01|
2:08|Beispiel: Eigene Library erstellen / kopieren: Gerüst
2:09|Kopierte Default-Library aufräumen, nicht benötigtes löschen
2:11|Definiere 1 Zoll Säule
2:15|Zeichnen der Säule im Inkscape
2:20|Speichern der Säule als svg
2:24|Export als 32/64 pixel grosses Icon
2:26|Erstellung eines Verweises auf die Pfade der Icons im Shape
2:29|Angabe der echten Größe
2:33|Definition der Connection Points
2:37|Korrektur des Zeichnungsbereichs und der Zeichnung selbst
2:40|Neue 1 Zoll Säule
2:44|RE-Import in den RD Configurator
2:47|Reparatur des svg Files und neu laden im RD Configurator
2:53|Erzeugung der Säule im SolidEdge
2:56|Export als .stl und .prt
2:57|Import der 3d Information in RD Configurator (Festlegung des Centers in 3D und im Graphical Studio)
Binary file not shown.

After

Width:  |  Height:  |  Size: 32 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 28 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 61 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 25 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 30 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 49 KiB

Binary file not shown.
Binary file not shown.
+58
View File
@@ -0,0 +1,58 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
width="150mm"
height="100mm"
viewBox="0 0 150 99.999999"
version="1.1"
id="svg5"
inkscape:version="1.2.1 (9c6d41e410, 2022-07-14)"
sodipodi:docname="Saule_1Zoll.svg"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg">
<sodipodi:namedview
id="namedview7"
pagecolor="#ffffff"
bordercolor="#000000"
borderopacity="0.25"
inkscape:showpageshadow="2"
inkscape:pageopacity="0.0"
inkscape:pagecheckerboard="0"
inkscape:deskcolor="#d1d1d1"
inkscape:document-units="mm"
showgrid="false"
inkscape:zoom="1.541947"
inkscape:cx="258.76376"
inkscape:cy="219.20339"
inkscape:window-width="1920"
inkscape:window-height="1137"
inkscape:window-x="1912"
inkscape:window-y="-8"
inkscape:window-maximized="1"
inkscape:current-layer="layer1" />
<defs
id="defs2" />
<g
inkscape:label="Ebene 1"
inkscape:groupmode="layer"
id="layer1">
<rect
style="opacity:0.94;fill:#ffffff;stroke:#000000;stroke-width:1.30849;stroke-miterlimit:50;stroke-dasharray:none;paint-order:normal"
id="rect234"
width="148.69151"
height="98.691505"
x="0.65424502"
y="0.65424502"
inkscape:transform-center-y="2.4840148"
inkscape:transform-center-x="-3.0994415e-06" />
<circle
style="opacity:0.94;fill:none;stroke:#000000;stroke-width:1.32292;stroke-miterlimit:50;stroke-dasharray:none;paint-order:stroke fill markers"
id="path1009"
cx="75"
cy="50"
r="12.7" />
</g>
</svg>

After

Width:  |  Height:  |  Size: 1.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 42 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 322 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 73 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 67 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 67 KiB