Jump to content

Erwin

Mitglieder
  • Gesamte Inhalte

    27
  • Benutzer seit

  • Letzter Besuch

Beiträge erstellt von Erwin

  1. Hallo, zusammen,

    ich habe eine neue Version der Anlage eingestellt.

    Jetzt sind im Schienenbus lauter nette Leute zu sehen (Kamera-Ansicht 6), die ich mit der Methode von @BahnLand dort eingepflegt habe.

     Das Platzieren war gar nicht sooo schwer, wenn ich nahe genug an den Triebwagen heranzoome, dann befinde ich mich im Inneren des Wagens und kann alle Passagiere anklicken und per Gizmo verschieben.

    Weiterhin viel Spaß wünscht

    Reinhold

  2. Ich habe gerade eine neue Version der Anlage im ersten Beitrag verlinkt.

    Änderungen:

    • Alle Cockpit-Cams nochmals angeschaut und auf einen guten Blickwinkel gesetzt (nicht auf den Boden)
    • Das Loch im Tunnel repariert
    • Den Deckenbewuchs etwas bearbeitet (guckt jetzt nicht mehr durch die Tunneldecke)
    • Die virtuellen Schienen für die beiden Autos verbessert; jetzt fahren sie flüssiger

    Das mit den Passagieren stelle ich erst mal zurück; da muss ich basteln.

    Jedenfalls Dank an @BahnLand für die Hinweise, ich probiere das aus!

    Viele Grüße,

    Reinhold

  3. Hallo, Tom (@metallix),

    vor 14 Stunden schrieb metallix:

    Das kann man selber aendern;)......verbinden, nach dem plazieren, nicht vergessen.

    wie geht das denn?

    Ich habe versucht, Menschen aus dem Katalog in den Schienenbus zu ziehen, das funktioniert jedenfalls nicht.

    Gibt es da einen Trick?

    Viele Grüße,

    Reinhold

  4. Hallo, Frank (@fzonk),

    vielen Dank für die (sehr willkommenen) Hinweise.

    Das Loch war schnell gebohrt, und auch die virtuellen Schienen für die Autos habe ich etwas angepasst.

    Der Deckenbewuchs ist so eine Sache, ich habe ihn eigentlich gepflanzt, damit von den Tunneln nicht so viel nackt in die Landschaft guckt.

    Dabei hat es mich wohl übermannt...

    Zumindest diejenigen Pflanzen, die im Tunnel duch die Decke schauen, habe ich etwas höhergelegt.

    Viele Grüße,

    Reinhold

  5. Die Cockpit-Kameras eignen sich sehr gut, um sich auf einer Anlage umzusehen!

    Rechte Maustaste gedrückt halten, und man kann mit der Maus in alle Richtungen gucken, recht, links, oben, unten, vor und zurück.

    Beim Schienenbus sieht man beim Zurückblicken das Innere des Fahrzeugs, leider mit lauter leeren Sitzen!

    Viele Grüße,

    Reinhold

  6. Hallo, zusammen,

    meine erste Anlage für das MBS ist fertig!

    Bevor ich sie veröffentliche, möchte ich sie hier mal zur Begutachtung vorstellen, ob sie dem Niveau des MBS entspricht.

     

    Die Beschreibung:

    Dies ist meine erste Anlage im MBS.
    Vorbild war die alte Anlage meiner Kindheit, die leider nicht mehr existiert.
    Ich habe den Gleisplan nach dem Gedächtnis gemacht, ebenso die Züge und die Landschaft.

    Die Anlage hat einen hohen Spielwert; gesteuert wird sie durch die 6 roten Tasten.
    Taste 1 bis 3 startet eine Rundfahrt des Zuges, der an SH1, SH2 bzw. SH3 steht, auf der dazugehörigen Strecke.
    Taste 4 bis 6 tauscht Züge: SH1 mit SH2, SH1 mit SH3 , und SH2 mit SH3.

    Animationen:
    Es gibt einen Schalter, der die Animationen startet bzw. stoppt: 2 Autos fahren um die Gebäude, die Frau im Ruderboot rudert.

    Automatik:
    Es gibt einen Automatikschalter, der per Zufall eine der roten Tasten betätigt.
    Auch bei jedem Zughalt an einem Signal wird eine zufällige Automatikfahrt ausgelöst.

    Beim reinen Automatikbetrieb gibt es keine Zusammenstöße von Zügen oder ähnliche unerfreulichen Ereignisse; die Züge laufen ungestört vor sich hin.

    Spannender ist es, beim Automatikbetrieb die Züge, die nicht automatisch fahren, per Hand loslaufen zu lassen; dabei kann Kuddelmuddel entstehen!

     

    Und hier ist sie:

    Content-Id: FA04CB83-C530-4791-A690-2D2AE4452A8C

     

  7. @Neo:

    Ich denke, es ist in Ordnung, dass "Variable == nil" und "Variable existiert nicht" in der EV gleich behandelt wird.

    Ich bin darüber gestolpert, weil ich in meinem Skript "Verbinden der Gleise eines Gleisstrangs mit einem GBS-Strang" die Gleise mit einer Variablen "GBS" versehe, die auf den zugehörigen GBS-Baustein verweist.

    Als ich diese Variable wieder entfernen wollte, um den Urzustand wieder herzustellen, stellte ich fest, das geht nicht: Die Variable erhält den Wert "nil", ist aber im Variablen-Editor noch zu sehen.

    Dann habe ich herumgespielt, und mit dem Trick

    • Weise der Variablen einen Zahlenwert zu
    • Weise der Variablen den Wert nil zu

    konnte ich die Variable tatsächlich löschen.

     

    @Andy: Es freut mich, wenn du dir mein Skript mal anschaust.

    Ich habe zwar Programmiererfahrung, aber mit Lua laufe ich gerade erst los, da macht man leicht etwas so, wie man es nicht machen sollte.

    Ein paar Eigenheiten habe ich schon entdeckt:

    • Die globale Variable "Gleiszähler" wird von Lua akzeptiert, trotz des Umlauts! Eine lokale Variable "Verhältnis" wurde nicht akzeptiert!
    • bei print wird die Ausgabe von "\n" anscheinend ignoriert.
    • $("Hacks").variables["Gleiszähler"] ist möglicherweise zu umständlich. Einfach "Gleiszähler" würde beim ersten Zugriff eine globale Variable erzeugen.

    Viele Grüße,

    Reinhold

     

  8. Ich habe einem Gleis eine Variable "GBS" hinzuggefügt vom Typ Objekt, die auf einen GBS-Baustein zeigt.

    Diese Variable lässt sich mit der EV nicht löschen, sie erhält beim Löschversuch den Wert [Leer], ist aber noch vorhanden.

    Jetz habe ich folgendes versucht:

    track.variables["GBS"] = 42   -- Jetzt ist "GBS" eine Zahl
    
    track.variables["GBS"] = nil  -- Jetzt ist "GBS" verschwunden

    Was mich verwundert hat: Die Variable hat durch die Zuweisung einer Zahl einfach den Wertetyp geändert.

    Ist diese Vorgehensweise zum Löschen einer Objektvariable legitim?

    Oder habe ich da eine Schwachstelle ausgenutzt?

    Viele Grüße

    Reinhold (Erwin)

     

  9. Hallo zusammen,

    für meine erste Anlage hatte ich mir ein kleines Skript gebastelt zum Verbinden der Gleis-Stränge mit den GBS-Strängen.

    Dann bin ich über einen Beitrag von @digidampfman gestolpert, der dieses Problem ebenfalls mit einem Skript gelöst hatte.

    Daraufhin habe ich mein Skript angepackt, erweitert, dokumentiert und nun, da ist es.

    --[[
    Dieses Skipt soll helfen, einen Gleisstrang (die Strecke zwischen zwei Weichen) mit
    dem entsprechenden GBS-Strang zu verbinden.
    
    Achtung! Vor dem Benutzen des Skripts unbedingt die Anlage sichern!
    
    Fragen zum Skript, Anregungen, Verbesserungen bitte an "Erwin".
    
    Installiert wird das Skript im Ereignismodul "Hacks" unter dem Namen "Verbinde Gleis-Strang mit GBS-Strang".
    Das Modul "Hacks" enthält eine Modulvariable "Gleiszähler" vom Typ Zahl.
     
    Auslöser für dieses Skript: Ein Zug/Fahrzeug betritt ein "beliebiges Gleis/Straße".
    
    
    Vorbereitungen:
    
    Das Gleisbild ist angelegt und das zugehörige GBS ist ebenfalls angelegt.
    Im GBS haben alle Gleis-Bausteine einen Namen erhalten.
    Namensschema ist z.B. "GBS <Strangbezeichnung>_<laufende Nummer, zweistellig, 01, 02, 03...>"
    Beispiel: "GBS o3_04" (4. Baustein im Strang "3o")
            
    Das Ereignismodul "GBS" sollte deaktiviert sein!
    
    Ein kleiner Zug (z.B. "ASF 139") mit dem Schagwort "Baufahrzeug" wird auf die Startweiche gesetzt.
    
    Im Skript werden die entsprechenden Variablen gesetzt (Beispiele siehe unten):
    Scharf_Gleisname
    Scharf_Schlagwort
    Scharf_Zielbaustein_GBS
    Anzahl_Gleise                   
    Gleis_Name
    Anzahl_GBS
    GBS_Name
    Startweiche
    Endweiche
    
    Die Ereignisprotokollierung wird gestartet und der Zug wird losgeschickt.
    Das Skript protokolliert alles, was es tut oder tun würde!
    
    Wenn das Baufahrzeug die Zielweiche erreicht hat, wird das Ereignis sicherheitshalber deaktiviert.
    Das Baufahrzeug kann dann weiterfahren, ohne dass es Schaden anrichtet!
    
    Zum Testen wird empfohlen, die Variablen Scharf_... auf 0 zu setzen!
    
    Ein Hinweis: Beim Setzen des Gleisnamens habe ich den alten Namen hinten angefügt.
    In dieser Form sollte der Name nicht mehrfach gesetzt werden! 
    --]]
    --
    
    -- Wenn Scharf_... ~= 0 ist, dann werden die Änderungen wirklich durchgeführt!
    -- Wenn Scharf_... == 0 ist, dann wird nur ausgegeben, was ansonsten getan werden würde!
    local Scharf_Gleisname = 0
    local Scharf_Schlagwort = 0
    local Scharf_Zielbaustein_GBS = 0
    
    -- Die folgenden Variablen müssen für jeden Gleisstrang angepasst werden!
    local Anzahl_Gleise = 9        -- Anzahl Gleise des Strangs 3o
    local Gleis_Name = "Gleis 3o_" -- So beginnt jeder Gleis-Name des Gleis-Strangs "3o"
    
    local Anzahl_GBS = 6        -- Anzahl GBS-Bausteine des Strangs 3o
    local GBS_Name = "GBS 3o_"  -- So beginnt jeder GBS-Baustein-Name des GBS-Strangs "3o"
    
    -- Der Strang geht von Startweiche bis Endweiche
    local Startweiche = "W2_5128"
    local Endweiche = "Kreuzung - 5114"
    
    
    if vehicle.variables["Baufahrzeug"] then  -- Nur das Baufahrzeug darf Änderungen vornehmen!!
      if (oldTrack.name == Startweiche) then  -- Soeben wurde die Startweiche verlassen!
        $("Hacks").variables["Gleiszähler"] = 0
      end
      if (track.name == Endweiche) then
        self.enabled = false  -- Fertig, Ereignis sicherheitshalber deaktivieren
      else -- Ein Gleis des Strangs wird befahren
        $("Hacks").variables["Gleiszähler"] = $("Hacks").variables["Gleiszähler"] + 1
    
        -- Neuer Gleisname
        local Neuer_Gleisname = Gleis_Name ..
            string.format("%02d", $("Hacks").variables["Gleiszähler"]) ..
            " - " .. track.name
    
        print("\nScharf_Gleisname == " .. Scharf_Gleisname)
        print("Gleisname Vorher: " .. track.name .. ". Nachher: " .. Neuer_Gleisname)
    
        if Scharf_Gleisname ~= 0 then
          track.name = Neuer_Gleisname
        end
    
        -- Schlagwort für GBS-Steuerung
        local Schlagwort = "Gleis"
    
        print("\nScharf_Schlagwort == " .. Scharf_Schlagwort)
        print("Schlagwort: " .. Schlagwort)
    
        if Scharf_Schlagwort ~= 0 then
          track.variables["Gleis"] = keyword
        end
    
        -- Zielbaustein GBS
        local GBS_zu_Gleise = Anzahl_GBS / Anzahl_Gleise -- z.B. 4 / 8
        local Zielnummer =  GBS_zu_Gleise * $("Hacks").variables["Gleiszähler"] -- z.B. 0,5 1,0 1,5 2,0 ... 
      Zielnummer = math.ceil(Zielnummer) -- z.B. 1 1 2 2 ...
        local Neuer_Zielbaustein_GBS = GBS_Name .. string.format("%02d", Zielnummer) -- z.B. "GBS 3o_01" "GBS 3o_02"
    
        print("\nScharf_Zielbaustein_GBS == " .. Scharf_Zielbaustein_GBS)
        if track.variables["GBS"] then
          print("Vorher: " .. track.name .. " verbunden mit " .. track.variables["GBS"].name)
        else
          print("Vorher: " .. track.name .. " nicht verbunden!")
        end
        print("Nachher: " .. track.name .. " verbunden mit " .. Neuer_Zielbaustein_GBS)
    
        if Scharf_Zielbaustein_GBS ~= 0 then
          track.variables["GBS"] = layout:getEntityByName(Neuer_Zielbaustein_GBS)
        end
      end
    end

    Eine Beipielanlage, mit der man das Skript ausprobieren kann, gibt es auch, hier als Anhang.

    Kommentare, Fragen, Verbesserungsvorschläge und (konstruktive) Kritik sind herzlich willkommen!

    Viele Grüße

    Reinhold (Erwin)

     

     

    Beispiel_Verbinde Gleis-Strang mit GBS-Strang.mbp

  10. Hallo, zusammen,

    ich habe ein Lua-Skript verfasst, welches die Gleise eines Gleisstrangs mit einem GBS-Strang verbindet.

    Dies möchte ich in einem Forum-Beitrag vorstellen, und dazu habe ich ein paar Fragen.

    Welches ist das geeignete Unterforum dafür? Eher "Anleitungen und Tutorials"? Oder doch "Fragen zur Steuerung"?

    Und: Wie füge ich mein Skript in diesen Beitrag ein?

    Ich kann natürlich das Skript zippen und dann diese Zip-Datei einfügen.

    Lieber wäre es mir allerdings, das Skript direkt als Text in den Beitrag einzufügen. Es sind ca. 120 Zeilen, ordentlich dokumentiert mit Lua-Kommentaren.

    Ich sehe an Beiträgen anderer Teilnehmer, dass das möglich ist, aber wie?

    Vielen Dank im voraus für eure Unterstützung!

    Viele Grüße,

    Reinhold (Erwin)

  11. Hallo, FeuerFighter,

    ich habe das Problem eingekreist; es liegt an meinem Rechner mit Windows 8.1, 64bit.

    Die 64bit-Version des VLC-Players (neueste Version 2.1.5.) kann auf YouTube nicht zugreifen. Wenn ich die 32bit-Version starte, dann geht es.

    Auf meinem Notebook unter Vista funktioniert auch alles.

    Also, vielen Dank für die Unterstützung; ich wollte auf gar keinen Fall unnötige Arbeit verursachen!

    Viele Grüße,

    Erwin

  12. Hallo, ich habe eine Bitte:

    Können die Videos auch zum Download bereitgestellt werden?

    Ich möchte sie gerne mit dem VLC-Player ansehen, damit habe ich bessere Steuerungsmöglichkeiten; z.B. kann ich das Video langsamer oder auch schneller laufen lassen usw.

    Downloads von YouTube sind dort (eigentlich) nicht erwünscht.

    Viele Grüße,

    Erwin

     

     

  13. Ich finde das Wiki zur Dokumentation des 3D-Modellbahnstudio ganz toll.

    Abder jedesmal, wenn ich da reinschaue, frage ich mich: Gibt es was Neues? Hat sich was geändert?

    Auf der Seite fehlt die Information "Datum der letzten Änderung".

    Noch vornehmer wäre natürlich eine "Liste der zuletzt geänderten Seiten" (mit Änderungsdatum).

    Ich weiß nicht, welches Wiki-Programm verwendet wird, "mediawiki" gibt diese Informationen mehr oder weniger automatisch an.

    Viele Grüße, Erwin

  14. Ich habe gerade die neue Version des 3D-Modellbahn Studios installiert und die Beschreibung gelesen.

    Ich finde, die neue Steuerschnittstelle über TCP ist eine tolle Idee!

    Wir haben (in meiner aktiven Zeit als IT-Manager) TCP-Programme immer über telnet getestet; das musste ich einfach ausprobieren!

    Ich habe dazu das Programm Kitty verwendet (ein Ableger von Putty) und eine Session definiert (telnet, oder auch raw) zu localhost, Port 31285.

    Dazu habe ich die Anlage "Meine Landschaft" geladen.

    In dem Sessionfenster kann ich Kommandos eingeben, und erhalte die Antwort zurück, z.B.:

    Eingabe: 1

    Antwort: 1;1.1.1.0

    Eine Session zu localhost, Port 31286 listet munter die Ereignisse auf.

    Ich denke, das ist eine gute Methode, um mit der Schnittstelle vertraut zu werden, ohne gleich mit VB loszulegen.

    Viele Grüße, Erwin

×
×
  • Neu erstellen...