Jump to content

Recommended Posts

Posted

Hello,

I'm still in version 5.0.6.1 and I wasn't informed of an upgrade to 5.0.7.0 including the new features I'm waiting for.  I mean that when opening my actual version, I don't have the Opportunity to upgrade.

Should I do something else?

Thank you

André

Posted

@maxwei,
Du hast wahrscheinlich noch keine Animationsunterschiede innerhalb einer Variationsliste gehabt! Ich packe Dir da mal was zurecht und gebe Dir einen Link per PN.

Gruß
  Andy

Posted
vor 10 Minuten schrieb ademes:

Hello,

I'm still in version 5.0.6.1 and I wasn't informed of an upgrade to 5.0.7.0 including the new features I'm waiting for.  I mean that when opening my actual version, I don't have the Opportunity to upgrade.

Should I do something else?

Thank you

André

Hi Andre'

Check in settings that automatic update is activated.

Cheers

Tom

Posted
vor 33 Minuten schrieb aloys63:

Wie Bekomme ich die neue Beta 5.0.7.0

Da es noch eine Beta (= Test) Version ist, wird sie nicht automatisch angeboten.
Du kannst aber unter den Einstellungen aktivieren, dass du solche Vorabversionen haben möchtest.

Die Option dafür heißt: "Automatisch auf Programm-Vorabversionen aktualisieren".

Andernfalls musst du einfach nur abwarten, bis die Betatest-Phase endet. Dann bekommst du ganz normal den Hinweis auf eine neue Programmversion.

Posted

Hallo Andy,

vor 7 Stunden schrieb Andy:

Du hast wahrscheinlich noch keine Animationsunterschiede innerhalb einer Variationsliste gehabt! Ich packe Dir da mal was zurecht und gebe Dir einen Link per PN

... ich habe es mal ausprobiert, bei mir geht es auch mit zwei unterschiedlich langen Animationen und Licht ein/aus (2 Frames) jeweils am Ende...
... da ich neugiegig bin, bekomme ich auch einen Link per PN?

Gruß
EASY

Posted
vor 13 Stunden schrieb FeuerFighter:

Hallo Andy

das geht in Blender 2.8 direkt auf der Zeitleiste.

Gruß

FeuerFighter

 

Hat man Da auch Alle animierten Objekte eines Modells auf einen Blick?

Gruß

fmkberlin

Posted

 

vor 2 Stunden schrieb fmkberlin:

Hat man Da auch Alle animierten Objekte eines Modells auf einen Blick?

Hallo Frank, in der Ansicht 'DopeSheet' ja. Im ActionEditor wohl nicht. Viel habe ich da aber noch nicht gemacht.

Gruß
  Andy

Posted

Hello,

I try the Following in an even :

1. define the table : rails       table     {0 items}

2. run : table.insert($("test").variables["rails"], track.name)

3. result : the table "rails" is well filled with all track's names, but the order is Strange - see attached 1

4. define in a script the table : liste = {}
    define a table : liste2     table     {0 items}

5. run : table.insert(liste, track.name)
            $("test").variables["liste2"] = liste            

6. result : the table liste2 is well filled with all track's names, but now the order is correct - see attached 2

Regards

André127473569_ordertable1.GIF.3fab035c5805965f5c5a8b7a0b618b19.GIF

order table2.GIF

Posted

When you create a table, each cell has a string as an identifier.
So your numbers are converted to strings and in your window, these strings are sorted alphabetically, not numerically.

A list is different, because the identifiers are numbers. A list ist iterable, a table is not.

That's why the list entries are sorted numerically.

Posted (edited)

Hallo,

ich habe mit Listen / Tabellen folgenden Versuch unternommen:

die beiden Variablen "Liste1" und "Liste2" als Typ "Liste" definiert...
361966179_Bild001.thumb.jpg.ec224c75f1847400b0eb26f3cff6c14c.jpg

... und lese diesen Zug ein (die Wagons hinter der Lok sind "W1", "W2" ... "W12")
593433745_Bild008.thumb.jpg.0cba4084556dc3fd8dcae86a85596b88.jpg

... in die beiden Listen sollen die Namen der beteiligten Objekte...
 

$("Ereignisse").variables["Liste1"]={}
$("Ereignisse").variables["Liste2"]={}
temp={}
temp=layout:getVehicleGroup($("Lok"))
namen={}

print("Liste1")
for i,v in ipairs (temp) do
table.insert(namen,v.name)
end
$("Ereignisse").variables["Liste1"]=namen

for i,v in ipairs($("Ereignisse").variables["Liste1"]) do
print(i,v)
end

print("Liste2")
for i,v in ipairs (temp) do
table.insert($("Ereignisse").variables["Liste2"],v.name)
end

for i,v in ipairs($("Ereignisse").variables["Liste2"]) do
print(i,v)
end

... wenn das Skript ausgeführt wurde, dann wird "Liste2" vom MBS Typ "Tabelle" aufgeführt...
1873698519_Bild002.thumb.jpg.f292e5349650bdf09c1b9742e27796ab.jpg

... der von Goetz beschriebene Unterschied in der Darstellung im MBS ist auch zu sehen...
929887020_Bild003.jpg.cc2fecaba3aab02fdce62850ed0b64a3.jpg

949524772_Bild004.jpg.922870e0434aa3ee2b952f7da7c752b0.jpg

... das Auslesen über das Skript ergibt wieder zwei identische Darstellungen...
597545579_Bild005.jpg.6fb15de21106e2b5048589622cc31428.jpg

... wenn ich die Definition von "Liste1" und "Liste2" als "Tabelle" setze...
1599761761_Bild006.thumb.jpg.d83a48a67d9e0375e0996f06596ee29f.jpg

... dann wird nach dem Ausführen vom Skript "Liste1" zum Typ "Liste"...
1342156337_Bild007.thumb.jpg.8aecbef445f18dfea0ec1afb9b413804.jpg

(... der Rest ist wie schon dargestellt...)

... warum gibt es diesen Unterschied zwischen einer "indirekten" Zuweisung...

for i,v in ipairs (temp) do
table.insert(namen,v.name)
end
$("Ereignisse").variables["Liste1"]=namen

und der direkten Zuweisung...

for i,v in ipairs (temp) do
table.insert($("Ereignisse").variables["Liste2"],v.name)
end

... ob es eine "Liste" oder "Tabelle" wird?

Gruß
EASY

Edited by EASY
Posted

Hallo Easy,

vor 48 Minuten schrieb EASY:

warum gibt es diesen Unterschied

wie du sicher weißt kennt Lua nur Tabellen, keine Listen. Da das Studio aber zwischen beiden unterscheidet, muss diese Unterscheidung an irgend einem Punkt geschehen. Die Unterscheidung findet bei der Zuweisung einer Variablen statt, d.h. in deinem ersten Fall wird eine fertige Tabelle einer Variablen zugewiesen. Das Studio analysiert die Tabelle, stellt fest, dass es sich um eine Liste handelt, und speichert die Tabelle entsprechend als Liste ab.

In deinem zweiten Fall fügst du Elemente zu einer Tabelle im Studio direkt hinzu. Dabei findet keine automatische Konvertierung von Tabelle zu Liste statt.

Für die Logik spielt dieser Unterschied am Ende keine Rolle. Ein Iterieren durch eine Tabelle/Liste mit ipairs gibt immer das gleiche Ergebnis (wie du schon in deiner Ausgabe erkannt hast), egal in welcher Reihenfolge die Einträge intern gespeichert werden.

Viele Grüße,

Neo

Posted

Hello,

I have a question / suggestion :

When one double clic on a track, all the tracks between 2 switches are selected.  Great! 

But the result is "multiple selection" on which one can only Apply some properties.
My question/suggestion : as these lot of tracks correspond to a section (or block or segment or any name one can give), is it not possible to :

  1. give an objet's name to the selection in order to use it the same way as other objects
  2. give the possibility to assign object's variables to that new object.

Thank you

André

Posted
Am 6.11.2019 um 12:46 schrieb EASY:

layout:getVehicleGroup($("Lok"))

Hi Andy

Where is such Lua function coming from?  Is there a place somewhere to have a list of all these functions?

Thank you

André

Posted

 

vor 2 Stunden schrieb ademes:

I have a question

Another one?
We don't even know yet if your previous one has been answered to your satisfaction or not.

 

vor 2 Stunden schrieb ademes:

give an objet's name to the selection

you may turn the selection into a group and name that group.

 

vor 2 Stunden schrieb ademes:

give the possibility to assign object's variables to that new object.

and add variables, keywords etc. to the group

Posted
vor einer Stunde schrieb Goetz:

We don't even know yet if your previous one has been answered to your satisfaction or not

Hi Goetz,

Sorry you are right!  I forgot to give you a feedback!  The list is well sorted as you explained

vor einer Stunde schrieb Goetz:

You may turn the selection into a group and name that group.

 

vor einer Stunde schrieb Goetz:

and add variables, keywords etc. to the group

Oh yeah!  great!  and it is ok; I may enter keyword and variables.

BUT, snif, snif…  it don't work as the group with the keyword doesn't trigger the event
Watch the layout where I tested it.  Look at group L1 with keyword station

Regards

André

Test grill 1.mbp

Posted
vor einer Stunde schrieb ademes:

Watch the layout where I tested it. 

You really need to work on your communication skills, ademes!

I'm not eager to work my way through every aspect of your layout, until I understand what you're doing where, when and why.
Just because you're to lazy to give a proper description.

And don't bother now. I'm done with this ...

Posted
vor 13 Minuten schrieb Goetz:

And don't bother now. I'm done with this ...

The one here that need to review his position on this forum is not me, Goetz…  It's you and if you don't want to be botherred, let other responsible answer.

What I said gently was : you are making a mistake with your previous answer : it may not work because a group is NOT a track and so the event "train enter/leave a track" will never be triggered with your solution.  That is the point.

Next, if you check the event where the group is used, MBS however indicates "train enters a track", just because of the keyword.  Remove the keyword and you will discover that the only event that may be triggered is "a variable is changed"

And finally, I do not accept insults; I'm not lazy!

André

Posted

Hi ademes,

I have to admit I also don't understand what you're trying to do. However, as you already know by now, a group doesn't trigger anything. An item of the group does, but not the group. So, if you want a "train enters track" event, just pick one of the tracks of the group. Alternatively, you might use contacts as a trigger. There is no other option.

Regards Timba

Posted (edited)

Hi Andre'

If you need such a large track as a trigger that your way to build it is by grouping a number of single tracks I wonder why you're not focusing on the two end tracks only (of that group)?  As an alternative, you could build a large single track of that shape and geometry by using the 3D track editor. @Timba's suggestion to use a track contact is most likely the easiest and most effortless way of getting what you want.

andre.thumb.JPG.47b4c276d99869fd138e0c2e15f00e54.JPG

Cheers

Tom

Edited by metallix
Posted

Hi Timba and Metallix,

Thank you both to come back on this matter.  

I will try to be more explicit.  In many train manager that I know (CDM Rail, Train Controller,...) , the entire layout is cut into segments (Bahn Kanton??) residing between 2 switches, one switch and a signal, 2 signals. In addition,a bumper also determines the limit of a segment, including a reverse option.

These segments are linked together in order to build an itinerary. If the link between two segments is a switch or a lot of switches (called a grill in English), than the position of each of these switches determine how a train goes from one segment to the other. The succession of segments and grills together finally build the itinerary.

When those itineraries are defined, each train may (it is not mandatory) be attached to one itinerary. Normally, the itinerary name is saved as an object.variable in the engine of the train permitting to change the itinerary easily.

I knew that a group may never be treated as a track because a group may contain different type of objects having nothing to do with the tracks.

But the notion of "segment" seems to be unknown in MBS and that is the reason of my proposal. The new possibillity when double clicking on a track open in my mind a view of segmentation in MBS.

That"s all.

Now, I suppose that all users of MBS have their own solution and I respect that. And I also understand and appreciate the work done by the team to develop and maintain the MBS application. My purpose was just to bring my contribution to the project; Nothing more!

With all my respect

André

 

Posted (edited)

Hallo Neo,
wenn es in Kürze die 'Vollversion' gibt, denkst Du vielleicht bitte noch an die Hookfunction, die den 60 Hz-Timer ersetzen kann?

Gruß
  Andy  (danke Timba :D)

Edited by Andy
Posted

Hallo Timba,
eine Hookfunction kann in einer Hauptfunktion bereitgestellt werden, damit ein User dort noch etwas in das Programm einbringen kann.
In dem Fall ging es um die flackerfreie Bewegung der Seilbahn. Wenn ich einen sehr schnellen Timer nehme, kann ich zwar für jedes Animationsframe des MBS neue Werte zur Verfügung stellen, aber es kann da durchaus gewisse Synchronisationsprobleme geben und dann flackert's eben.
Über die Hookfunction könnte ich noch eine letzte Berechnung zur Verfügung stellen, ehe das MBS richtig an die Arbeit geht.
Nachteil: Wenn man es in der Funktion übertreibt kann man sich das System endgültig auf 1 FPS runterfahren.
Ist also nur für sehr wenige, aber sehr wichtige Berechnungen geeignet.
Mich persönlich nervt halt der Timer unheimlich, weil er mit 60 Hz bzw. 0,15 ms das gesamte Ereignisprotokoll flutet.

Gruß
  Andy

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