- [1. Schulung - Einführung in den RD Configurator](#1-schulung---einführung-in-den-rd-configurator) - [1.1. Thematische Gliederung](#11-thematische-gliederung) - [1.2. Video des Mitschnitts](#12-video-des-mitschnitts) - [1.3. Inhalte je Zeitstempel](#13-inhalte-je-zeitstempel) - [2. Schulung - Einführung das Graphical Studio](#2-schulung---einführung-das-graphical-studio) - [2.1. Thematische Gliederung](#21-thematische-gliederung) - [2.2. Video des Mitschnitts](#22-video-des-mitschnitts) - [2.3. Inhalte je Zeitstempel](#23-inhalte-je-zeitstempel) - [3. Schulung -](#3-schulung--) - [3.1. Thematische Gliederung](#31-thematische-gliederung) - [3.2. Video des Mitschnitts](#32-video-des-mitschnitts) - [3.3. Inhalte je Zeitstempel](#33-inhalte-je-zeitstempel) # 1. Schulung - Einführung in den RD Configurator ## 1.1. 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 ## 1.2. Video des Mitschnitts \\\\195.243.223.8\allgemein\RuleDesigner\2023-11-02-RuleDesigner-Configurator-Schulung.mp4 ## 1.3. 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 \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 - Einführung das Graphical Studio ## 2.1. Thematische Gliederung ### 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 ### Session 2 von Schulung 2: Aufbau einer eigenen Library - ab 1:45 Kopie der Library - Erzeugung eines eigenen Shapes am Beispiel der Säule ## 2.2. Video des Mitschnitts \\\\195.243.223.8\allgemein\RuleDesigner\2023-11-06-RuleDesigner-Configurator-Schulung_2.mp4 ## 2.3. 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) # 3. Schulung - ## 3.1. Thematische Gliederung ### Session 1 von Schulung 3: Klärung der Frage - Suchen und Ersetzen von Null durch 0 bzw. Komma durch Punkt in einer Funktion - Erzeugung einer Eingabemöglichkeit für eine Zahl, welche die Länge der Säule ändert über ModernUI ### Session 2 von Schulung 3: - import eines json files durch den RD Konfigurator - Beschreiben einer eigenen Variable H aus dem eingegeben Wert. Definition der nötigen Typen und Ableitung ![Definition eines eigenen Typen](bilder/EigenerTypSSY.png) ### Session 3 von Schulung 3: - Erzeugung eines SoldiEdge Assemblies aus der Session ![Export eines SE CAD Assemblies aus der RD Session](bilder/RDundSEVorschau.png) ## 3.2. Video des Mitschnitts \\\\195.243.223.8\allgemein\RuleDesigner\2023-11-08-RuleDesigner-Configurator-Schulung_3.mp4 ## 3.3. 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|Festlegung des Session Themas: Assemblies und einfache Funktion mit Ersetzen von NULL und Kommata 0:25|Komma durch Punkt ersetzen 0:27|Sichern und Einchecken des aktuellen Code Standes 0:40|Shape Baugruppe erstellen. Nicht weiter verwendbar, da nicht im SE veränderlich 0:50|Anlegen des Assembly im RD Configurator 0:51|Import der beiden .stl Dateien Platte und Säule 0:57|Änderung der Höhe der Säule über Doppelklick (keine Umsetzung) 1:02|Prototyp einer längenvariablen Säule in der Session 1:05|Userinterface für die Änderung der Höhe der Säule über ModerUI (MUI) 1:07|Verwendung eines neuen eigenen InputType 1:13|Beispiel des neuen UserInterfaces 1:16|**Pause 1** 1:26|Verwendung der Informationen um eine Modifikation der Säule zu erreichen 1:28|Beschreibung des Weges wie man im weiteren das Quellobjekt das Shapes bekommt 1:32|PrototypeItem: Ursprung/Quelle 1:41|neuer Weg für die Erzeugung einer verlängerten Säule: Setzen der Eigenschaften des Prototypen direkt 1:45|Laden der Eigenschaften der Säule aus der json Datei 1:46|Pfad zur Datei zusammensetzen 1:50|json Inhalt auslesen mit *ReadTextFile()* und *FromJSON()* 1:54|Umrechnung der Höhe von mm in pixel 1:59|Exkurs: Umsetzung der Erstellung der Objekte beim Kreisel 2:01|Überschreiben der Länge bei der Säule 2:04|Test in der Session 2:06|Nachschauen im alten Code für ILS 2:07|erneuter Test 2:11|erneuter Lauf 2:18|Verwendung von *AddShape* stattdessen, da in der Session das Objekt nicht kam 2:19|erneuter Lauf 2:20|Darstellung des neuen Objekts 2:21|Überschreiben der BoundingBox 2:24|Test 2:29|erfolgreicher Lauf 2:30|Diskussion zur Session und der darin dargestellten Objekte 2:40|Ergänzung des Prototypen um spezifische Attribute (SSYType) 2:45|Exkurs: Umsetzung der Datentypen im ILS Code 2:46|Einschreiben der Länge in den neuen Datentyp 2:51|**Pause 2** 3:02|Neuer Button im RD Configurator für den Export nach SolidEdge 3:08|Umsetzung der Skalierung im SolidEdge über Anpassbares Teil (Höhe H) 3:13|Umsetzung des SE Exports im RD Configurator 3:17|erster Testrun: neue leeres Assembly 3:19|Importieren der nötigen Types in den Unterprozess 3:24|Implentierung des PlacePart Prozesses im SUB_SE 3:30|erster Lauf in SE, Fehlschlag 3:32|Lauf eines Beispiel mit 3 Säulen, Fehlschlag 3:38|Lauf mit 2 Säulen, Fehlschlag bei der Höhe. Alle Säulen sind 1000 mmm 3:43|Änderung der Baugruppe im SE auf anpassbare Baugruppe 3:45|Umbau des Programmes zur Verwendung der anpassbaren Baugruppe 3:49|erfolgreicher Lauf 3:51|Neuimplementierung, da Debug Prozess nicht gespeichert war 3:57|neuer Test mit 3 unterschiedlichen Höhen 4:07|Beantwortung der Fragen