Jump to content

Recommended Posts

Posted

I am trying to find out the name of the vehicle stopped at a signal and then read a keyword from that vehicle.  Any help would be great.  Code would be preferred please.

 

Thanks

 

George

Posted

Hello George,

if you're using V7 and the vehicle has stopped on a contact which belongs to the signal:

First, here's how to check for a keyword.
A keyword is a treated like a variable, with the actual word being the name of this variable.

That's why the condition may look like this:

900081242_keywordcondition1.jpg.0683a4be44cad2f3cf63f803766b7ab4.jpg

check if vehicle "MAK1202-1205" has a variable named "freighttrain"

To find the train sitting on the contact of a particular signal, you may use an iteration.
It will return a list of all vehicles on that contact. This may sound strange, because there shouldn't be more than one. But the same iteration is also used to get all vehicles on a particular track. And that may well be a larger number than 1.

Here is the iteration:

375889232_keywordcondition2.jpg.f671d5a636ee26ad58cec83ecdf15ee0.jpg

return all elements wich sit on the contact of signal "H/V main signal" - one by one - and give each one the temp name "Iter"

And here is how you enter each element from that iteration into the condition:

1451980535_keywordcondition3.jpg.9de65158531cd08df4257aa92e953eae.jpg

Click on the small cog wheel next to the object (where the train name was before) and selet "Iteration".

If you feel comfortable with Lua, use the small <> button to convert everything into a script.
In the script, you can eliminate the iteration and go straight for the first element of the returned list. That is the vehicle parked on that contact:

local t = layout:getVehiclesOn($("H/V main signal"))
if t[1].variables["freighttrain"] ~= nil then
-- enter tasks here
end

 

Kind regards
Goetz

Posted

I hope this helps.

First, a keyword is a shortcut to name one or more objects in the Events Manager

keyword.thumb.jpg.36d57e77523750093e496e228d7c59ed.jpg

In this case there are more than seven track contacts, and I want to set an event that will work for any of them.  Vehicle (Trigger) refers to the Locomotive (any) that triggers a "Stop" contact.

Signal.thumb.jpg.f56ee5c645e2ab34cb5e1221ef2f2018.jpg

Here, I have used a track contact to trigger a track signal.  The rest of the event sets specific routes.

Locomotive.thumb.jpg.01bd4218687a4ac761db1ecb571ac04a.jpg

Each Locomotive has an object variable called Track that sets a specific track.

Toggle.thumb.jpg.443a04a61ddb9a9fc56e1fc483800832.jpg

Here, The Track for Loco 3 sets a series of three track switches for track3

Posted

You are such a brilliant group of "helpers".   My interest in 3D Train studio would have lone been exhausted without the help from Goetz and Kurt.  Thanks a million.

 

George

 

Posted

My next question is....Is it possible to display the time left on a timer (Nearest Second would be good).

 

George, Bramhall, Stockport, UK

Posted
vor 11 Minuten schrieb Jud91:

Is it possible to display the time left on a timer

apparently not, George

The only timer property I can find is "active". Nothing beyond that.

1438982212_timeractive.thumb.jpg.50d4c138686907d415188a1bbf6bc1b1.jpg

Posted

My apologies, @Curt84328

I just realised, I misunderstood Jud91.
He simply want's to keep an eye on the timer values.
And you, together with @simonjackson1964 gave the correct answer.

For some reason I was under the impression that he wanted to evaluate it, using the event manager.
THat he wanted to use the value as a condition or print it on a label.

Sorry about that ;)

Posted

Sorry to not be clear.  Both answers are of help BUT I wish to display a current clock on the layout.  This clock needs to show the simulation time.

(If in real time it will show real time like a clock on the layout somewhere.

 

Thanks for you help and apologies for not being very clear.

 

George

 

Posted

Hello @Jud91,

in the Lua editor, press ctrl + spacebar to open a list of all available commands and parameters.
You may find that the simulation time is held in a variable named layout.time

2034901480_layouttime.jpg.01846209c183bb4289c84db262b94a14.jpg

 

Unfortunately, this value is only available from within a Lua script.

Here's how you give the time to the text property of a label item (called Label in this example):

$("Label").text = layout.time

You can use a timer (set to 60 seconds) to refresh the text once every minute.

1709405909_timelabel.jpg.99ae334f42159a9454e51887024f5a7a.jpg

 

Kind regards
Goetz

Posted
vor 3 Minuten schrieb Goetz:

You can use a timer (set to 60 seconds) to refresh the text once every minute.

Small hint, you can use the event "Time is reached" to react on layout time changes without a timer.

Kind regards,

Neo

Posted

Not related BUT.  I have lost my Pro version settings even though I am logged in correctly.   It will not save my work without buying professional again.   Can anyone suggest what I do please?

 

George

 

Posted

Hi George,

it seems that you are using 2 accounts here, but your professional version is only linked to a single account. Should I merge both accounts into a single one?

Kind regards,

Neo

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...