ElFerrocarrilero Geschrieben 10. Januar Geschrieben 10. Januar (bearbeitet) Hallo Alle, trotz gründlicher Suche gelingt es mir nicht, eine (möglichst) vollständige Dokumentation (API*, Handbuch, Reference o.ä.) der MBS-spezifischen Lua-Komponenten (Befehle, Funktionen, eventuelle Einschränkungen, usw) zu finden (für MBS V8). Das Tutorial von Goetz behandelt mehr die allgemeinen Grundlagen der Lua-Programmierung; die Wiki-Seite zur Ereignisverwaltung mit Lua beschreibt die Möglichkeit, Lua zu nutzen, geht aber nicht auf Einzelheiten ein, bis auf den Hinweis "Alle Befehle, die 3D-Modellbahn Studio unterstützt, sind in der automatischen Hilfe (Autovervollständigung) dokumentiert." Aber auch das hilft ja nur, wenn man zumindest den Anfang des betreffenden Befehls bereits kennt... Hier im Forum finden sich viele schöne und hilfreiche Beispiele, oft mit Demo-Anlagen; und ich weiß auch, dass Programmierung in der grafischen Ereignisverwaltung als Skript gesehen werden kann. Das alles hilft bei speziellen Problemen und gezielter Suche, aber nicht so recht für breitere Orientierung und Überblick beim Einstieg, und zum Nachschlagen. Übersehe ich da was? Gibt es so eine Dokumentation, und wo wäre sie zu finden? Viele Dank für alle Tips! El Ferrocarrilero Bearbeitet 10. Januar von ElFerrocarrilero typo
Neo Geschrieben 10. Januar Geschrieben 10. Januar Hallo El Ferrocarrilero und Willkommen im Forum! Eine Auflistung aller Lua-Befehle gibt es wie von dir bereits erkannt direkt im Programm. Du musst dafür aber nicht den Anfangsbuchstaben kennen, sondern nur die Grundprinzipien: STRG + Leertaste listet dir alle globalen Funktionen und Variablen auf . (Punkt) listet dir alle zur Verfügung stehenden Objekteigenschaften auf : (Doppelpunkt) listet dir alle zur Verfügung stehendenen Objektmethoden auf Alle wichtigen Informationen findest du in dieser Programmierhilfe. Viele Grüße, Neo
ElFerrocarrilero Geschrieben 10. Januar Autor Geschrieben 10. Januar (bearbeitet) Hallo neo, ahaa! Besten Dank für die schnelle Antwort und diesen Hinweis, das hilft in der Tat erheblich weiter, da auch die MBS-spezifischen Dinge aufgeführt werden. Dazu noch eine Anregung und ein Wunsch, wenn es dem (Wieder-)Neueinsteiger gestattet ist. Anregung: Deinen Hinweis habe ich sonst nirgendwo gefunden (falls nicht übersehen); es wäre sicher gut, wenn der auch auf der o.g. Wiki-Seite stünde, wo ja nur von Autovervollständigung die Rede ist. Sollte sich doch leicht machen lassen? Wunsch: Falls vom (Source-)Format und vom Umfang her machbar (was ich natürlich nicht beurteilen kann), wäre es sehr nützlich, diese Programmierhilfen auch als ein "stand-alone" Dokument zu haben (PDF? HTML/Webseite?). Sollte doch auch möglich sein? (Nothing is impossible for the man who does not have to do it. Ich volontiere aber, falls gewünscht...) Zum einen, weil man dies Thema vielleicht nicht nur "in game" studieren möchte. (Oder vielleicht Lua-Skripte erstmal "extern" schreiben will, in Notepad++ o.ä.) Zum anderen, weil das User Interface des EV-Editors zum Nachschlagen gut funktioniert, zum "erstmal einen Überblick gewinnen" aber nicht so ganz optimal ist ("IMHO"): Das Fenster lässt sich nicht maximieren in der Größe ändern (gerade beim Verifizieren meiner Behauptung erst entdeckt), die Größe des relativ kleinen Dropdown-Fensters für die Programmierhilfen scheint das aber nicht zu beeinflussen, man muss also fleißig scrollen. Alles trotzdem sehr hilfreich und ganz sicher kein "Showstopper", aber die Information auch als "out of game"-Dokument zu haben wäre halt doch nützlich. Nichtsdestoweniger kanns nun weitergehen, nochmals vielen Dank für die schnelle Hilfe! El Ferrocarrilero Bearbeitet 10. Januar von ElFerrocarrilero typo
Goetz Geschrieben 10. Januar Geschrieben 10. Januar vor 44 Minuten schrieb ElFerrocarrilero: Deinen Hinweis habe ich sonst nirgendwo gefunden Jedes Lua Skript im MBS beginnt mit diesem Text:
Neo Geschrieben 10. Januar Geschrieben 10. Januar Hallo El Ferrocarrilero, ich habe das Wiki um die Informationen bezüglich des Punktes und Doppelpunktes erweitert. Ich selber bin kein großer Freund von einer Dokumentation außerhalb des Studios, weil diese schnell veraltet und es doppelten Aufwand bedeutet, sie zu pflegen. Nichtsdestotrotz steht es dir natürlich frei, so eine Dokumentation zu erstellen, und ich kann dir die gesamten Lua-Befehle auch als strukturierte XML-Datei zusenden, aber das warten und pflegen so einer Dokumentation möchte ich selber nicht übernehmen. Viele Grüße, Neo
ElFerrocarrilero Geschrieben 10. Januar Autor Geschrieben 10. Januar 21 minutes ago, Goetz said: Jedes Lua Skript im MBS beginnt mit diesem Text: Aargh, sorry. . "(falls nicht übersehen)". Also doch. Vermutlich zu oft gesehen um noch drauf zu achten, aber leider bevor das Info "verinnerlicht" war... Cheers, El Ferrocarrilero
ElFerrocarrilero Geschrieben 10. Januar Autor Geschrieben 10. Januar 10 minutes ago, Neo said: ich habe das Wiki um die Informationen bezüglich des Punktes und Doppelpunktes erweitert. Danke! 12 minutes ago, Neo said: Dokumentation außerhalb des Studios, weil diese schnell veraltet und es doppelten Aufwand bedeutet, sie zu pflegen. [...] das warten und pflegen so einer Dokumentation möchte ich selber nicht übernehmen Ja klar, das ist natürlich immer der Haken. 14 minutes ago, Neo said: Nichtsdestotrotz steht es dir natürlich frei, so eine Dokumentation zu erstellen, und ich kann dir die gesamten Lua-Befehle auch als strukturierte XML-Datei zusenden Keine Garantie, aber das wäre nett und einen Versuch wert, wenn der Aufwand für dich nicht zu groß ist. Idealerweise müsste man eine automatische Konvertierung "XML zu irgendwas" (z.B. HTML) haben. (Ich befürchte also XSLT, kenne das aber bisher nur mehr oder weniger vom Hörensagen, nicht aus direktem Zweikampf.) Schau mer ma, dann sehn mer scho (wie m.W. Zenmeister Beckenbauer zu sagen pflegte). Hat dieses Forum "Private messages", oder kannst du (als Admin, wie ich vermute) meine Email-Adresse der Benutzerliste entnehmen? Cheers, El Ferrocarrilero
Phrontistes Geschrieben 10. Januar Geschrieben 10. Januar vor 14 Minuten schrieb ElFerrocarrilero: Hat dieses Forum "Private messages"
ElFerrocarrilero Geschrieben 10. Januar Autor Geschrieben 10. Januar 12 minutes ago, Phrontistes said: Danke! Aber hmm, bei mir gibts nur das Glöckchen, vielleicht weil der Account eben erst eingerichet wurde (und man womöglich erst "street cred.s" sammeln muss, wie bei anderen Foren)? Oder ich muss meine Einstellungen (also die von meinem Account ) nochmal überprüfen. Cheers, El Ferrocarrilero
Neo Geschrieben 10. Januar Geschrieben 10. Januar Hallo El Ferrocarrilero, deine E-Mail sehe ich, die Listen (in beiden Sprachen) hänge ich aber hier als Dateianhang an, eventuell gibt es auch andere Nutzer, die sich an einer automatischen Transformation mit XLST versuchen möchten. Sollte eine verünftige PDF daraus entstehen, kann ich diese gern anschließend im Wiki verlinken. Private Nachrichten können nur Nutzer der Professional-Version schreiben. Viele Grüße, Neo ScriptDefs.zip
gmd Geschrieben 10. Januar Geschrieben 10. Januar 2 html files, simple formatting hoffe das gefaellt Gruss Gmd ScriptDefinitionsFullFormatted_EN.zip
ElFerrocarrilero Geschrieben 10. Januar Autor Geschrieben 10. Januar 1 hour ago, Neo said: hier als Dateianhang Vielen Dank! 1 hour ago, Neo said: Private Nachrichten können nur Nutzer der Professional-Version schreiben. Das erklärt es, zur Abwechslung also mal nicht User Error. Ich habe zwar die Pro-Version, aber unter anderer Email-Adresse (und anderem Passwort) gekauft, und einen Forum-Account neu und separat registriert. Laut Begrüßungs-Email nach dem Kauf wäre das "Kauf-Passwort" wohl auch für Community/Forums-Zugang zu benutzen, aber das war mir ein bisschen suspekt. So habe ich hier im Forum also wohl nur Amateur-Status. Nochmal Dank an Alle für die schnelle Hilfe! Cheers, El Ferrocarrilero
ElFerrocarrilero Geschrieben 10. Januar Autor Geschrieben 10. Januar 41 minutes ago, gmd said: 2 html files, simple formatting Prima, Gmd gewinnt (und erspart mir den Zweikampf mit XSLT...) , das ging schnell! Vielen Dank! Cheers, El Ferrocarrilero
Phrontistes Geschrieben 10. Januar Geschrieben 10. Januar vor 55 Minuten schrieb gmd: 2 html files, simple formatting Coverted to pdf. ScriptDefinitionsFullFormatted.pdf ScriptDefinitionsFullFormatted_EN.pdf
Neo Geschrieben 10. Januar Geschrieben 10. Januar vor 24 Minuten schrieb ElFerrocarrilero: Ich habe zwar die Pro-Version, aber unter anderer Email-Adresse Ich kann deine Accounts gern zusammenlegen, wenn du das wünschst. vor einer Stunde schrieb gmd: 2 html files, simple formatting Die Formatierung ist sehr rudimentär, Listen oder Zeilenumbrüche gehen verloren. Auch wäre ein Inhaltsverzeichnis mit Sprungpunkten nicht schlecht. Vielleicht hat ja jemand Lust per XSLT eine komplexere Formatierung vorzunehmen, dann wäre das auch etwas fürs Wiki. Viele Grüße, Neo
gmd Geschrieben 11. Januar Geschrieben 11. Januar (bearbeitet) Hier eine etwas bessere version. Habe 3 file formate im zip mht fuer browser use ohne page breaks, docx zum nachbearbeiten wenn jemand lust hat die table of contents aktiv zu machen (word hat automatische TOC, die header sind ja gesetzt), und ein pdf mit page breaks. Ich bevorzuge die mht version da sie am besten zu lesen ist und compakt. Ich habe den AI noch etwas gekitzelt mir ein besseres ergebnis abzuliefern, aber zu mehr habe ich viel zeit (lust) muss ich sagen. Dieses ergebnis is ok, meiner meinung gemessen an der zeit die ich damit verbracht habe .. Werde noch die englische version machen .. Fuers Wiki muesste es noch etwas huebscher werden, aber vielleicht findet sich ja jemand .. Gruss Gmd Script Definitions_LUA_Deutsch.zip Bearbeitet 11. Januar von gmd
gmd Geschrieben 11. Januar Geschrieben 11. Januar Und hier die englische version Wenn jemand lust hat selbst einen versuch zu machen, ich habe das mi ChatGpt 4o gemacht .. die freie version ist 4omini, habe keine ahnung was die version macht. Jedenfalls 4o kommt nach etwas insistieren zu einem halbwegs brauchbaren ergebnis. Gruss Gmd Script Definitions_LUA_English.zip
ElFerrocarrilero Geschrieben 11. Januar Autor Geschrieben 11. Januar 18 hours ago, Neo said: Ich kann deine Accounts gern zusammenlegen, wenn du das wünschst. Danke, aber ist nicht nötig; mir passen getrennte Accounts für Foren und "Geschäftliches" ganz gut (verschiedene "Sicherheits-Level"). Zum Thema: Mittlerweile hatte ich zwar auch einen Formatierungsanlauf genommen, aber wie man sieht, ist das Tempo von gmd und Phronistes unschlagbar, vielen Dank für eure Arbeit! Auf die Idee mit "AI" für die (knifflige) Auto-Formatierung des eigentlichen Textes war ich auch gekommen, hab aber (wohlweislich) keine Erfahrung damit; umso interessanter sind die von gmd erzielten Ergebnisse. 9 hours ago, gmd said: Ich bevorzuge die mht version Benötigt allerdings wohl Microsoft Internet Explorer oder Edge(?). Zumindest Firefox kann mit MHT nichts (mehr; früher gings wohl mal) anfangen; es gab zwar Erweiterungen dafür, die funktionieren aber nicht mit neueren Firefox-Versionen . Cheers, El Ferrocarrilero
EASY Geschrieben 11. Januar Geschrieben 11. Januar Hallo @gmd, @Neo, in Deiner Version findet sich unter "Ereignisse"... 3.1 Event - OnStart Beschreibung: Das Ereignis OnStart wird aufgerufen, wenn das Layout gestartet wird. Beispiel: lua Copy code function layout:onStart() print("Layout gestartet.") end ________________________________________ 3.2 Event - OnStop Beschreibung: Das Ereignis OnStop wird aufgerufen, wenn das Layout gestoppt wird. Beispiel: lua Copy code function layout:onStop() print("Layout gestoppt.") end ________________________________________ 3.3 Event - OnObjectAdded Beschreibung: Das Ereignis wird aufgerufen, wenn ein Objekt dem Layout hinzugefügt wird. Beispiel: lua Copy code function layout:onObjectAdded(object) print("Objekt hinzugefügt: " .. object.name) end ________________________________________ 3.4 Event - OnObjectRemoved Beschreibung: Wird ausgelöst, wenn ein Objekt aus dem Layout entfernt wird. Beispiel: lua Copy code function layout:onObjectRemoved(object) print("Objekt entfernt: " .. object.name) end ... wenn ich die Funktionen versuche zu setzen ("Copy code"), gibt es eine Fehlermeldung, da diese Ereignisse eigentlich nicht existieren... ... woher stammen die Informationen für diese Ereignisse? (in der originalen .xml von Neo kann ich sie nicht finden...) (... oder habe ich etwas übersehen?) Gruß EASY
gmd Geschrieben 11. Januar Geschrieben 11. Januar Ich wuerde mal sagen das hat der AI getraeumt. Ich habe den inhalt nicht geprueft ob er wirklich dem original entspricht, h atte mich nur ueber die lanege gewundert aber nicht weiter darueber nachgedacht. Deckt sich mit den anderen erfahrungen mit dem AI , man braucht manchmal viele anlaeufe bis was vernueftiges rauskommt. Also wahrscheinlich doch besser mit XLST. Danke Easy das du das aufgedeckt hast ... Und entschuldigung dass ich da nicht sorgfaeltiger war. gruss Gmd
gmd Geschrieben 11. Januar Geschrieben 11. Januar Ich habe den AI nochmals befragt woher das dokument kommt das er ausgespuckt hat als formatierung fue das XML. Hier ist die Antwort .. Ich glaube wir haben aus versehen die dokumentation der EEP implementierung bekommen. Hmmm... ich denke das alleine ist eine diskussion wert ueber sinn und unsinn eines AI. Dann habe ich die Frage gestellt: How does that compare with 3D Modellbahn Studio und die antwort is unten angeheftet Und falls das zuviel fremdwerbung ist, kann Neo den thread ja loeschen, fuer mich ist allerdings weder EEP noch RocRail wirklich konkurrenz. Wow, wieder was gelernt ... und fakten sorgfaeltiger checken gruss Gmd The provided Table of Contents (TOC) has some overlap with both EEP (Eisenbahn-Experten-Programm) and Rocrail, but the overall structure aligns more closely with EEP Lua scripting. Here’s a comparison: 1. EEP (Eisenbahn-Experten-Programm) Key Indicators: EEP uses onStart, onStop, onObjectAdded, and other event-driven Lua functions. Extensive use of layout objects like Vehicle, Signal, Track, Switch, and Block. Lua scripting with defer(), toTime(), and playSound() is characteristic of EEP's simulation scripting environment. EEP has UI-related functions such as showPopup, playEffect, and safety-related controls (enableEmergencyBrake). Matching Sections: Event Parameters, Global Variables/Functions, Events, Layout Objects, Vehicle Properties, Signal Settings, Functions for Event Scripts, and Animation Control are all common in EEP. Depot-related and contact settings (e.g., triggeredBy, isActive) also appear frequently in EEP. 2. Rocrail Key Indicators: Rocrail supports Lua scripting for automation but is more focused on integration with MQTT, network communication, and event-based commands for train control. Rocrail typically emphasizes train schedules and actions but may not have as many animation functions (e.g., playEffect, setCamera) as listed in your TOC. Rocrail tends to focus more on track feedback, occupancy detection, and external control using scripts. Matching Sections: Network-related commands, event registrations, and vehicle tracking (trackVehicle, stopTrackingVehicle) do align with Rocrail. Functions like getConnectedBlocks, sendCommandToVehicle, and external communication (connectToServer) match Rocrail's architecture. Conclusion: Based on the structure and variety of features like UI effects, signal and contact functions, and the animation controls listed in your document, this TOC matches EEP's Lua scripting environment more closely. If you’re using EEP, this makes sense. Rocrail’s scripting is more focused on command-based control rather than UI animations and vehicle properties in such detail. Let me know if you’d like a detailed example comparison, or if I should extract additional details to confirm! -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- Comparison with 3D Modellbahn Studio Lua Scripting: 3D Modellbahn Studio is a sophisticated 3D model railway simulation software that supports Lua scripting for layout automation, similar to EEP and Rocrail. Here’s how the features in your table of contents compare with 3D Modellbahn Studio's capabilities: Similarities: Event System: 3D Modellbahn Studio supports event-based triggers like onSimulationStart, onObjectAdded, and onObjectRemoved, similar to your "Events" section (3.1 OnStart, 3.3 OnObjectAdded). Lua scripts in 3D Modellbahn Studio can listen to events related to vehicles, signals, contacts, and switches, matching the types in your "Layout Objects" (5.x) section. Object References and Properties: Your TOC mentions Vehicle, Signal, Track, Switch, Camera, Depot, etc., which are also core simulation elements in 3D Modellbahn Studio. Properties like currentSpeed, maxSpeed, and stateCount (sections 7.x and 8.x) are typical in both 3D Modellbahn Studio and EEP for controlling vehicle behaviors and signal states. Functions for Event Scripts: Functions like print(), math.random(), and wait() are standard Lua functions used in 3D Modellbahn Studio for script debugging, randomness, and delays (sections 6.x). The ability to control objects (playSound, setSignalState, spawnVehicle, etc.) appears in both environments. UI and Animation Controls: Both EEP and 3D Modellbahn Studio support animations (playAnimation, setCamera, showPopup), indicating that visual storytelling and camera effects are part of the simulation scripting. Differences: Focus on 3D Visualization: 3D Modellbahn Studio emphasizes immersive 3D layout visualization and has detailed animation controls (startAnimation, stopAnimation), which are noted in your document. Some UI controls like showMessage, showAlert, and resetCamera may be more relevant to interactive user interfaces rather than purely automation-focused scripting like Rocrail. Network and External Communication: The "Network Communication" and "External Communication" sections in your TOC align more with Rocrail’s network-centric approach but may have some support in 3D Modellbahn Studio for cloud-based layout sharing rather than MQTT communication. Schedule and Depot Management: The sections on schedules (12.x) and depots (10.x) indicate a system with train management logic, which 3D Modellbahn Studio supports in simpler form but may not be as extensive as EEP’s detailed timetable and depot functions. Conclusion: Your TOC is highly aligned with 3D Modellbahn Studio, especially for event-based control, animations, vehicle properties, and user-defined variables. Some parts, such as detailed network synchronization (35.x) and statistics export (30.x), may indicate additional features beyond 3D Modellbahn Studio's primary focus, pointing more toward EEP or Rocrail. If your simulation includes detailed schedules and train operations, EEP remains a strong contender. Would you like me to dig deeper into specific sections or assist with more detailed examples from 3D Modellbahn Studio?
ElFerrocarrilero Geschrieben 11. Januar Autor Geschrieben 11. Januar (bearbeitet) 2 hours ago, ElFerrocarrilero said: ...[ich] hab aber (wohlweislich) keine Erfahrung [mit "AI"]; Daher "wohlweislich"... Cheers, El Ferrocarrilero Bearbeitet 11. Januar von ElFerrocarrilero typo
gmd Geschrieben 11. Januar Geschrieben 11. Januar 7 minutes ago, ElFerrocarrilero said: Daher "wohlweislich"... Cheers, El FErrocarrilero Da hast du wohl recht. Ich verwende den AI zum programmieren und das ist ein 100% factcheck, entweder es geht oder es geht nicht .. und zum texten fuer webseiten.. das kann man ja auch selbts korrigierenn .. der rest ist fragwuerdig gruss Gmd
Neo Geschrieben 11. Januar Geschrieben 11. Januar Die KI-Antwort ist leider nicht zu gebrauchen, das Dokument ist ein Mischmasch aus verschiedenen Programmen und hat mit der Original-XML-Datei nicht viel gemeinsam. Ich denke zumindest ChatGPT braucht hier noch ein bisschen Training.
gmd Geschrieben 11. Januar Geschrieben 11. Januar 40 minutes ago, Neo said: Die KI-Antwort ist leider nicht zu gebrauchen, das Dokument ist ein Mischmasch aus verschiedenen Programmen und hat mit der Original-XML-Datei nicht viel gemeinsam. Ich denke zumindest ChatGPT braucht hier noch ein bisschen Training. Haha, da hast du wohl recht .. Aber ein fundus an ideen .. gruss Gmd
Empfohlene Beiträge
Erstelle ein Benutzerkonto oder melde dich an, um zu kommentieren
Du musst ein Benutzerkonto besitzen, um einen Kommentar verfassen zu können
Benutzerkonto erstellen
Neues Benutzerkonto für unsere Community erstellen.
Neues Benutzerkonto erstellenAnmelden
Du hast bereits ein Benutzerkonto? Melde dich hier an.
Jetzt anmelden