Jump to content

EASY

Mitglieder
  • Gesamte Inhalte

    3048
  • Benutzer seit

  • Letzter Besuch

Beiträge erstellt von EASY

  1. Hallo Franz,

    Ich kann es mir nicht verkneifen, aber ich weiß, daß Du das verträgst...

    Zitat

    ...was will der Spinner? ... wirklich jeden "Blödsinn" realisieren!!!

    ... aber mal ernsthaft. Ich finde es gut, daß Du diesen Beitrag geschaffen fast, denn es war in letzter Zeit doch einiges an Diskussion über den Modellbau, was doch zu einiger Verunsicherung geführt hat.  Wer mit LOD noch nichts richtig anzufangen weiß, ich finde es hier kurz und gut beschrieben http://de.wikipedia.org/wiki/Level_of_Detail und vor allem das Beispielbild zeigt (aus meiner Sicht) deutlich, was / wie es gemeint ist.

    Gruß

    EASY

  2. Hallo,

    ... ich habe mir mal noch überlegt, wie man im MBS etwas über die Schnittstelle bewegen kann, und dabei gewisse Freiheitsgrade in der Parametierung hat.

    Als Lösungsansatz ist (mal wieder) eine Kombination aus Ereignisverwaltung und VB-Skript herausgekommen.

    In der Ereignisverwaltung kann über Variablen folgendes eingegeben werden:

    sx, sy, sz -> Fahrweg des zu bewegenden Objektes in die 3 Richtungen

    FObjekt -> Name des Objektes das bewegt werden soll

    schritt -> Schrittweite der Einzelbewegung für den längsten Weg. (Die Schrittweite für die anderen Richtungen wird so angepasst, daß es eine "harmonische" Bewegung ergibt)

    Wenn die Variable "Start" in der Ereignisverwaltung der Wert 1 zugewiesen wird, startet VB die Bewegung und setzt am Ende der Bewegung die Variable auf 0 (kann dann in der Ereignisverwaltung weiter ausgewertet werden). Da dies die wesentlichen Parameter sind, wird im VB-Projekt keine Eingabemaske benötigt, und man hat die Freiheitsgrade (Weg und Objektname) über die Ereignisverwaltung. (Im VB-Projekt gibt es [immer noch vorsichtshalber] "Connect" und "Disconnekt" für den Auf- bzw. Abbau der Verbindung zur Schnittstelle... also zuerst "Connect" und dann einen Schalter betätigen.

    MBS-Projekt:

    Wird der linke Kippschalter (Ereignis) auf "ein" geschaltet, schaltet das Signal dahinter auf "offen", die Variablen werden gesetzt und die Bewegung des Quaders gestartet (VB)

    Ist die Bewegung zu Ende, wird dies in der Ereignisverwaltung erkannt (Start=0) und das Signal zurückgeschaltet.

    Wird der linke Kippschalter (Ereignis) auf "aus" geschaltet, passiert im Prinzip das Gleiche nur, daß die Variablen sx,sy,sz mit -1 multipliziert werden und so der Quader wieder seine ursprungliche Position erreicht.

    Der rechte Kippschalter hat die gleiche Funktionsweise... nur eben für die Pyramide.

    Das Projekt befindet sich noch in den Anfängen (später wollte ich dann noch die Rotation mit einbauen) und ist deshalb noch nicht gegen Ungeduld abgesichert... also das Ende der Bewegung abwarten... dann erst wieder einen Schalter schalten.

    Ich hoffe mal, dies ist ein brauchbarer Ansatz... Rückmeldungen wären schön...

    in der . zip ist das MBS-Projekt, die Ereignisverwaltung als .html und das VB-Projekt (allerdings nur die .exe, da das Script noch etwas chaotisch aussieht)

    Gruß

    EASY

    Fahrtest-01-bild.jpg

     

    Fahrtest-01.zip

  3. Hallo Neo,

    ... hat sich in so weit erledigt als daß ich in beiden Fällen einen Punkt gemacht habe und nicht einmal einen Punkt und einmal Komma. (Punkt mag das MBS nicht, auch nicht bei Position oder Rotation...)

    Da ich vorher etwas in VB gemacht habe, war ich noch etwas "Punkt geeicht"...

    Was mich trotzdem noch interessieren würde, wenn ich "+1.25" eingebe und mir die Variable dann in der Ereignisverwaltung anzeigen lasse, dann steht da immer (also egal wie oft ich das Ereignis aufrufe) "+1.25" (hätte mich zugegebenermaßen stutzig machen müssen), also das was ich eingegeben habe. Ist das dann so etwas wie ein String? oder etwas undefiniertes? oder welchen "Wert" hat dann die Variable?

    Gruß

    EASY

  4. Hallo Neo,

    laut Beschreibung in der WIKI, kann man Variablen bei der Wertezuweisung duch ein vorangestelltes "+" einen bestimmten Wert zum bestehenden Wert aufaddieren.

    Nun, das geht auch prinzipiell, aber nur, wenn der Wert hinter dem "+" eine ganze Zahl ist. Wenn ich ein z.B. "+1.25" (oder "+1,25") schreibe, dann wird der Variablen der Wert 1.25 zugewiesen und nicht aufaddiert... (bei "+1" geht es wunderbar)...

    Gruß

    EASY

  5. Hallo,

    ich habe mir mal ein paar Anlagen aus der "Community" angeschaut... da es mich gestört hat, daß sie bei "Zuletzt geöffnet" noch einmal auftauchen, habe ich sie dort ausgeblendet... nun sind sie für mich allerdings unter "Community" auch ausgeblendet... wie komme ich da jetzt wieder dran???

    Gruß

    EASY

  6. Hallo,

    Das Prinzip ist das gleiche (einen Teil macht die Ereignisverwaltung, den anderen das VB-Skript) nur, daß die Funktionalität etwas komplexer ist.

    Die ernsthaften Anlagenbauer unter Euch mögen mir verzeihen, denn es ist etwas realitätsfern. Wer mich kennt, weiß, daß ich nun einmal verspielt bin... und ich sammle eben auf diese Weise meine Erfahrungen... (Der Name ist wörtlich zu nehmen...)

    ...in der .zip ist das VB-Projekt, das MBS-Projekt und die entsprechende .exe

    Gruß

    EASY

    Spar-schattenbahnhof.jpg

    Spar_schattenbahnhof.zip

  7. Hallo,

    Zitat

    Oder wenn man eventuell Bildschirmkoordinaten wie bei einem Fenster zuweisen könnte...

    ... nicht wie bei einem Fenster... sondern die Frage an Neo ob es möglich wäre, so etwas wie ein 2. "Arbeitsfenster" einzurichten, das frei beweglich / skalierbar ist (Fenstergröße und Position Projektbezogen merken?) und auf dem Objekte (Steuer- und Anzeige- Elemente [aus dem Katalog?!]) abgelegt werden können. So etwas kann sich dann jeder dahin legen, wo es gerade passt... könnte (da manuell bedient) nach meiner Meinung sogar asynchron mitlaufen um die fps nicht zusätzlich zu belasten

    ... mal so als Überlegung...

    Gruß

    EASY

  8. Hallo,

    ... da hier im Forum schon der Gedanke von "Plugins" für das MBS aufkam, habe ich mir mal überlegt, wie man so etwas einbinden könnte.

    Da Neo so nett war und nun den "Vollzugriff" auf Variablen der Ereignisverwaltung in der Schnittstelle implementiert hat, kam mir die Idee eine Variable als Schnittstelle zwischen Ereignisverwaltung und Steuerschnittstelle zu verwenden.

    So ein richtiges Plugin ist es zwar nicht geworden, aber ich wollte einfach etwas anschaulich demonstrieren, wo ich die Stärke der Steuerschnittstelle sehe... darin, daß ich über die Steuerschnittstelle Dinge tun kann, die im MBS nur über Umwege (oder gar nicht) zu erreichen sind.

    Dazu ist mir als Beispiel das Verladens eines Containers auf einen Wagon in den Sinn gekommen. (Ereigniswerwaltung - Zug steuern ; Steuerschnittstelle - Container bewegen)

    In der Ereignisverwaltung und im VB-Projekt gibt es die Variable "VCStart". Sie ist so angelegt, daß wenn sie den Wert "0" hat, der Steuerschnittstelle signalisiert wird etwas zu tun und wenn sie den Wert "1" hat die Ereignisverwaltung darauf reagiert.

    Nun, was steckt dahinter?

    Der Zug ist über die Ereignisverwaltung gesteuert und macht eine Runde, um dann an einer bestimmten Stelle anzuhalten. Mit dem Setzen der Variable "VCStart" auf "0" wird der Schnittstelle signalisiert, daß die Position erreicht ist und der Container verladen werden kann (Die Ereignisverwaltung sagt, "Ich bin fertig, Du (Steuerschnittstelle) bist dran..."), über das VB-Projekt wird nun der Container verladen und die Variable auf "1" gesetzt ( (Die Steuerschnittstelle sagt, "Ich bin fertig, Du (Ereignisverwaltung) bist dran...")

    ... die Variabe dient also der Synchronisation zwischen Ereignisverwaltung und Steuerschnittstelle.

    (Das VB Projekt erkennt von sich aus, ob der Container Be- oder Entladen werden muß und findet im entladenen Zustand die Position des Wagons....)

    ... prinzipiell, könnte man das VB-Projekt gänzlich ohne Bedienoberfläche gestalten... aber für Anfangsprojekte habe ich eben gerne noch die Buttons "Connect" (Verbindung herstellen) und "Disconnect" (Verbindung trennen)...

    Ich hoffe mit diesem Beispiel meine prinzipielle Überlegung zum Einbinden von Plugins vermitteln zu können...

    ...in der .zip ist das VB-Projekt, das MBS-Projekt und die entsprechende .exe

    Gruß

    EASY

    Beentladen-01.jpg

     

    Beentladen-01.zip

  9. Hallo MarcoP,

    ... die Schnittstelle hat keinen direkten Zugriff auf in der EVW (eingertagenen) Ereignisse. So ist die Abfrage ob ein Ereignis aktiviert/deaktiviert ist nicht möglich.

    Die ID in Klartext umsetzen ist zwar möglich und würde die "Lesbarkeit" verbessern, aber innerlich sträubt sich bei mir etwas dagegen.

    Ereignisse werden zwar von Anwender aus passiv angezeigt, aber manches was sonst noch interessant sein könnte, kann nur über Kommandos abgerufen werden und da wird es mit dem Übersetzen schon etwas schwieriger, da das einzugebende Kommando (aktive Eingabe des Anwenders) "in Gedichtform" doch etwas lang werden könnte [ z.B. "Liefert eine Liste der Namen aller Objekte auf der Anlage zurück" und da Kurzformen oder Abkürzungen vorgeben, möchte ich nicht] . Und ein "Mischmasch" ist nicht so mein Ding...

    ... so würde ich es doch lieber dem Anwender überlassen, durch "geeignete" Namensgebung auf die Art des Objektes und somit auf das Ereignis zu schließen (macht auch für die EVW einen gewissen Sinn)... und die Ereignisse, in denen nur ein allgemeiner Name vorkommt (z.B. Gleisnummer aus dem Katalog) sind ohnehin (meist) ohne Interesse...

    Gruß

    EASY

  10. Hallo,

    nachdem es hier http://www.3d-modellbahn.de/forum/thema/3606 etwas Thema war, habe ich ein kleines VB-Projekt für Schnittstellenversuche etwas umgeschrieben (deshalb noch der Name).

    Da ein Bild mehr sagt als Worte erst einmal das Bild:

    Mbs-schnellversuche.jpg

    ... nun, es ist jezt zwar nicht der gewünschte "Debugger" für die Ereignisverwaltung, aber ich denke für den Anfang kann man schon etwas damit anfangen um zu sehen, ob etwas geschaltet wird oder auf welchem Wert eine Variable steht oder eine Lokgeschwindigkeit abfragen oder...

    Bei Kommando eingeben, kann ein Kommando gemäß der Beschreibung der Schnittstelle in der WIKI eingegeben werden.

    Darunter befindet sich ein Ausgabefenster in dem das Kommando rot angezeigt wird und darunter schwarz, die Antwort.

    Beispiel: ID 60 (alle Variablen abfragen) wurde gesendet. -> Antwort 1;VH;2 => Kommando senden erfolgreich=1 ; Name der Variable=VH; Wert der Variable=2 (ich hatte nur eine Variable) sonst würde die Antwort erweitert auf ;Name2;Wert2;Name3;Wert3...

    (Würde z.B. - 61;VH - gesendet, dann würde nur die Variable "VH" abgefragt und der Rückgabewert wäre- 1;2 - (Kommando senden erfolgreich=1; Wert von VH=2)

    ... darunter wurde ID 370 Gesendet zur Abfrage der Lokgeschwindigkeit von "Lok1" (Antwort ist glaube ich eindeutig...)

    Wenn die Antwort mit  -0- beginnt, dann liegt ein Fehler vor... nicht vergessen das Trennungszeichen ist ein ";"  (ich mache immer noch gelegentlich ein "," ...)

    Kommandos zur Abfrage von Werten können jederzeit angesendet werden!

    Die Ereignisse, die angezeigt werden sollen, können unten ausgewählt werden (z.B. ID151 Zug verläßt ein Gleis wird nicht angezeigt, da abgewählt)

    Beispiel lesen:

    210;Start;1 (ID210=Steuerobjekt Wert hat sich geändert) -> Schalter "Start" wurde auf "1" geschaltet.

    60;VH;2 (ID60=Variable wurde geändert) -> Variable "VH" wurde der Wert 2 zugewiesen.

    50;Vorheizen (ID50=Contdown wurde beendet) -> der Countdown "Vorheizen" ist abgelaufen

    200;Signal1;1 (ID200=Signal schaltet) -> "Signal1" wurde auf "1" geschaltet.

    ... den Rest könnt Ihr dann schon lesen... (siehe WIKI).

    ... wie gesagt nicht ganz die Wunschvorstellung, aber vielleicht hilft es etwas den einen oder anderen Fehler in der Ereignisverwaltung zu finden...

    Das Fenster kann minimiert werden (Aufzeichnung geht trotzdem) und natürlich auch zusammengeschoben oder vergrößert werden...

    In der .zip ist das VB-Projekt und wer sich damit nicht beschäftigen möchte / kann... die .exe auch mit dabei.

    Gruß

    EASY

    Mbs-clients-1.0-fuer-schnellversuche.zip

  11. Hallo Gartenbahner,

    ... Danke! und es freut mich, daß es irgendwie verständlich ist.

    Eine Version habe ich noch.

    In der Bedienoberfläche sind noch zwei Buttons für die Ansteuerung und Anzeige der Weichen hinzugekommen. Ich habe es mal mit Symbolen gemacht, um zu zeigen, daß es diese Möglichkeit auch gibt (... ist für Weichen auch übersichtlicher...)

    So ist noch die ID304 (Abfrage Weichenstellung) und die ID 305 (Weiche schalten) hinzugekommen.

    Testanlage02b.jpg

    Den 2. Zweig mit "s2" habe ich auch in Betrieb genommen so daß die Lok nun auf beide Signale reagiert wenn sie auf dem entsprechenden Zweig ist...

    ... die Weiche "w1" wird nun auch gesteuert umgeschalten, so das "Weiche freischalten" bei der Lok nicht mehr benötigt wird.

    ... damit würde ich die "Aufgabenstellung" mal als erfüllt betrachten.

    Am MBS-Projekt hat sich zwar nichts geändert, ist aber trotzdem in der .zip mit bei.

    Gruß

    EASY

     

     

    Testanlage02b-vb-mbp.zip

  12. Hallo,

    ... Fortsetzung...

    Hinzugekommen ist:

    - ID41 (Längeneinheit setzen) beim Betätigen von "Connect". Ist eine persönliche Note von mir, die Längeneinheit auf mm zu setzen, so muß bei Geschwindigkeitsangaben nicht umgerechnet werden (Standard ist cm)

    - ID 350 (Rollmaterialliste) zur Abfrage ob und welche Lok (Name) sich auf dem Gleis "r1" befindet. Dadurch kann die Lok ausgetauscht werden ohne daß man im VB-Projekt einen konkreten Namen eingeben muß. Außerdem liefert dies eine Information, ob eine Lok gestartet werden muß, wenn das Signal "s1" auf "offen" geschaltet wird.

    -ID 371 (Lockgeschwindigkeit setzen)

    Zusätze:

    Zug fährt durch ("s1" auf offen) -> Im Bereich von "r5" (betreten) bis "w1" (verlassen) ist die Lockgeschwindigkeit 80mm/s (damit sie nicht so über die Weicher rumpelt), Nach dem Verlassen von "w1" ist die Lokgeschwindigkeit 220 mm/s

     Zug muß anhalten ("s1" auf geschlossen) gelten folgende Lokgeschwindigkeiten -> Mit dem Betreten von "r5" - 80mm/s, mit dem Betreten von r1 - 20mm/s, mit dem Betreten von "r1a" - 0 mm/s. Mit dem Betreten von "r1a" gibt es folgende Besonderheit: Die Geschwindigkeit 0 mm/s wird der Istgeschwindigkeit zugeordnet, dadurch gibt es kein "Auslaufen" sondern die Lok stopt unmittelbar.

    Da ich die Gleise etwas umgestellt habe und die Gleisnamen "r1a" und "r3a" noch hinzu gekommen sind, ist die geänderte Testanlage mit in der .zip ("Testanlage02a.mbp")

    Besonderheit beim Lokwechsel: Die Schnittstelle definiert ein Rollmaterial, das sich auf einem Gleis befindet über den Mittelpunkt des Rollmaterials. Die Lok muß also so auf "r1" gesetzt werden, daß sich deren Mittelpunkt noch innerhalb von "r1" befindet. Damit es noch für  die E-lok (silber) oder das Krokodil passt, habe ich "r1" und "r3" etwas länger gemacht. (da das verwendete Gleissystem wenig Auswahlmöglichkeiten hat, möge man mir die eine oder andere "Anpassung" verzeihen...)

    ... gerne Rückmeldung, ob das hier Geschriebene und die Kommentare im VB-Projekt so sind, daß man es (einigermaßen) nachvollziehen kann... aber auch überhaupt...

    Gruß

    EASY

    Testanlage02a-vb-mbp.zip

  13. Hallo Gartenplaner,

    ich habe mich mal entschieden, die Sache etwas langsam anzugehen...

    ... mit dem beigefügten VB-Projekt lassen sich "nur" die 2 Signale über die Schnittstelle schalten. Die Lok fährt also noch nicht!

    Testanlage02.jpg

    Mit dem Button "Connect" wird die Verbindung zur Schnittstelle aufgebaut.

    Mit dem Button "Disconnect" wird die Verbindung zur Schnittstelle unterbrochen.

    Mit dem Button "S1" kann das Signal "s1" umgeschalten werden, Mit dem Button "S2" kann das Signal "s2" umgeschalten werden (ID 402 schalten; ID 200 anzeigen).

    Wenn der Button "Connect" angeklickt wird, wird die Farbe der Buttons "S1" und S2" auf den Schaltzustand des jeweiligen Signales gebracht (Rot=geschlossen; grün=offen) -> Anfangszustand erfassen (ID 401).

    Die Buttons ändern auch ihre Farbe, wenn die Signale manuell (Leertaste) geschalten werden. Dies geschieht über die Auswertung des Ereignisses (ID 200).

    ... mal für den Anfang "step by step"...

    ... wer es noch ausprobieren möchte... müßte die Testanlage von Gartenplaner aus Beitrag #3 noch downloaden...

    Gruß

    EASY

     

    Testanlage02-vb.zip

  14. Hallo Gartenbahner,

    Bevor ich Dir mit einem Programm antworte, erst einmal meine prinzipiellen Überlegungen zu Deiner Testanlage, sozusagen als Trockenübung.

    Die prinzipiellen Überlegung zu Kommandos und Ereignissen sind folgende:

    -Ich weiß was ich möchte also kann ich gezielt Kommandos senden, das MBS weiß nicht an welchen Informationen ich interessiert bin, also liefert es mir alle Informationen in Form von Ereignissen über das, was auf der Anlage gerade geschieht ( (z.B. ID 200 Signalzustand hat sich geändert), die es kann und ich muß mir die Informationen, die ich haben möchte herausfiltern.

    -Mit dem Senden eines Kommandos können zwei Ziele Verfolgt werden. Entweder ich möchte eine Abfrage machen, also ich bin interessiert an einer Information (z.B ID370 Lokgeschwindigkeit) oder ich möchte aktiv in das Geschehen eingreifen (ID 402 Signalzustand setzen).

    -Ich habe einen Grund, weshalb ich ein Kommando sende. Entweder ich reagiere damit auf ein Ereignis oder ich möchte über eine eigene "Bedienoberfläche" in das Geschehen eingreifen oder etwas anzeigen.

    Nun, warum erzähle ich das?

    Solange ich mit Kommandos auf Ereignisse reagiere, kann ich mir eine "Steuerung" so vorstellen, als ob ich über die Ereignisverwaltung arbeite. Wenn ich mir selbst eine Oberflache schaffe, gehe ich über die Ereignisverwaltung hinaus, da die Schnittstelle mehr Möglichkeiten bietet.

    Und hier bin ich an Deiner Frage angelangt, nach einer Abfrage von statischen Werten.

    Zitat

    -Zug soll erst fahren wenn Signal 1 auf grün steht(also ständiges senden des Kommandos [401;s1]

    Da ich aktiv ein Kommando senden muß, würde dies bedeuten, daß ich ständig dieses Kommando sende um an die Information zu gelangen, wann das Signal schaltet. Nun bietet mir das MBS diese Information ja schon in Form von einem Ereignis (ID200). Also würde ich dieses Kommando nur einmal beim Start senden (ob das Signal schon auf grün steht) und dann nur noch das Ereignis auswerten. (Ist jetzt keine Kritik an Deinem Beispiel, sondern eine rein logische Überlegung...)

    Zitat

      -wie kann ich nun auch statische Rückgabewerte vom MBS überprüfen(ID 401 oder ID 304 oder ID 370 usw.)

    Lapidar gesagt, indem ich das entsprechende Kommando sende... hilft Dir natürlich nicht weiter...

    Da kommt es auf den Grund an warum... Ist es eine Reaktion auf ein Ereignis?, habe ich ein Bedienelement (Button/Schaltknopf) auf einer Bedienoberfläche den ich betätigen muß um das Kommando zu senden?, möchte ich eine zyklische Abfrage über einen Timer/Zeitgeber?

    Nun, alle drei Möglichkeiten sind über die Schnittstelle umsetzbar und Anzeigen kann man auch etwas, es muß allerdings in der Bedienoberfläche auch ein "Anzeigeelement" vorhanden sein...

    ... nun hoffe ich, daß ich Dich nicht zu sehr erschreckt habe... aber einfach nur ein Programm einstellen mit ein paar Erklärungen zur Funktion wolle ich nicht...

    Zitat

    Ich hoffe ich konnte mich etwas verständnisvoll ausdrücken, ist schriftlich ganz schön schwer, wie ich feststellen muss.

    ... gilt auch meinerseits. (Beispielprogramm kommt noch...)

    Gruß

    EASY

  15. Hallo,

    nachdem mich jemand per PN darauf angesprochen hat, daß es etwas mühseliger ist die Wege durch nebeneinanderlegen zu verbreitern, gibt es noch einen Satz Wege mit doppelter Breite im Katalog.

    Gruß

    EASY

     

  16. Hallo Henry,

    Seehund hat es (trotz schlechter Augen) richtig erkannt...

    Wenn Du die Bodenplatte von unten betrachtest, dann kannst Du sehen, daß der Kasten durch die Platte geht... somit wird darstellungsmäßig der "Filzteppich" auch verschoben...

    Risiken und Nebenwirkungen hierzu sind nicht bekannt.

    Gruß

    EASY

  17. Hallo Neo,

    ... eigentlich ist es mir klar, aber lieber noch einmal nachgefragt:

    Zitat

    Je weniger Keyframes du für eine Animation benötigst, desto besser, denn desto weniger Speicher verbraucht die Animation.

    ... soll also heißen, daß man auf jeden Fall beim Export einer Animation "Keyframes only" und nicht "Full Animation" aktivieren soll.

    Aber neugierig wie ich bin, würde mich trotzdem noch interessieren, wenn ich "Full Animation" auswähle, muß dann das MBS trotzdem noch Zwischenschritte interpolieren, weil es doch eventuell (zeitlich / aus Synchronisationsgründen) nicht ganz passt?

    Gruß

    EASY

×
×
  • Neu erstellen...