- [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)