Jump to content

Indirekte Lösungen


EASY
 Share

Recommended Posts

Hallo,

Manche Problemlösungen lassen sich mit der EV nicht direkt lösen, deshalb dachte ich ich eröffne diesen Thread und gebe einen Einblick, was in diesem Fall in meinem Kopf so vor sich geht um eine Lösung zu finden.

Ich möchte einen Zug zerlegen und wieder neu mit veränderter Wagonreihenfolge zusammenstellen. Hierfür habe ich mir einen "doppelten" Ablaufberg zusammengebastelt...
1687517814_Bild001.thumb.jpg.9162d1f452dd993217fcd469aaa67e91.jpg

11415147_Bild002.thumb.jpg.f76587d7431dea51b566ba8e0ae853ae.jpg

... die Definitionen für das Entkupplungsgleises als Weiche...
896370498_Bild003.thumb.jpg.b82e19ea5a3e089eb287655300ac27ef.jpg

1820991254_Bild004.jpg.7f0c12ff523f88a45671a03c73010f10.jpg

325135010_Bild005.jpg.2bf94e1c4d0ccbf68c77e3a27545a0ce.jpg

Das erste Problem ist: ...wann ist beim Zerlegen des Zuges nur noch die Lok überig?
79505613_Bild006.thumb.jpg.9e073b0b9422c8f80867689b136989a4.jpg
Meine Lösung: ... durch den ablaufenden Wagon (Entkoppelt durch das Entkupplongsgleis) entsteht im Zug eine Lücke...
801404820_Bild007.thumb.jpg.076efda3c668c23712f3848d4b368ab2.jpg

... dadurch tritt das Ereignis "Zug betritt das Gleis 'Ablauf' immer wieder erzeugt...
1903342011_Bild008.jpg.6b36cd8e7add139777e4387c42bc6887.jpg

... wenn nur noch die Lok überig ist...
270309302_Bild009.jpg.3811b8a63522c66dab47c508e03b536b.jpg

ergibt die Auswertung dieses Ereignisses mit  #layout:getVehicleGroup(vehicle) gleich 1...

if #layout:getVehicleGroup(vehicle)==1 then
vehicle.targetSpeedAbs=-40
end

... und die Lok fährt in die entgegengesetzte Richtung wieder weg.

Das zweite Problen ist: Wann ist der Zug wieder zusammengesetzt? (erst dann soll er weiterfahren)...
1145039120_Bild010.thumb.jpg.e9964c6fc9e7d898f3e385866d87af2d.jpg

... hierzu wird das Ereignis "Zug Fahrzeug verläßt virtuelles Depot" ausgewertet...
Wenn der letzte Wagon aus dem Depot tritt (depot.count=0) wird dieser in einer Schleife "verfolgt"...
 

--[[
Ist der letzte Wagon angekoppelt? -> Zug wieder vollständig.
-> Solange der letzte Wagon aus dem Depot ein Einzelfahrzeug ist, ist der Zug nicht vollständig
--]]
if not deferredCall then
  if depot.count==0 then
  defer(1,"v1")
  end
elseif deferredCall=="v1" then
  if #layout:getVehicleGroup(vehicle)==1 then -- letzte Wagon aus Depot ist Einzelfahrzeug? (-> Schleife)
  print("Zug ist nicht zusammengestellt")
  defer(1,"v1")
  else -- letzte Wagon aus Depot hat angekoppelt (ist kein Einzelfahrzeug mehr)
  print("Zug ist zusammengestellt")
  $("Ausfahrt").state=1 --Ausfahrtsignal auf Fahrt (1)
  end
end

1126063290_Bild011.thumb.jpg.1f091ecc89286ba1fc5bd933f73c5129.jpg

bis... #layout:getVehicleGroup(letzter Wagon aus Depot)>1 ist (dann hat er angekoppelt...)...
2123992489_Bild012.thumb.jpg.eeb96a8bfc1f531933260a501cbc7976.jpg

... und das Signal kann auf Fahrt schalten und den Zug in Bewegung setzen.

Nachtrag: hier noch das Projekt

Zug neu Aufbauen01.mbp

Ich weiß nicht wie groß das Interesse an solchen indirekten Lösungen ist, darum bin ich auf Reaktionen gespannt...

Wenn jemand für andere Probleme, die sich nicht direkt in der EV lösen lassen, Verschläge hat... gerne hier als Fortsetzung...

Gruß
EASY

Edited by EASY
Link to comment
Share on other sites

Hallo EASY,

unter der Content ID B9624917-F0EB-4AC4-A2B2-7EEAEDAD3FAB habe ich für dich ein Beispiel, in dem ich einen eintreffenden Zug per Lua in seine Bestandteile zerlege und jedes Fahrzeug ohne eigenen Antrieb ins Depot schicke.

Ich nehme die Fahrzeugliste des Zuges, trenne bei jedem Fahrzeug die vordere und hintere Kupplung auf und sende es dann ins Depot.

Die Waggons nehmen die aktuelle Sollgeschwindigkeit mit ins Depot. Mit dieser Geschwindigkeit werden sie bei Abruf aus dem Depot "katapultiert" und können so auch ohne abschüssige Strecke ein Stück Weg zurücklegen.

Für die Zugbildung fehlt noch ein bisschen. Aber auch so ist das sicher eine interessante Alternative für dich?

 

Hier ist das verwendete Skript:

local t = layout:getVehicleGroup(vehicle)
for i, v in ipairs(t) do
  v.couplers[0].enabled = false
  v.couplers[1].enabled = false
  if not v:hasEngine() then
    $("Depot"):add(v)
  end
end

 

Viele Grüße
Götz

Edited by Goetz
Schreibfehler korrigiert
Link to comment
Share on other sites

Hallo,

vor 31 Minuten schrieb Goetz:

Ich nehme die Fahrzeugliste des Zuges, trenne bei jedem Fahrzeug die vordere und hintere Kupplung auf und sende es dann ins Depot.

diese Methode wende ich hier an... (und man darf beim Zusammenbau nicht vergessen die Kupplungen wieder zu aktivieren).

Auf das jetzige Beispiel bin ich ursprünglich gekommen als ich festgestellt habe, daß es ein funktionierendes Entkopplungsgleis gibt. Ich weiß nicht wie lange es dieses schon gibt... ist bis vor kurzem an mir vorbeigegangen...

vor 31 Minuten schrieb Goetz:

Aber auch so ist das sicher eine interessante Alternative für dich?

Da dieser Thread dafür gedacht ist eben solche Lösungen vorzustellen gibt es vielleicht auch noch andere Interessenten...

Gruß
EASY

Link to comment
Share on other sites

Hallo EASY,
inzwischen habe ich die Demo so erweitert, dass der Zug auch wieder neu zusammengestellt wird.

vor 32 Minuten schrieb EASY:

diese Methode wende ich hier an..

Tut mir ehrlich leid, dass ich das übersehen habe!

Link to comment
Share on other sites

vor 39 Minuten schrieb HaNNoveraNer:

Ihr denkt auch an Tender von Dampfloks?

Nein, in meinem Beispiel noch nicht.
Du kennst ja meine Vorgehensweise, Prinzipien zuerst so einfach wie möglich zu halten.

Aber wenn du durchschaust, was ich mache, dann kannst du es leicht erweitern und anpassen.
Ich prüfe, ob ein Fahrzeug einen Antrieb hat. Du könntest stattdessen prüfen, ob es ein bestimmtes Schlagwort enthält.

Link to comment
Share on other sites

Hallo,

vor 21 Minuten schrieb Goetz:

Tut mir ehrlich leid, dass ich das übersehen habe!

... nix da mit leid tun... Du kannst ja nicht wissen was ich mir damals dabei gedacht habe...

vor einer Stunde schrieb HaNNoveraNer:

Ihr denkt auch an Tender von Dampfloks?

...ständig9_9

... mit Schlagwort "Tender" sieht die Auswertung von Ereignis "Zug betritt das Gleis 'Ablauf' jetzt so aus:
 

--[[
Wenn kein Wagon mehr vorhanden oder "Tender" erreicht
-> Lok in entgegengesetzter Richtung wegfahren
--]]
wl=layout:getVehicleGroup(vehicle)
if #wl==1 or (#wl==2 and wl[2].variables["Tender"]==keyword) then
vehicle.targetSpeedAbs=-40
end

Zug neu Aufbauen01a.mbp

Gruß
EASY

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

×
×
  • Create New...