-
Gesamte Inhalte
5517 -
Benutzer seit
-
Letzter Besuch
Alle erstellten Inhalte von Andy
-
Aufbau einer ersten Anlage mit Hang zur Weiterentwicklung
Andy antwortete auf CC.SDLs Thema in Fragen zur Planung
Auf meiner ersten kleinen Anlage habe ich die Tasten 0-9 auf Kamerapositionen gelegt, bei denen ich Signale und die wichtigen Weichen schalten konnte. Das erste Ding was mit EV automatisch funktionieren sollte, war der Bahnübergang - noch nicht mal für die Autos, nur auf und zu. So ging's los. Und dann sollte an den Signalen auch angehalten werden, und zwar nur aus einer Richtung. Und bei 'freie Fahrt' go go go. -
Aufbau einer ersten Anlage mit Hang zur Weiterentwicklung
Andy antwortete auf CC.SDLs Thema in Fragen zur Planung
...und Du trägst keine Altlasten mit drin rum, die das Denken beeinflussen könnten. Ja, geh direkt auf V5. -
Aufbau einer ersten Anlage mit Hang zur Weiterentwicklung
Andy antwortete auf CC.SDLs Thema in Fragen zur Planung
Hallo Claudia, was die EV angeht, sind wir bei V5 bei einer Art Neuanfang. Alte Muster müssen überdacht werden, neue müssen sich erst bilden. Die Möglichkeiten sind jetzt jedenfalls gewaltig. Nur mit diesen Möglichkeiten hat eigentlich noch keiner Erfahrung. Das heißt aber auch, dass fast alle Anlagen (die von fzonk und mir mal ausgenommen) in V4 mit ganz einfachen Methoden auskamen, und so auch in V5 laufen sollten. Aber es gibt jetzt z.B. die Kontaktpunkte, mit denen man ohne große Kopfstände Dinge machen kann, die auf die Fahrtrichtung einer Lok eingehen. Damit werden u.a. Kopfbahnhöfe attraktiver, oder kleine Lokalstrecken, die aus nur einem Gleis bestehen. Größere Rangiermanöver wird's geben. weil im Hintergrund auch richtig gerechnet werden kann. Im Straßenverkehr denke ich, da müssen wir fast wieder bei Null anfangen und uns sogar fragen, ob zwei- (oder mehrspurige) Fahrbahnen für 'intelligenten' Verkehr überhaupt verwendbar sind. Die Ansprüche steigen - so einen Bus an der Haltestelle kann man doch auch überholen usw. Vor einem halben Jahr haben wir uns wundexperimentiert an einer Abzweigung mit Feuerwehreinsatz. Mit den GBS-Dingen ist es so eine Sache. Ja, man kann sie nehmen um Abläufe zu schalten. Aber es bleibt das alte Problem: wenn ich das GBS im Bild habe, dann nicht die Anlage und umgekehrt. Vielleicht können wir einige Schaltelemente über die abfragbaren Daten der aktiven Kamera mitführen. Ob's geht, ob's ruckelt, ob's aus dem Bild geht, wenn man dreht oder zoomt, das weiß noch niemand, da es noch keiner probiert hat. Insgesamt sind wir da jetzt auch auf die Erkenntnisse von Experimentierfreudigen angewiesen. Meine Meinung: warte noch etwas, bis V5 sich stabilisiert hat und die volle Doku da ist, und die ersten Anderen ein wenig Erfahrung gesammelt haben, damit überhaupt Infomaterial da ist. Ralf macht's mit seiner Anlage ja genauso. Bastel weiter an der Umgebung. Warte mit der Steuerung. Soweit, wie ich die Dinge im Augenblick sehe. Es gibt da ein paar wesentlich erfahrenere Anlagenbauer, deren Meinung dazu mich auch interessieren würde. Gruß Andy -
Mahlzeit Neo, keine Fehlermeldung, nur Ideen: Wenn eine Gruppe umbenannt wird, könnte man den neuen Namen automatisch den eingebundenen Objekten als Präfix den Gruppennamen davorsetzen. Das verhindert, dass sich bei Kopien zuviele Namen verdoppeln. Wird der Name geändert, alten Namen (den vor Editierung merken) als Präfix löschen, neuen davor. Wird wieder 'Gruppe' eingegeben, nur das letzte Präfix löschen und damit wieder neutralisieren. Dann noch: Man kann eine Gruppe zwar als neues eigenständiges Objekt erzeugen, aber wie ich gesehen habe, gehen dabei auch die Objektvariablen verloren. Das ist nicht schön. Nehmen wir mal meine Seilbahnkonstruktion, zu der mit Tal/Bergstation, Gondeln, Masten etc. einiges dazugehört. Jetzt möchte ich die so in eine andere Anlage rüberbringen. Einfügen aus anderer Anlage geht ja, aber da kommen alle anderen Ebenen und was weiß ich auch noch rein, das alles wieder weggelöscht werden muß. Nicht gut. Als Gruppe aus dem Katalog wäre es prima. Das zugehörige Skript kann man ja über externen Editor rüberbringen. Aber, da sollten halt auch die OV überleben. Hoppla, das geht mit V5! Und auch über MBE Im/Export. PRIMA! Gruß Andy
-
Ich habe irgendwann angefangen mit direkten Koordinaten zu arbeiten, aber die Hilfsmittel bin ich auch schon alle durch. Die sind schon praktisch. Besonders, wenn man nicht rechtwinklig zum Universum steht. ps: Dreiecksberechnungen und sin/cos habe ich noch nicht gebraucht. Das geht jetzt los beim automatischen 'Durchhängen' der Seilbahngondel. Und geht schon mal los und schaut, wie Regler (nicht die für die Geschwindigkeitsansteuerung von Loks!) programmiert werden
-
Ralf, mach am Ende das erste MBS-Buch draus
-
There's more to be done, if you have more 'enter'-Events. Then you should use a keyword for all your objects that fulfill the set of object variables, or will get soon a nil-error. In V4 we filtered the type by asking if a specific object-variable is available at all. A keyword, set into all those objects that can come in here saves us from that. No other track would launch this event!
-
The old _Trigger1 and _Trigger2 are automatically translated into the corresponding thing causing the event. So your command automatically should come in as something like that: Trains/Vehicle enters track/street any track Action: set variable Name [track]...switch1 ..status... = Value [track]...switch1...Reserve.. So your old Trigger2 are now [track], In my sample it's a switch causing the event, so in Trigger, you have to select switch - then indirections. notice the number and sequence of 'wheels' for the level of indirections. (the scroll bar shows, it goes deeper)
-
@Neo, kannst mal 'ne Flasche Sekt aufmachen. Die 'Mobile' läuft nun auf V5. Das heißt, Du hast da schon einiges richtig gemacht! Zum studieren hochgeladen. Ein paar Lua-Dinge sind drin, ist aber alles noch nicht großartig optimiert. Hauptsache, sie läuft. Es gibt auch noch keinen Kontaktpunkt! Entwurf: 0BC7A61B-E89E-421F-AE6A-F896AF8D04C3 Gruß Andy p.s.: ein Hinweis noch, wenn man das generelle Verhalten mal 'erahnen' will: Direkt nach dem Laden das Ereignisprotokoll öffnen, nicht starten, nur (bei offenem Protokoll) den Automatik-Button drücken. Jetzt 'fährt er hoch'. Er initialisiert die Fahrpläne für alle Loks. Bei Fahrplan05 trifft er auf die Startzeit 3:00 und behandelt deshalb sofort den Auftrag (da die Uhrzeit mit 3:00 beginnt). Ein weiterer Auftrag will eigentlich auch um 3:00 rein - geht aber nicht, da für den ersten noch etwas zu tun ist. Er geht auf 'delayed' und wird es wieder versuchen, wie er es auch bei einem geblockten Fahrweg tun würde. Damit hat man eigentlich das wichtigste Prinzip schon gesehen.
-
und bei mir ist er aus einem Ereignis ausgestiegen, in dessen Bedingung ein Vergleich mit einer bereits gelöschten globalen Variablen stand, wobei er da kein 'attempt ... nil' geworfen hat! Wenn eine Variable gelöscht wird, sollte er erst einmal prüfen, ob die irgendwo noch verwendet wird, falls ja - nicht löschen, soll in Suche nach den Stellen suchen, wo sie auftaucht und anpassen (praktisch die Error-Stufe). Ist sie nicht mehr vorhanden, aber irgendwo (nicht als Teilstring sondern als kompletter String) noch verwendet, dann warnen! Dann könnte sie ja indirekt verwendet werden. Mit Löschoption. Beim Umbenennen wird die Errorstufe nicht gebraucht, die Warnstufe hingegen wäre sinnvoll. Gruß Andy
-
Jaaaaaaaaa jetzt ist der Set komplett! Danke Danke Andy
-
okay, die habe ich nicht im Programm, weil die bei jedem Rechner irgendwo anders liegen.
-
...aber nicht, wenn Du vorne stehst und mit gedrückter Shifttaste Cursor runter drückst. Das macht er dann nämlich nicht. Für V6 könntest Du mal über die Möglichkeit nachdenken, den Scintilla einbinden, dafür ist es jetzt wohl zu spät. So einfach einzubinden, wie das angepriesen wird, ist es bestimmt auch nicht.
-
Irgendwo hat man da als Vieltipper so eine Automatik drin, und wehe, die läuft nicht wie gewohnt! Derzeit kopiere ich mir den Inhalt direkt nach Notepad++ und zurück. Hat bei mir auch was mit den Augen zu tun. Es hat doch etwas größere Buchstaben und ich habe ein Layout mit schwarzem Hintergrund. Weißer belastet mich. Kann Neo nix für.
-
Habe noch einen Wunsch, der mir fürchterlich in den Fingern juckt: Beim Lua-Editor komme ich gerade noch damit klar, dass der Cursor nach dem letzten Buchstaben in einer Zeile nicht in die nächste geht (das ist schon ungewohnt schlimm), aber er sollte beim Abwärtslaufen wenigstens unter die letzte Zeile gehen. Wenn man da mal schnell was markiert, nimmt er die letzte Zeile nie mit. Schau bitte, bitte mal, ob da was möglich ist - wenn die anderen das auch so möchten. Gruß Andy
-
Wenn man die EV aufklappt, beginnt sie oben mit Timer, Variablen, Skript. Geht man dort in die Variablenliste und ändert einen Namen, wirkt sich das nicht auf den Programmcode aus. Sehr fatal! Außerdem wäre es sehr schön, wenn man hier einen Timer oder eine Variable in ein Modul rüberziehen könnte. Von V4 kommend landet alles auf oberstem Level. Später möchte man es schon ordnen. Gruß Andy
-
Ja, die müssen sein! Ich wundere mich, warum Brummi nach der Framerate fragt, denn im Feuerwehr-Video sieht man, dass da noch nicht mal ansatzweise was am Ruckeln ist, auch wenn er um die Kurve fährt und viele neue Texturen in den Cache kriegt. Respekt! Muß mal sehen, wie mein Rechner da im Vergleich abschneidet. Meine Anlage auf dem Rechner meines Bruders mit dem Riesenmonitor, da sieht man Dinge, die sieht man sonst nicht (eben auch kleine Fehler!). Gruß Andy
-
Mahlzeit, ich bin noch ein wenig übernächtig, weil ich heute bis morgens um halb 10 eine Version flicken mußte. Meine Anlage bedarf einer Grundstellung und ich bin dann mitten im Ablauf am werkeln und drücke gewohnheitsmäßig auf Speichern. Patsch! Das war's. Die Vorgängerversion zwar nur einen Tag alt, aber schon hoffnungslos veraltet. Mein Vorschlag zum Seelenheil: da man das Speichern gewohnheitsmäßig viel zu schnell 'abklatscht', würde ich bitten, dass von der derzeitigen Anlage ein .bak erstellt wird. Ein altes .bak weglöschen, die zu überschreibende in .bak nennen und dann neu speichern. Also nur ein .bak im Katalog. Das hätte mir heute nacht einige Haare gerettet. Gruß Andy
-
ich habe auch noch was gefunden. Nach dem Ändern der Bezeichnung einer Objektvariablen hat er überall erstmal nur den alten Namen drin, mit dem er auch arbeitet (hier 'Auftrag' des Objekts 'Auftragshandler'. Der neue Name ist 'Auftraggeber'.) Ist das erste eine Zuweisung, legt er den natürlich neu an und keiner merkt den Fehler. Liest er zuerst, sind wir wohl wieder am Nil. Im Bild habe ich die ersten beiden Zugriffe korrigiert, dann haben wir die, wie's unkorrigiert ist. Schaut man sich solch eine Zuweisung mal an, hat er dort den neuen Namen in der Auswahlliste (!), den alten nicht mehr. Jetzt muß man irgendwie Glück haben, an die richtige Stelle zu klicken. Dann übernimmt er es auch. Ansonsten bleibt er da recht hartnäckig. Schaltet man auf Lua, sieht man, dass er wirklich den alten Namen verwendet. Noch ein Wunsch: Wie bereits erwähnt, arbeite ich öfters mit einer Objektvariable Status, die dann einen Texteintrag bekommt. Es wäre schön, wenn wir im Suchfenster auch eine Klasse 'Strings' hätten und nach derlei Texten suchen können. Texte im Code lassen sich derzeit nicht finden. Gruß Andy p.s.: die sichere Klicksequenz um den Namen doch anzupassen: erst einen anderen Namen auswählen, abklatschen, und dann nachkorrigieren.
-
das einzige Risiko dabei ist, wenn Du V4 noch nicht lange nutzt, dass es Dir insgesamt dann doch nicht so viel Spaß gemacht hätte. Aber Du hast da schon einen Gegenwert!
-
@EASY, kopiert aus der Lua 5.3. docu 8.2 – Changes in the Libraries The bit32 library has been deprecated. It is easy to require a compatible external library or, better yet, to replace its functions with appropriate bitwise operations. (Keep in mind that bit32 operates on 32-bit integers, while the bitwise operators in Lua 5.3 operate on Lua integers, which by default have 64 bits.) The Table library now respects metamethods for setting and getting elements. The ipairs iterator now respects metamethods and its __ipairs metamethod has been deprecated. Option names in io.read do not have a starting '*' anymore. For compatibility, Lua will continue to accept (and ignore) this character. The following functions were deprecated in the mathematical library: atan2, cosh, sinh, tanh, pow, frexp, and ldexp. You can replace math.pow(x,y) with x^y; you can replace math.atan2 with math.atan, which now accepts one or two arguments; you can replace math.ldexp(x,exp) with x * 2.0^exp. For the other operations, you can either use an external library or implement them in Lua. The searcher for C loaders used by require changed the way it handles versioned names. Now, the version should come after the module name (as is usual in most other tools). For compatibility, that searcher still tries the old format if it cannot find an open function according to the new style. (Lua 5.2 already worked that way, but it did not document the change.) The call collectgarbage("count") now returns only one result. (You can compute that second result from the fractional part of the first result.)
-
Mal sehen, ob einigen unsichtbaren Gleisen demnächst das Stündlein schlagen wird, wenn man den 'fahrenden' Objekten direkt in die Koordinaten reinrechnet. Da dürfte für die Surfer sogar ein Salto drin sein. Man könnte sogar mit dem Flexmobil wild in der Landschaft rumfahren, mit der Lenkung fest im Bild, denn Zugriff auf die Positionen der aktiven Kamera gibt's auch, wie ich gesehen habe. Jetzt bräuchte man nur noch die Höhenangabe, wo man sich befindet. Ich werde da mal weiter an Neo arbeiten Gruß Andy
-
In der Tat habe ich es so gelöst. Meine Fahrpläne können einiges, brauchen dafür aber einen Status, der in einer OV hinterlegt ist. Diese können sowohl von außen, als auch intern geändert werden und der Fahrplan muß darauf reagieren. Da ist eine Zugankunft, ein Auftrag der noch nicht abgewickelt werden kann etc. Nach einer Statusänderung muß ich jetzt aber jedesmal den als Schalter ausgelegten Fahrplan noch einmal 'Umschalten' um überhaupt ein Ereignis auszulösen. Damit geht das schon. 'Sauberer' wäre es, wenn man auf ein Ereignis Variable FAHRPLAN.Status gesetzt reagieren könnte. Da spart man das Schalten und könnte auch eine Beschriftung oder so als Basisobjekt nehmen. Also, da läge der Vorteil. Aber es müssen dann ja leider zwei Inputs beim Setzen des Ereignisses geschehen. Ein wenig Aufwand wäre das wohl schon. Und Danke für den anderen Tipp. @EASY Sehr sehr schön! Ich hoffe, mit den neuen Möglichkeiten hast Du wieder richtig Lust, Dich auszutoben. Da ist nicht nur Euler angesagt, sondern eine ganze MBS-Physics-Engine. Mein Lua-Feedback bislang: null problemo. Gruß Andy
-
zum Dritten noch ein Feature-Wunsch: Ich habe eine Klasse von Objekten, denen ich ein Schlagwort zugeordnet habe. Das Ansprechen einer spezifischen Objektvariablen eines bestimmten Objektes hatten wir z.B. gerade im Post vorher. Was ich mir nun aber noch wünschen würde, wäre eine Verallgemeinerung des Objektes über Schlagwort. Das komplette Ereignis würde also lauten: Objektvariable xxx mit Schlagwort yyy wird gesetzt. Ja, das wären letztlich zwei Auslöser, was die Sache bestimmt nicht einfach macht. Oder fällt genau das dann unter die benutzerdefinierten Ereignisse? Dann wäre ich auf einem anderen Weg genau da angekommen, wo fzonk bereits ist - was mich beruhigen würde. Gruß Andy
-
Im manuellen Modus läuft mein Pfadsucher schon wieder wunderbar und richtig schnell! Überhaupt kein Vergleich zu V4. Habe ihn allerdings direkt auf Lua umgesetzt. Trotzdem werde ich das Kapitel mit den benutzerdefinierten Aktionen noch nachlernen. Die interessieren mich schon. Und wie! Man kann da auch noch mit einem Texteditor nachoptimieren: layout:getEntityByName("Mein Objekt") kann immer zu $("Mein Objekt") optimiert werden. Geht aber wirklich nur, wenn da nicht mehr als der Objektname drinsteht. Allerdings gibt's kein Zurück mehr. Einmal Lua, immer Lua. Alles andere wäre auch zuviel verlangt. Gruß Andy