Jump to content

Recommended Posts

Posted

Tag, ich bin neu hier (2 Monate mit 3D-MBS) und habe eine knifflige Frage:
Ist es möglich, Objekte präzise an einen bestimmten Ort (x,y,z) als Animation zu steuern?

Ich habe eine Hub-Vitrine als Modul zum Einbau entworfen (FE5D8849-C63F-4CE1-86D9-4D7760E64179). Ich habe mir nun mal so beholfen, dass ich den Aufzug mit einem Fahrzeug verknüpft habe, das senkrecht an einer virtuellen Spur läuft. Das Problem ist der präzise Stopp. Das bedeutet, dass ich die Vitrine nur sehr langsam laufen lassen kann, sonst wird das von den Loks nicht als durchgehende Fahrbahn toleriert. Ich habe aber auch überlegt mit hoher Geschwindigkeit zu starten, und dann kurz vor dem Ziel abzubremsen. Das war mir aber dann zu komplex in der EV.

Hat jemand eine gute Idee, wie man das etwas eleganter lösen kann? Bitte nicht zu viel Kritik an meiner etwas urchigen und hölzernen EV - ich bin ein Newby und noch am lernen...
Gruess aus der Schweiz
Christof

Das ganze ist eine nachträgliche Rekonstruktion einer Vitrine, die ich für meine rale Anlage gebaut hatte YouTube: 

 

Posted
vor 1 Stunde schrieb Fifof:

Ist es möglich, Objekte präzise an einen bestimmten Ort (x,y,z) als Animation zu steuern?

Hallo Fifof,

du kannst ein Objekt mittels Lua Befehl akkurat an eine Position setzen. Aber das ist dann keine Animation.
Damit könntest du beim Stopp eine Korrektur vornehmen - mit einem sichtbaren kurzen Ruck.

Für die Animation hast du schon den richtigen Ansatz gewählt, indem du das Hilfsfahrzeug an Kontakten stoppst.
Wenn du die Bremskraft verringerst, ist die Ungenauigkeit bei den Stopps eventuell geringer, weil das Fahrzeug dann sanft abbremst und kurz vor dem Stopp nur noch sehr langsam fährt. Aber eine kleine Ungenauigkeit wird bleiben.

Alternativ kannst du (in Blender, Sketchup etc.) das komplette Regal mit Animationen und Fahrspuren als eigenes Modell kreieren. Das wäre dann (wie Schiebebühnen und Drehscheiben) sehr präzise.

Deine Idee finde ich übrigens sehr schön (y)

Viele Grüße
Götz

Posted

Ich habe alles versucht und bei meinen Versuchen hat ein längerer Bremsweg die grössere Ungenauigkeit ergeben. Mit Blender und Sketchup habe ich noch nicht begonnen...

Posted
vor 7 Minuten schrieb Goetz:

Aber eine kleine Ungenauigkeit wird bleiben.

Mein Vorschlag wäre, über die EV die Geschwindigkeit des Hilfsfahrzeugs beim Betreten eines normalen Gleiskontakts auf "0" zu setzen und den Haken bei "Ist-Geschwindigkeit setzen" zu aktivieren. Dann bleibt das Fahrzeug abrupt stehen und sowohl Geschwindigkeit als auch Bremskraft spielen keine Rolle.

HG
Brummi

Posted (edited)

 

vor 5 Stunden schrieb Fifof:

Ist es möglich, Objekte präzise an einen bestimmten Ort (x,y,z) als Animation zu steuern?

Ja, das geht (mit einer Zeile Lua). Anbei ein Konstrukt, mit dem der SX1 (den Du als Antrieb nehmen solltest!) mit einer Abweichung von weniger als 1/10 mm am Gleiskontakt "TC stop" anhält.

20250504 SX1 exakt anhalten.mbp

Nachtrag: Die (winzige) Abweichung wird jetzt in einer Textbox angezeigt.

Edited by Phrontistes
mbp ausgetauscht
Posted

Hallo,

vor 4 Stunden schrieb Goetz:

Alternativ kannst du (in Blender, Sketchup etc.) das komplette Regal mit Animationen und Fahrspuren als eigenes Modell kreieren. Das wäre dann (wie Schiebebühnen und Drehscheiben) sehr präzise.

... ich habe auf die Schnelle was gebastelt...
Bild001.jpg.c44e21912d8c027a06a75f8cc7579b98.jpg

... und das Modell als Entwurf hochgeladen... 4AEDA530-740C-43F0-8A79-485E99974E3C

Die Vitrine hat 9 Stellplätze und wird wie eine Weiche angesteuert.

Wenn Interesse besteht, werde ich das Modell (optisch) noch etwas verfeinern und in den Katalog bringen.

Gruß
EASY

Posted
vor 4 Minuten schrieb EASY:

ich habe auf die Schnelle was gebastelt...

Wow! Das ist großartig, Easy!!!

Posted (edited)

Extrem! Und ich habe Tage lang gewurstelt...

Ja, bitte richtig cool aufpeppen!

Edited by Fifof
Posted

Ich bin überwältigt, da kommt man mit einer unausgegorenen Idee und innert Stunden hagelt es an guten Lösungsansätzen. "Da werden Sie geholfen" :D

Posted

Hallo @Goetz,

jetzt wäre es schön, wenn Du uns einen Lösungsansatz zeigen könntest, wie ermittelt wird, welche Ebene unbesetzt bzw. besetzt ist....

Viele Grüße Little

Posted (edited)
vor 50 Minuten schrieb Little:

wie ermittelt wird, welche Ebene unbesetzt bzw. besetzt ist....

Hallo Little,
auf die Schnelle fällt mir folgendes dazu ein:

Wie wäre es mit der Bedingung "Fahrzeug befindet sich zwischen zwei Gleiskontakten"?
Man braucht ja in der Vitrine je Ebene zwei Kontakte, um den einfahrenden Zug zu stoppen.

Alternativ ginge auch "Fahrzeug befindet sich auf einem Gleiskontakt", wenn man Kontakte in die Mitte setzt, um Züge mittig in der Vitrine zu stoppen.

Viele Grüße
Götz

Edited by Goetz
Schreibfehler korrigiert
Posted (edited)

Hallo @Fifof, hallo @EASY, hallo @Little, hallo @Phrontistes, hallo @Roter Brummer,
hier ist mein erster Versuch einer Automatiksteuerung für die Vitrine von EASY auf der Anlage von Fifof:

Vitrinenautomatik.mbp

Bei Betätigung des Tasters wird zufällig eine besetzte Etage ausgewählt, auf Anlagenhöhe positioniert und der Zug dieser Etage (nach erreichen der Position) gestartet.
Bei Rückkehr des Zuges wird zufällig eine freie Etage ausgewählt und für die Einfahrt auf Anlagenhöhe gebracht.
Für die Dauer der Zugfahrt wird das Regal auf Etage 9 abgesenkt.

Aktionen wie die Ausfahrt des Zuges sind um eine Sekunde verzögert, weil ich finde dass das netter aussieht.

In Lua geht es schlanker, weil man lokale Variablen für die Zwischenschritte anlegen und die Länge der Liste verwenden kann:

-- besetzte Etage finden, auf Anlagenhöhe bringen und Zugstart aktivieren

if $("Taster Zug starten").state == 0 then
  local l = {}
  local t = layout:getEntitiesByKeyword("Vitrinenstopp")

  for i, Wdh in ipairs(t) do
    if #layout:getVehiclesOn(Wdh) > 0 then
      table.insert(l, Wdh)
    end
  end

  $("Vitrine").variables["Kontakt"] = l[math.random(#l)]
  $("Hub-Vitrine").state = $("Vitrine").variables["Kontakt"].variables["Etage"]
  $("Vitrine erreicht Position").enabled = true
end

und

-- freie Etage finden und auf Anlagenhöhe bringen

local l = {}
local t = layout:getEntitiesByKeyword("Vitrinenstopp")

for i, Wdh in ipairs(t) do
  if not (#layout:getVehiclesOn(Wdh) > 0) then
    table.insert(l, Wdh)
  end
end

local k = l[math.random(#l)]
$("Hub-Vitrine").state = k.variables["Etage"]

Viele Grüße
Götz

Edited by Goetz
Schreibfehler korrigiert
Posted

Gallo Goetz

Danke für die Steuerung

Ich habe sie insofern abgeändert, dass nach Zugausfahrt das Gleis 1 (statt 9) angefahren wird.
Auch nach Zugeinfahrt wird automatisch 1 angesteuert. Das ist ja die Präsentationsansicht während dem Nichtgebrauch.

Gruess us de Schwiiz
Fifof

Posted

Fallo Fifof (sorry, der musste sein :D)

eine Macke hat meine Steuerung noch:
Ich prüfe weder bei der Ausfahrt, ob in der Vitrine überhaupt ein Zug steht. Noch prüfe ich bei der Einfahrt, ob es noch einen freien Platz gibt.

Es ist nur ein erster Versuch, wie man Züge bzw. freie Plätze finden und die Vitrine richtig ausrichten kann.

Für die Einfahrt in einen freien Platz wären auch Fahrstraßen ein gutes und sicheres Mittel. Das funktioniert mit der Vitrine von EASY deshalb, weil sie technisch als Weiche ausgelegt ist.

Viele Grüße
Götz

Posted

Hallo Goetz 

Einen weiteren Punkt habe ich in deiner Steuerung bemerkt:
Wenn zufällig für die Ausfahrt die "Parkposition" (ob nun 1 oder 9) ausgewählt wird, schaltet die Weiche nicht und das Ereignis "Vitrine erreicht Position" wird nicht ausgelöst.

Das heisst dieses Gleis wird nie geleert, da der Zug nicht startet. Ich bin am tüfteln, habe aber bisher noch keine Lösung gefunden. 
Eine Lösung wäre, einfach keine Parkposition anzufahren, dann muss die Weiche auf jeden Fall schalten, das fände ich aber schade.
Ich habe die Vitrine samt deiner Steuerung in meine Anlage eingebaut, läuft ansonsten problemlos!

Gruess us de Schwiiz
fifof

Posted
vor 6 Minuten schrieb Fifof:

Wenn zufällig für die Ausfahrt die "Parkposition" (ob nun 1 oder 9) ausgewählt wird, schaltet die Weiche nicht

Stimmt, das ist eine Macke in meiner Methode die ich nicht bedacht hatte.

Posted

Hallo Fifof,
eine weitere Bedingung behandelt den Fall, dass die Parkposition der Vitrine für die Ausfahrt ausgewählt wird:

neueBedingunginVitrinenautomatik.jpg.b8c35242a81a8dc09dbfa99d1f861ea3.jpg

 

Beispielanlage mit Parkposition 0 und neuer Bedingung:

Vitrinenautomatik.mbp

Viele Grüße
Götz

Posted

Ich hänge es mal hier ran, obwohl es nur teilweise mit dem konkreten Thema zu tun hat: Ich habe die Vitrine in meine Anlage eingebaut (noch nicht veröffentlicht,  dafür gibt es noch zuviel Chaos darin). Ich habe nun zwei Phänomene, die ich mir nicht erklären kann.

1. Es gibt es immer wieder mal Züge, die aus der Vitrine nicht selbständig ausfahren. Sie bleiben nach der Positionierung der Vitrine einfach stehen und müssen händisch (Steuerung) beschleunigt werden. Ein Muster (Geschoss, Lok, Länge der Züge) habe ich nicht gefunden. Alle Loks sind auf automatisches Beschleunigen gestellt.

2. Manchmal (und das hat nun nichts mit der Vitrine zu tun), halten Züge wohl vor Signalen korrekt an, beginnen dann aber plötzlich im Kriechgang zu fahren und blockieren somit natürlich Fahrstrassen und Weichen.

Gibt es eine Erklärung dafür, oder habe ich das Ganze einfach überladen (Paradestrecke mit aktiven 5-7 Zügen, SBF mit acht Gleisen, Pendelstrecke mit 3 Zügen, Vitrine, Standseilbahn mit ein- und ausgeblendeten Zugseilen, Busse, PWs, Motorboot und Surfer) und mein Compi ist zu langsam dafür?

Posted (edited)
vor 1 Stunde schrieb Fifof:

überladen

 

vor 1 Stunde schrieb Fifof:

Compi ist zu langsam

Beides ist es sicher nicht.

vor 1 Stunde schrieb Fifof:

noch nicht veröffentlicht,

Dann mache das mal (Entwurf genügt), denn nur so kann sich jemand auf die Suche nach der Ursache machen.

Edited by Phrontistes
typo
Posted

Ok. Dann bitte...
Ich habe alle Ereignisse und Ebenen, die nicht relevant sind deaktiviert und ausgeblendet. Aus meiner Sicht sollte die Automatik solange laufen, bis dann ein Zug aus der Vitrine abgerufen wird (jedes dritte mal, wenn ein Zug aus der "Schlaufe gerade" ausfährt). Wenn der nicht startet, kommt meine Steuerung ins Straucheln.

Pendelstrecke SBB.mbp

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
×
×
  • Create New...