Jump to content

ademes

Mitglieder
  • Gesamte Inhalte

    131
  • Benutzer seit

  • Letzter Besuch

Beiträge erstellt von ademes

  1. Andy,

    I restart the program MBS_Visual_Editor and, as described before, it remains as a gray reduced window; but when I right click in it and ask to enlarge, the window takes the whole screen with the correct data in it.

    So it works, but I cannot reduce this window as I don't have the opportunity to click in the corners of the frame.  I'll now search how to do this.  And, also, I don't kwow how this happened!

    Concerning the second point in my former intervention, the question was to have a place (wiki or something like it) where all plugins available are described.  The reason is that, for example, the plugin MBS_Visual_Editor is quite unknow by most of the users and I find that regrettable.  Maybe some other "unknown" plugins could help in designing complex layouts.

    Best regards

    André

  2. Hi Andy,

    Of course, indirection is a solution but this means an additional even to read and store the loco's name in the stop track.  As we already discused earlier, I try to manage my layout with as few as possible events and, thus, I was looking for another trick, if any.

    Of course, when the new options will be available, I probably will change the events accordingly.

    Andy, I have another question that I published on the forum under the name :Ultimate Variable Editor

    but, up to now, I've received no answer.  Could you be so kind to have a look there?  Thank you a lot.

    Regards

    André

  3. Hello,

    My question is very simple : as _Trigger1._Name points to the name of the timer when the condition 1 is "Timer expires", how to adress the loco residing on the track.

    In my labo layout, I've set the name of the timer = $_Trigger2._Name (= name of the track where "Loco" is stopped).  So, when the the timer expires, _Trigger1._Name points both on the timer's name AND to the track where the loco resides; this permits to use the variables residing on the _Trigger2._Name object.  This works great!  But I also need some of the variables that are part of the object "Loco".

    All suggestions will be welcome?

    Thank you

    André

  4. Hello,

    I discovered this plugin and I used it a lot as this makes so easy to develop my layout.

    Unfortunatally, and I don't know why, since 3 days, it doesn't work any more; in place of the normal screen, I receive a full black screen.  I currently work with Windows 10 and, as I know, no modification was implemented, except of course the normal automatic updates.
    I've reload and install once again both MBS_Variable_Editor and 3d_studio, but the wrong result remains.

    I need some help and I also have 2 questions :

    1. How to implement MBS_Variable_Editor as a plugin instead of lanching it from its resident directory?

    2. Is there a place where all existing plugins are defined and described?  When you search for plugins from 3d, you receives only some of them.

    Many thanks and regards

    André

  5. Hi Andy and Bahnland,

    Up to a few days, I was thinking that MBS is a pluging.  But during our exchanges you speak about MBS-version.  Is MBS integreted into standard 3D?

    I have no problem to translate the Wiki into french, if this is helpfull.  And the english version contains currently some sentenses that aren't in good english.
    Example :
         So instead of a concrete specify locomotive speed, also the name of a variable can be set to give the 3D model railway club takes the actual speed of the variable.
    should be
         So instead of specifying a specific locomotive speed, the name of a variable can also be set, whereby the 3D model train studio takes the actual speed from the variable.

    Regards

    André

  6. Andy,

    As I already said : when the internal logic is defined and well known, there should be no real problem to adapt.

    We are currently exchanging information concerning one solely case.  That's OK and I thank you for that.  But now I would like to know if other problems may arise.  And how to solve them.

    In other words, it should be great to create a kind of addendum to the Wiki to explain to everybody the real rules governing the event resolutions.  Maybe with some additional tricks.  Espescially in relation with the development of the next version of 3d; if I understood well, there will be some possibilities to develop kind of programming as part of the events.  What will be the exact relation between these part of coded lines and the internal logic of 3d?  That's what one need to know, in my opinion.

    What do you think about that?  What will be the next step?  These are the questions, now.

    Regards

    André

  7. Hi Andy and Bahnland,

    Thank you both for all axplanations you gave.  And be sure that I understand your logic (=3d logic) even if I cannot imagine the reason for solving the event's triggers, behalve to avoid infinitive loops (something that I know as I worked as programmer ans project leader since 1968).

    But the problem remains!  Look again to the small diagram I send to you : the purpose was to print either YES, either NO depending on the value of VAR1.  Due to your logic, both are printed, which is wrong.  In addition, as demonstrate by Andy, the sequence for the execution of the event is not as foreseen (= wat you see).  Remember the general informatica rule WYSIWYG (what you see is wat you get); instead of behing 1,2,3, the event sequence is now 1,3,2. and that is not what I've expected.

    This logic of 3d involves a lot of consequences as, for example (not exhaustive list):

    - if I create a variable in an event, I'm not sure that it will be present when I will test it later in the sequence
    - if a variable vary due to some manipulations, the result may be totally different than expected (my case)
    - If I use the variables _Trigger1 or _Trigger2, an I sure that their value will be exactly what I expect at the correct moment?
    - etc..

    Finally, no matter what the logic is as long as all users are aware of it as it isexplained in the Wiki; but it is not the case currently.

    So, my final question : do you think that it is possible to optimize the event list?  I mean not duplicating the events or the variables.

    Thank you again

    Regards

    André

  8. Hi Andy and Bahnland,

    Starting from the sample given by Andy, I try to understand the logic behind.  So I change the logic of the events in order to reflect exactly what I want, expressed in the diagram furnished here below.  And the result is trully not understandable.

    In fact, the EV cycle reacts exactly as if the content of the variable VAR1 does'nt matter.  This is very strange.

    If I understood correctly what you said, the "Ereignisdefinition" as you call it is executed (checked, validated,...) first and the actions are executed a the event moment.  In this case, at "Ereignisdefinition" time, VAR1 contains 1; however, the Check2 event is executed while the condition isn't met.  How is this possible?

    I now hope to get a full description of that logic, because otherwise, I don't see how to build easily and correctly my layout.

    Many thanks in advance

    André

    logic2.mbp

    logic.gif

  9. Hi Andy

    I'm lost...  And completely disapointed.

    1.  This means that I will stop searching solutions where there are none.

    2. Could you tell me where I can found that explanation, no matter if it is in german; translators exist for that.

    3. Why 4 positions in that case?  I don't understand the logc behind.

    Anyway thank you again Andy.

    Regards

    André

  10. Hi Andy,

    Thank you for your answer and to take time looking at my problems.

    The questions are now :

    1. What kind of system am I expecting to build.  I'm not ready for building something like MBS; I just want to create my layout with as few efforts as possible.  This means, for example, not duplicating event if this can be done another way.  Now, if the ideas can help other 3D users on their layouts, it will be great!
    Therefore, I plan to write a kind of proposal document where I will try to explain my vision and how to reach it; this document should be reviewed by authorized people in order to check if it is realist and also if some of the ideas aren't yet foreseen in the next version of 3D.
    In particular, I want to explain what is a traject for me and what are the components needed to build a traject

    2. I don't understand what you mean when you say :" all events are checked if they happen and if their conditions are fulfilled in kind of a locked state for events and variables and whatever needed".
    I've learned somewhere in the forum, but also in the Wiki, that there is no logic in the execution of the events : these are executed one after each other in the sequence they appear in the EV cycle.  This cycle is executed from top to bottom with no loop in it, skipping the events that are disable.  If this is not true, then it is time to explain in details how it works.
    In particular, using the "Trigger" variable names must avoid any
    equivocal ; one must be sure that the "Trigger" he is pointing to is the good one.
    Where you are right concerns the execution time; if two events are executed in sequence and if the result of the action in the first one is supposed to be tested in the second one, care must be taken and, maybe, try to have time in between.  In other words, execute the 1st earlier when possible.
    3. You also write : "
    assume that state '2' always switches the same path as state '0' and '3' always equals exactly '1'. " : it is not the purpose.  If a switch may have up to 4 possible routes defined by 4 positions, I assume that the 4 positions of the crossing may be used to direct the train to the correct corresponding route.  If a route does'nt permit to the train to travell over the crossing to the defined route, than the train must stop and this must be considered as : "the switch is not in the correct position and the train may not go forward".
    But, I agree with you that this is not necessary the best (good) solution.  But I don't see others..!                                                                                                                                    Regards  André                                                                                                                                       

  11. Hi Andy

    Here my "solution" concerning the switches;

    - I set variables "Crossing_status" and "Switch_status" in the object Traject1 to the desired value, let say 0 fot the switch and 2 for the crossing
    - Pressing then the "Kippschalter" switch only ones will change both switches to their correct position.  This only occurs if the switches aren't in the foreseen position yet.  If they are yet in the wanted position, nothing happens.

    I hope to be able to use that events for all switches and crossings that are present on my layout by using the nested $ values.

    what do you think about it?

    Regards

    André

    Trajet-1_Andy.mbp

  12. Hi Andy

    As foreseen, I come back to you with my solution that nevertheless is not perfect.  Just because I discover 2 new things, one good and one bad :

    Good : nesting "$" is allowed and it works!
    bad : the position for a switch may not be a variable!

    Here, please find a layout where :

    in yellow, the logic to implement : 3 trains following 3 different trajects through 6 blocks.  The objective of this exercise is to be able to pilot the 3 trains with as few events as possible.  Did I succeed?  That is the question; any suggestion from you will be gratefull.

    Regards

    André

    test trigger.mbp

  13. Hi Tom,

    This layout is my "laboratory" where I test different thinks.  So, don't be scared if you don't find any logic between the layout and the events.

    1. The 5 cubes you discovered are well object containing variables normally attached to a specific track (say section_n) within a block.  The only reason is the following : if those variables were really attached to a track, it becomes impossible to just copy them if the new track is different (straight><curved, long><short,...).  Having independant object solved this problem.

    2. The board you discovered there is only a way to remember the syntax.

    3. Each block has a track called "section"; their usage is to manage the block mentionning all needed data such as reservation, name, signal, etc...  But, as earlier explained, these object-variables are set into the 5 cubes you discovered and the section track object contains only one variable "section.data", linking that track to its specific cube.  The purpose was to have one and only one event for all "section track", but it seems to be impossible in V4 as discovered earlier in this thema : the variable's name must always be hardcoded and cannot be the value of another variable : VAR1 has the value TRK01 but one may not use $VAR1 as the name of the variable TRK01.  In other words, the syntax $(VARx._Name).$VAR1 is wrong.                                    André

  14. Hi Andy,

    The purpose is to build a common event able to pilot a train through the succeeding sections of the layout, according to an itinary (traject).  This means that each time a decision has to be taken for the next section to reserve, I would find the name of this next section as the value of the object variable called itinary._Trigger2.  But this combination doesn't work!

    In addition, I will assign the same name to all tracks acting as section : the name will be section and this object will have a pointer to an external table called "variable_sec_n" (n varying for each section) where all needed data will reside.  This permits to copy this table easier than if the data are part of the track itself.  So, I hope to have only one event to manage all sections in my layout.  But, as Martin Luther King said : " I had a dream..!".

    The itinary to be followed by a specific train  is defined as the object variable itinary in the object train.  So, changing the traject for a train becomes very simple.

    Have a look to the event "test" in the following layout used for the different tests I'm doing.  The results of this event are displayed in the center of the layout (value of A / B / C).  However, the value of C is currently coded as $((_trigger1._Name).itinéraire).section_1 where I hope to replace section_1 by the content of another variable and that is the current objective I'm trying to reach.

    I hope that it is now clarified for you.  Anyway, thank you for your help.

    Regards

    André

    test itinéraire 2.mbp

  15. Hello, (german follows)

    I'm searching since a few days without seing the solution...  So, I need your help.

    Situation :

    I have a track called "section" in which I have the variable "Canton" with the value "section_1"; this value is the name of a variable in the object "itinary".

    I have another object called "Itinary" describing the traject for the train; in this object itinary, I have defined the variable "section_1" having the value "section_3" which is the next section.

    I need to set the object variable "section.next_section" to the value from the object variable itinary.XX where XX stands for the name found in the variable canton from object "section"

    Section.canton = section_1 - (section_1 this is the name of the variable from itinary containing the name of the next section for this section)

    Object                 variable                             value
    Section                canton                              section_1
    itinary                  section_1                          section_3

    Event
    Train enters track               Section
    No conditions
    Actions :
      1  set variable A =
    $((_Trigger2.data)._Name).canton                                                          ==>  A = section_1 (= name of the variable in itinary)
      2  set variable $((_Trigger2.data)._Name).next_section = $(itinary._Name).????                ==> next section = section_3
                                                           where ???? must be the variable's name which value is contained in the variable A

    how to build this action?

    Thank you for your help
    regards

     

    Hallo, folgt

    Ich suche seit ein paar Tagen ohne die Lösung zu sehen ... Also brauche ich deine Hilfe.

    Situation :

    Ich habe eine Spur namens "section", in der ich die Variable "Canton" mit dem Wert "section_1" habe. Dieser Wert ist der Name einer Variablen im Objekt "itinary".

    Ich habe ein anderes Objekt namens "Itinary", das den Trajekt für den Zug beschreibt. Ich habe in diesem Objekt itinary die Variable "section_1" mit dem Wert "section_3" definiert, der den nächsten Abschnitt darstellt.

    Ich muss die Objektvariable "section.next_section" auf den Wert aus der Objektvariablen itinary.XX setzen, wobei XX für den Namen steht, der im Variablenkanton aus Objekt "section" gefunden wird.

    Section.canton = section_1 - (section_1 Dies ist der Name der Variablen aus itinary, die den Namen des nächsten Abschnitts für diesen Abschnitt enthält.)

    Objekt                 variablen                           wert

    Section                canton                              section_1
    itinary                  section_1                          section_3


    Event
    Train enters track               Section
    No conditions
    Actions :
      1  set variable A =
    $((_Trigger2.data)._Name).canton                                                          ==>  A = section_1 (= Name der Variablen in itinary)
      2
    et variable $((_Trigger2.data)._Name).next_section = $(itinary._Name).????                   ==> next section = section_3
                                                           woher ???? muss der Name der Variablen sein, deren Wert in der Variablen A enthalten ist

    Wie baut man diese Aktion auf?

    Danke für deine Hilfe
    Grüße

    André

     

  16. Hi Curt84328

    Thank you for your comments.

    T.C.O. stands for "tableau de commande optiques" in french (optical control board) having the purpose to control a layout (real or virtual) like the one in attachement.
    And I'm sorry but I cannot open your video; what program should I use to watch it?

    And, finally, my purpose is to reproduce only the layout, not all other components present on the original view like cranes, buildings, etc..  But you are right to say that the events could be doubled.  This is the reason why I'm looking for an other solution : being able to manipulate two or more switches with only one control buttom or command.

    Maybe am I dreaming...!

    Regards

    André

    07602133-a352-408f-aca9-14bb8666f2b5.gif

×
×
  • Neu erstellen...