Jump to content

Mikel_60

Mitglieder
  • Gesamte Inhalte

    107
  • Benutzer seit

  • Letzter Besuch

Beiträge erstellt von Mikel_60

  1. Hallo Griffin,

    das Problem war, die gleiche Ausrichtung von der Bühne und dem Gleismaterial, diese Variante war nicht genügend getestet worden.

    90grd-drehung.png

    Bei der von dir verwendeten Drehbühne, bitte den Haken bei 90° Drehen rausnehmen. Und Speichern nicht vergessen.

    Die angefahrenen Positionen waren auch um 90° versetzt.

    Beim Markieren von Brückengleis und 1. Anschlussgleis werden jetzt auch bei 0° die richtigen Längen angezeigt.

    Die Version v1.2 von der Bühnensteuerung habe ich hochgeladen, du findest Sie unter : http://www.3d-modellbahn.de/forum/thema/6503

    Gruß Micha

     

  2. Hallo Franky66,

    das Entkuppeln von Zügen hat mich auch schon beschäftigt, für meinen Nachbau von einem Bahnhof (ähnlich Lauscha) habe ich das Umsetzen der Loks nachgebildet.

    http://de.wikipedia.org/wiki/Bahnhof_Lauscha_%28Th%C3%BCringen%29

    Das Umsetzen funktioniert inzwischen für Beide Bahnhofsgleise mit der EV. Im Moment müssen noch die Loks manuell gestarted werden, wenn sie nach dem Umsetzen wieder Abfahren sollen, aber das Jahr hat ja gerade erstmal angefangen.

    Bin im Moment mit der Dokumentation zu MBSControl noch etwas ausgebremst, was die Umsetzung meiner Ideen betrifft. Aber das bringe ich auch bald zum Abschluss, fürs Erste.

    Deine Idee gleich einen Ganzen Rangierbahnhof damit umzusetzen finde ich toll, und ich weis auch was da für Zeit dahinter stecken kann. Also Hut ab (y) und ich finde es prima, was du da angefangen hast.

    Gruß

    Micha

     

  3. (Wird nach und nach ergänzt!)

    Einbindung der DLL in ein C#-Projekt

    Die DLL in das Projektverzeichnis kopieren oder in ein zentrales Verzeichnis, zur Verwendung für mehrere Projekte. Zu References hinzufügen und dann deklarieren.

    Das Beispielprojekt kann dazu als Vorlage verwendet werden.

    ###########################################################

    using MBSControl; // Die MBSControl DLL
    ...

    namespace MBSClient
    {
        public partial class frmMain : Form
        {

            private cMBS Mbs; // Mbs oder wie ihr es lieber nennt.

            public frmMain()
            {
                // Mbs wird als Instanz von MBSControl verwendet !!!
                Mbs = cMBS.Instance;
                //
                InitializeComponent();

                ....

    ##############################################################

    Auf die Bibliothek kann jetzt zugegriffen werden. Visual Studio zeigt automatisch eine Auswahl der verfügbaren Kommandos an. Um eine Bessere Übersichtlichkeit zu erreichen, wurden die Kommandos in Klassen (Gruppen) zusammengefasst. Ein Aufruf könnte folgender Maßen aussehen:

    List<string> list = Mbs.Object.GetList; // Liefert eine Liste aller Objekte im aktuellen Projekt. Für jedes Objekt den Namen als String.

    Die genauen Aufrufparameter für jedes Kommando und die Rückgabewerte sind in der bereits Oben eingebundenen Hilfedatei aufgeführt.

     

    Übersicht der Gruppen und verfügbaren Kommandos

    1. Camera: Alle Kommandos, die sich auf die Kameras beziehen
      GetList, GetScreenshot, GetName, SetActive
    2. Control: Alle Kommandos, die sich auf Steuerobjekte beziehen
      GetList, GetType, GetValue, SetValue
    3. Engine: Alle Kommandos, die sich auf die Loks beziehen
      GetSpeed, SetSpeed, GetLightState, SetLightState
    4. GroupCommands // noch nicht direkt verfügbar zur Zeit in MBSControl
    5. Info: Infos 3D-Modellbahnstudio
      Version, ApplicationPath
    6. Light: Beeinflussung der Umbebungsfarben
      SetColors
    7. Objekt: Allgemeine Objektkommandos
      GetList, GetType, GetPosition, SetPosition, GetRotation, SetRotation, GetScale, SetScale, GetSize, GetSelected, GetName, AddToGroup, Add, Clone, Delete, Rename, Group, Ungroup, Link, Unlink, GetLink, GetListOfAnimated, StartAnimation, StopAnimation, SetAnimation
    8. Projekt: Gibt aktuelle Einstellung zurück oder setzt sie.
      Id, Name, LengthUnit, AngularUnit, AnimationEnable, SoundEnable, AnimationStartOverTime
    9. Rail: Fast alle Kommandos zusammen die sich auf Gleise beziehen.
      GetList, GetType, GetCountOfTrack, GetLengthOfTrack, GetIndexOfActiveLane, ActivateLane
    10. RollingStock: Gibt Informationen über das Rollmaterial zurück.
      GetList, GetType, GetTrack,
    11. Signal: Fasst alle Kommandos, die die Signale betreffen zusammen.
      GetList, GetState, SetState
    12. Variable: Zugriff auf (Objekt-) Variablen.
      GetList, GetValue, SetValue
    13. Client: Zum Auf- und Abbau der Verbindung und auch zum direkten Senden und Empfangen von Kommandos und Rückgabewerten.
      Connect, Disconnect, [SendCommand, GetResultlist]

    http://www.3d-modellbahn.de/wiki/3415 ausführlich dokumentiert.Die verfügbaren Kommandos für SendCommand sind bereits in der Wiki unter

     

    MBS Demo C#-Client

    Mbs_demo.png

    Im Demo-Projekt sind die Grundlegenden Funktionen implementiert, um die Verbindung zum Modellbahnstudio herzustellen und die Events zu empfangen.

    Um die Einbindung der Kommandos besser zu Verdeutlichen, wurde eine kleine Beispielanwendung zur Verknüpfung von 2 Objekten eingebunden. Das Nebenobjekt wird an die selben Koordinaten, wie das Hauptobjekt platziert, lediglich die Rotation um die Z-Achse ist anpassbar. Ich nutze das zum Beispiel zur Platzierung von Beleuchtungen in Personenwagen.

    (Pause, geht Morgen weiter ...)

     

    Mbscontrol_demo.zip

  4. Hallo :),

    ich möchte Euch hier mein Projekt vorstellen: 'MBSControl'.

    Die Entwicklung von Programmen, die über die integrierte Schnittstelle des 3D-Modellbahnstudios, extern auf die Steuerung zugreifen ist noch zu sehr an die Konventionen der Schnittstelle gebunden. Das heist für mich, jedes Kommando muss in einen für das MBS lesbaren Text übersetzt werden.

    Beim Programmieren bremst mich das jedesmal aus, wenn ich sich wiederholende Abläufe bei jedem neuem Projekt immer wieder implementieren muss. Deshalb arbeite ich lieber mit einer Bibliothek, in der sich fertige Komponenten befinden und die das für mich übernehmen.

    Die Bibliothek wurde mit Visual-Studio 2013 Express und C# entwickelt, kann aber als DLL auch in anderen Programmiersprachen verwendet werden.

    Danke an EASY für die Unterstützung bei meinen Ersten Gehversuchen mit der Schnittstelle und den vielen kreativen Hinweisen für die Bibliothek.

    Die Bibliothek wird weiter wachsen, entweder mit Erweiterungen, die ich selber brauche oder was ihr vorschlagt.

    Als Dokumentation kann ich erstmal nur einen automatisch erstellten CHM-File anbieten, eine Kurzversion werde ich nach und nach im folgenden Beitrag erstellen. Dort wird ebenfalls ein Beispielprojekt zur Einbindung in ein C#-Projekt mit vorgestellt.

    Wer Fragen zur Einbindung in sein Projekt hat, oder auf Probleme stösst bitte hier im Beitrag posten, und/oder als PM an mich.

    Viel Spass wünscht

    Mikel_60

    Mbscontrol_de.zip

    Mbscontrol_dll_1.0.zip

  5. Hallo Holger,

    willkommen im Forum.

    Die Loks haben eine konstante Anfahr- und Bremsbeschleunigung. Über eine externe Beeinflussung wäre also maximal eine Verlangsamung beim Anfahren und Bremsen möglich. Ich schau mal ob ich eine Lösung dafür hinbekomme. Von EASY gibt es bereits ein Tool, mit dem man die Lokgeschwindigkeiten setzen kann. http://www.3d-modellbahn.de/forum/thema/6231

    @Neo: Es gibt bereits vordefinierte Variablen wie Objektname._CurrentSpeed und Objektname._TargetSpeed, wäre es möglich auch Variablen für die Beschleunigung einzuführen? Dann könnte man jeden Zug individuell anpassen. Evtl. mit Grenzwerten, um die Gesetze der Physik nicht auszuhebeln ;). Von Null auf Lichtgeschwindigkeit in null-komma-nichts Einststein wäre begeistert ^^.

    Bin dann mal am Basteln, aber die Idee mit den vordefinierten Variablen gefällt mir am Besten ^^.

     

    Gruß Micha

     

×
×
  • Neu erstellen...