Jump to content

EASY

Mitglieder
  • Gesamte Inhalte

    3392
  • Benutzer seit

  • Letzter Besuch

Alle erstellten Inhalte von EASY

  1. EASY

    Renault Magnum

    Hallo, Zur Info: WheelSets wertet nur die Koordinaten des Nullpunkes (des Objektes) mit diesem Namen aus. Ob das Objekt nun etwas darstellt oder (wie in diesem Fall) nichts, ist vollkommen egal. Also nicht wundern, sondern einfach verwenden... Gruß EASY
  2. Hallo @liftboy, Was mir aufgefallen ist... Das Ziel der Lok wird nicht gelöscht... ... beim Aufsetzen der Lok stimmt zwar die Anzeige (bis auf die erste Zeile!)... ... aber nur solange, bis das Ziel vor dem Aufsetzen nicht (manuell) gelöscht wurde. Wenn ich das Ziel zuvor lösche, stimmt die Anzeige nicht mehr (außer in der ersten Zeile, in der letzten Zeile) ... wenn ich "Target Run" betätige... stimmt es wieder... Bei einer Lok mit "falscher" Fahrtrichtung stimmt beim Aufsetzen prinzipiell die Anzeige... ... sie stimmt allerdings nicht mehr mehr nach Taste "Target Run"... Es wird zwar die Fahrtrichtung richtig gesetzt aber es findet keine (korrigierende) Abfrage des Ziels statt, weshalb die Anzeige nicht angepasst wird. Ich habe Dein Skript etwas abgeändert... ... nun wird auch dieser Zustand angezeigt... ... und dieser auch... Die erste Zeile wurde korrigiert bei einem Fahrzeug mit Antrieb... ... und die Anzeige reagiert jetzt auch darauf, wenn die Fahrtrichtung der Lok manuell geändert wird... "GetVehicle" und "show" sieht nun so aus... getVehicle = function(self) -- get vehicle auf dem "gleis" -- return object oder nil vehicles = layout:getVehiclesOn(self.gleis) for _,v in ipairs(vehicles) do if v:hasEngine() then self.vehicle = v return v,#vehicles end end self.vehicle = nil return nil,#vehicles end , -- --------------------------------------------------------------- show = function(self) -- zeigt die variablen auf "textfeld1" -- schreibt alles in eine table -- schreibt die table dann in das textfeld local texte = {} local t = "" local v,n = self:getVehicle() if v ~= nil then t = "vehicle with engine" table.insert(texte,string.format("%s", v.name )) table.insert(texte,string.format("drivingDirection %d", v.drivingDirection )) table.insert(texte,string.format("targetSpeed %2.2f", v.targetSpeed)) table.insert(texte,string.format("targetSpeedAbs %2.2f", v.targetSpeedAbs )) table.insert(texte,string.format("engine.active %s", tostring(v.engine.active))) v.target=self.ziel if v.target ~= nil then table.insert(texte,string.format("target %s", v.target.name)) v.target=nil else table.insert(texte,"target not in drivingDirection") end -- dump auf die console -- PrintTable(texte, 1) -- erzeugt einen string mit "\n" for i,v in ipairs(texte) do t = t.."\n"..v; end; else if n~=0 then t = "vehicle without engine" else t = "no vehicle" end end -- write den string in das textfeld self.textfeld.text = t end , und bei "start_target" wird das Ziel nach der Auswertung gleich wieder gelöscht... start_target = function (self, v, ziel, speed) -- --------------------------------------------------------------- --[[ diese function ist das ergebnis aller versuche : " Aufgabe: - untersuche eine lok mit beliebiger richtung und speed - gebe ihr ein ziel - starte die lok mit richtig eingestellter richtung und speed" Methode: (Vorschlag von EASY) setze ein ziel-object als ziel in das vehicle.target werte dann die "target" property des vehicle aus wenn kein ziel gefunden (target==nil) drehe die drivingDirection um multipliziere die wunsch-speed(positiv) mit der drivingDirection vor dem setzen der speed muß die engine.active gesetzt werden ! --]] v.target= ziel -- Fahrziel setzen -- konnte Fahrziel gesetzt werden? (Aktuelle Fahrtrichtung in Richtung Gleiskontakt?) if v.target == nil then -- not in drivingDirection ! --> drivingDirection korrigieren v.drivingDirection = - v.drivingDirection else v.target = nil end v.engine.active = true -- speed an die drivingDirection anpassen v.targetSpeed = speed * v.drivingDirection -- ende routine return end -- end do_start() ... zum ausprobieren... Minitest_speed-direction-pendeln-fahrstraßen-5a.mbp Persönliche Anmerkung: Für einen Programmierer ist Dein Verfahren zwar einfacher (weil am Stück und keine doppelten Funktionen) zu lesen, daß allerdings bei den einzelnen Aktionen (Taster xy wird betätigt) nur eine Funktion aufgerufen wird, macht es etwas schwieriger nachzuvollziehen, was genau bei dieser Aktion passiert... da muß man dann im übergeortneten Skript nachschlagen... Gruß EASY
  3. EASY

    EASY's kleiner Modellbau

    Hallo @BahnLand, ein interessantes Konzept, das Du da ausgearbeitet hast Da noch früh am morgen, lasse ich es erst einmal auf mich wirken, bis mein Gehirn hochgefahren ist. Momentan ist die Textur für die Ladung relativ klein (512x512). Die Skalierung erfolgt über Kachelung in der Texturzuordnung. Ich sehe darin etwas den Vorteil, daß der Anwender nur eine (kachelbare) Textur für die Ladung benötigt und nicht die ganze Textur umbauen muß. Vor allem sind die meisten Texturen quadratisch, die Ladung aber rechteckig. Durch die "richtige" Kachelung in der Texturzuordnung müßte dann der Anwender nicht zuerst eine Textur in "richtigen" Verhältnis erzeugen (geht auch nur mit einer kachelbaren Textur, damit es keine Verzerrungen gibt) und diese dann in die Haupttextur mit einbauen (in der Haupttextur gibt es keine freie Stelle, die eine Kachelung zuläßt). Ich halte es deshalb für einfacher wenn ich versuche Texturvorschläge für den Wagon umzusetzen um das Modell um Varianten zu erweitern. P.S. Sind noch Farbvarianten zu diesem Wagon bekannt? Meinungen zu meinen Überlegungen gerne hier hinterlegen... Gruß EASY
  4. EASY

    EASY's kleiner Modellbau

    Hallo, ... die Textur war einfach schon zu voll um den Text noch lesbar unterzubringen, und mal eben etwas vergrößern ist wegen 2^x nicht möglich... Hatte ich mir so überlegt nur für die Ladung eine 2. Textur mit anlegen, dann ist es für den Anwender am einfachsten. Ich weiß nur noch nicht, was ich mit der anderen Möglichkeit des Entleerens (Frontleeren) machen soll. Die Animation für das Mittenentleeren fixiert das Modell auf diese Funktion. Das einzige was mir dazu einfällt wäre aus einem Modell zwei zu machen mit jeweils der entsprechenden Animation... ... oder hat noch jemand eine bessere Idee dazu? Gruß EASY
  5. EASY

    EASY's kleiner Modellbau

    Hallo, ... Du kennst mich lange genug um zu wissen, daß mir so eine Herausforderung keine Ruhe läßt... ... so als erster Entwurf zum ausprobieren D26D76F4-ED9E-4122-861D-E92D82A09063 Anmerkungen und Anregungen, wie immer gerne. Gruß EASY
  6. Hallo, ... wenn Du Dich hinsetzt und einmal gemütlich mit einem Getränk (in dem die beiden Stoffe vorkommen) in der Hand darüber nachdenkst, kommt vielleicht doch noch die Erkenntnis, wann es sinnvoll sein könnte ein Schlagwort oder eine Variable zu setzen (prost!). (Hinweis: manchmal ist etwas auch einfach nur abhängig vom Anwendungsfall und es gibt nicht die eine Antwort) Gruß EASY
  7. Hallo @liftboy, wenn die maximale Distanz der Erkennung von "isHeadingToward" nicht ausreicht, kann man den Gleiskontakt auch als Ziel setzen (geht auch wenn Lok steht). $("Lok").target=$("Gleiskontakt") --Gleiskontakt als Fahrziel setzen if $("Lok").target~=nil then -- konnte Fahrziel gesetzt werden? (Aktuelle Fahrtrichtung in Richtung Gleiskontakt?) print("aktuelle Fahrtrichtung ist in Richtung Gleiskontakt") else print("aktuelle Fahrtrichtung ist entgegen in Richtung Gleiskontakt") end $("Lok").target=nil -- Fahrziel wieder löschen Gruß EASY
  8. EASY

    EASY's kleiner Modellbau

    Hallo, In meinem Fundus für Versuche, habe ich dieses Modell entdeckt... Demodatei: Demo Partikel 01.mbp ich habe es dann aber nicht weiter verfolgt, da es doch sehr schnell sehr viele Objekte (und damit Polygone) gibt... Gruß EASY
  9. EASY

    EASY's kleiner Modellbau

    Hallo, der Wagon (60F4611C-F919-4653-AFAF-F4B4E70B7045), der Wagonkipper (7792FF31-4398-4B15-8912-BFDA782D8DED) und die Entladestelle (25AEB613-1756-4DF5-A1DF-E488C4750D50) sind final hochgeladen. @Neo, bitte freigeben Anmerkung: Da es für den Wagon mehrere Möglichkeiten für das Entladen gibt (Frontentladung links / rechts und Mittenentladung) habe ich für das (animierte) Entladen vom Ladegut noch nicht die entscheidende Idee (oder würde "voll", "leer" ausreichen?) Wer eine gute Idee dazu hat... gerne melden. Gruß EASY
  10. Hallo, Ich habe ein kleines Beispiel gebaut... Wenn der entsprechende Zugtyp dem in der Lokvariablen "Zugtyp" entspricht, sollen die entsprechenden Signale umgeschaltet werden... Die Lok vom Typ "Fernverkehr" hat folgende Variableneinträge... Wichtig! Der Text in der Variablen "Zugtyp" entspricht dem Namen der Tabelle für die Signale... ... die Tabelle für die Signale hat folgende Einträge... So sieht es für den "Nahverkehr" aus... Die Darstellung für den Güterverkehr ist dem Schema entsprechend (wird deshalb nicht auch noch dargestellt)... Der Eintrag in der EV sieht dann so aus... Es gibt nur eine Abfrage ob die Variable "Zugtyp" existiert (als Absicherung für den Fall, daß ein Zug nicht typisiert wurde). Der Vorteil dieser Methode liegt darin, daß weitere Zugtypen einfach nach dem Schema für die Variablen in der Lok erstellt werden können ohne die EV ändern zu müssen. Zum ausprobieren... 2024-03-05-Zugtypen unterscheiden 01.mbp Gruß EASY
  11. Hallo, Nur zur Info: Ohne Auslöser geht in der EV gar nichts. Theoretisch gibt die Möglichkeit in einem Modell eine Animation zu definieren, die abhängig von der Fahrtrichtung ist, die kann allerdings nur der Modellersteller in das Modell mit einbauen. aus der wiki: Spezialanimationen _AnimWheel - Animationszeit hängt von der Radrotation ab -> z.B. für Gestängeanimationen oder als Ersatz für _Wheel. _AnimRun - Animation wird einmalig abgespielt, sobald das Fahrzeug sich in Bewegung setzt. _AnimRunLoop - Wie _AnimRun, wird allerdings in einer Endlosschleife abgespielt. _AnimRunPositive - Animation wird einmalig abgespielt, sobald das Fahrzeug vorwärts fährt (z.B. für Zuglichter). _AnimRunNegative - Animation wird einmalig abgespielt, sobald das Fahrzeug rückwärts fährt (z.B. für Zuglichter). _AnimSpeed - Animation in Abhängigkeit der Zielgeschwindigkeit. Die Mitte der Animation entspricht der Geschwindigkeit 0. Gruß EASY
  12. Hallo @Chris06, verstehe ich jetzt nicht ganz, warum Du aufgeben möchtest. Um ein Benutzerdefiniertes Ereignis aufzurufen, brauchst Du ein Ereignis in dem Du als Aktion das benutzerdefinierte Ereignis aufrufen kannst wie z.B. "Gleiskontakt wird betreten"... .. hier rufst Du dein benutzerdefiniertes Ereignis mit folgenden Parametern auf... ... und so sieht mein überarbeitetes benutzerdefiniertes Ereignis aus... Anmerkung: "ZNoRearLight"=falsch brauchst Du eigentlich nicht, da Du einem Fahrzeug mit Licht keine Lichtscheiben zu geben brauchst... zum Ansehen und ausprobieren... Lichtwechsel test 02.mbp Gruß EASY
  13. Hallo @Chris06, kannst Du eine kleine Demoanlage hier einstellen. Die Fehlersuche wäre einfacher wenn man die Anlage selbst vor sich hat, als die EV nur als Bild zu sehen... Gruß EASY
  14. EASY

    EASY's kleiner Modellbau

    Hallo, ich habe noch eine kleine Entladestelle für das "Mittekipp-Selbstenladen" gebastelt und meine Demoanlage erweitert, so daß beide Verfahren laufen... 2024-03-03-Wagons entladen.mbp Anmerkung: Da keine Absicherung... (beide) Starttaster nur einmal betätigen... Gruß EASY
  15. EASY

    EASY's kleiner Modellbau

    Hallo, Das Modell ist zwar noch nicht fertig, aber bevor ich weiterbaue, wollte ich wissen, wie eine mögliche Steuerung aussehen könnte und ob ich noch Anpassungen machen muß. Deshalb habe ich eine kleine Demoanlage gebaut... Wagonkipper 01.mbp Hinweis: Der Startknopf ist nichts für nervöse Finger (nur einmal betätigen [Endlosschleife])... Anmerkungen und Anregungen wie immer gerne... Gruß EASY
  16. EASY

    EASY's kleiner Modellbau

    Hallo, Neugierig wie ich bin, habe ich mit dem Wagonkipper angefangen. Diese Variante hat es mir angetan... ... sie ist zum Durchfahren. Soweit bin ich bisher gekommen... Ich hatte zuerst etwas Bedenken, ob sich der Ablauf im MBS darstellen läßt. Ich bin gerade dabei die EV für eine kleine Demo zusammen zu basteln... Gruß EASY
  17. Hallo, ... sehe ich auch so nachdem ich die Testanlage gesehen habe. ... die jeder Gleisharfe entsprechenden Ausfahrtsignale sind ja in den Gleiskontakten netterweise schon hinterlegt... so würde dann "Gleiskontakt mit dem Schlagwort Gleisharfe SBf" wird betreten aussehen... local signale=contact.variables["Signale"]-- alle Ausfartsignale der Gleisharfe local n=0 --Hilfszähler for i,s in ipairs(signale)do -- Widerholung für alle Signale if #layout:getVehiclesOn(s)~=0 then -- Signal besetzt? (mindestens ein Fahrzeug steht auf Gleiskontakt vom Signal) n=n+1 -- Zähler hochzählen end end if n==#signale then -- alle Signale besetzt? (Hilfszähler=Anzahl der Signale) FS=contact.variables["Fahrstraßen"] local x=math.random(1,#FS) FS[x].autoActivate=true FS[x].active=true end Hat zumindest im Versuch einmalig funktioniert... die EV verfängt sich allerdings in einer Endlosschleife bei "Lok Einfahrt"... das habe ich allerdings nicht untersucht woran das liegt... Gruß EASY
  18. Hallo @liftboy if $("Depot").count>0 then local tblFahrzeuge = $("Depot").entries print(tblFahrzeuge[0].name) -- (1) print(tblFahrzeuge[0].variables.einfahrt) -- (2) end (1) geht nicht, weil Dein Zugriff nicht stimmt. local tblFahrzeuge = $("Depot").entries liefert keine Liste zurück! sondern .entries ist ein Direktzugriff auf den Eintrag. if $("Depot").count>0 then print($("Depot").entries[0].name) -- (1) end ... dann wird der Name auch ausgegeben. Gruß EASY
  19. Hallo, wenn der Gleiskontakt der des Ausfahrtsignals ist, dann brauchst Du nur noch das Schlagwort (und evtl. die Signalstellung) in dem Skript anpassen und als Aktion "Skript ausführen" wählen, dann wird, wenn die Gleisharfe voll ist, der nächste Zug gestartet. Gruß EASY
  20. EASY

    EASY's kleiner Modellbau

    Hallo, danke! ... (mal sehen, ob meine Textur den Roman noch zuläßt...) Gruß EASY
  21. Hallo @Neo, ... und wenn Du Dich gerade mit Wagons beschäftigst... vielleicht auch noch der automatischen Verzögerung etwas mehr Nachdruck verleihen (einstellbar?), so daß ein rollender Wagon der etwas schneller unterwegs ist nicht z.B. an einem Prellbock (oder Gleisende) wieder abprallt, sondern auch wirklich zum Stehen kommt... Gruß EASY
  22. Hallo, ... das ist nicht der Auslöser sondern eine Aktion. In Deiner Anfrage hast Du nicht definiert, welches Ereignis die Aktionen auslösen soll... Gruß EASY
  23. Hallo, In lua könnte es so aussehen... local signale=layout:getEntitiesByKeyword("Ausfahten HBF1")-- alle Signale mit dem Schlagwort local n=0 --Hilfszähler for i,s in ipairs(signale)do -- Widerholung für alle Signale if #layout:getVehiclesOn(s)~=0 then -- Signal besetzt? (mindestens ein Fahrzeug steht auf Gleiskontakt vom Signal) n=n+1 -- Zähler hochzählen end end if n==#signale then -- alle Signale besetzt? (Hilfszähler=Anzahl der Signale) signale[math.random(1,n)].state=1 -- zufälliges Signal auf 1 setzen end Gruß EASY
  24. EASY

    EASY's kleiner Modellbau

    Hallo, ich danke Euch für die Klicks! Ich erstelle meine Texturen in CorelDraw. Die "Flecken" sind ein Füllmuster vom CorelDraw... ich werde mal noch etwas mit den Parametern spielen... ... wäre so vom Ablauf her logisch (allerdings weiß man bei der DB nie so richtig, ob es auch so gesehen wird)... Ich glaube es ist das Modell von Liliput... hier gibt es eine "Bedienungsanweisung" (oder so ähnlich) auf der Tür... ich habe nur noch kein scharfes Foto gefunden auf dem man es lesen kann... ... ich mir auch... zumal sich die Herausforderung ergibt, daß das Beladen nicht die Umkehrung von Entladen ist. Der Anfang von Entladen sollte idealerweise das Ende von Beladen sein aber mit unterschiedlichen Animationen, die zum Ziel führen... ...und ob da der Problemstellung nicht genug wären, kann der Wagon ja schließlich auch noch durch Kippen über die vordere oder hintere Klappe entladen werden... (Das Foto aus "MIBA Spezial 76 vom April 2008" zeigt zwar einen anderen Wagon aber es ist auch für diesen Wagon so vorgesehen) (Anmerkung: Dir Kippvorrichtung ergibt ein interessantes nächstens Projekt...) Gruß EASY
  25. EASY

    EASY's kleiner Modellbau

    Hallo, soweit bin ich mit meinem Selbstenlader gekommen... Ich habe das Modell als Entwurf hochgeladen 60F4611C-F919-4653-AFAF-F4B4E70B7045 Anmerkungen und Anregungen, wie immer gerne... Gruß EASY
×
×
  • Neu erstellen...