Alle erstellten Inhalte von EASY
-
MBS Companion V2
Hallo, ... das ist nicht ganz so einfach. Bei geraden Gleisen geht es. Bei gebogenen Gleisen müßte man ja bei einer Drehung um 180° die Definition des Winkels im Vorzeichen umdrehen, was nur manuell gemacht werden kann. Noch schlimmer ist eine frei geformte Spline, die müßte manuell neu geformt werden. Es gäbe prinzipiell eine einfache Lösung... Es gibt 2 verschieden definierte Textfelder... "Text0" würde dem normalen Textfeld entsprechen, bei Text180 ist in der Definition des Textes, dieser doppelt gespiegelt. (Beide Darstellungen bei 0°) Wenn nun Dein Programm erkennen würde, daß das Referenzgleis um 180° gedreht ist, nimmt es für die Beschriftung "Text180" und ohne zusätzliche Drehung "Text0" Dies hätte den Vorteil, daß die Darstellung der Richtung z.B. durch das letzte Zeichen des Textes dargestellt werden könnte. ">" positive Richtung, "<" negative Richtung, "x" beide Richtungen. (Dies wäre durch den Anwender auch einfach editierbar) ... in beiden Fällen wäre die Richtung über die Beschriftung eindeutig feststellbar. (Auslesen des Textes über das mit dem Gleis verknüpften Textfeldes und Auswertung des letzten Zeichens) Das eigentliche Problem dabei ist nur, daß es "Text180" nicht im Katalog gibt. Ich habe es mir zwar selbst erstellt, hat allerdings den Nachteil, daß es eine fixe Größe hat und es bei längeren Texten Darstellungsprobleme gibt. Ob @Neo ein solches (dynamisches) Textfeld als eigenständiges Modell (Variante geht nicht, wenn Du das Textfeld über die ID in Deinem Programm aus dem Katalog einfügen möchtest) zur Verfügung stellen würde, müßtest Du mit ihm aushandeln. Gruß EASY
-
MBS Companion V2
Hallo, noch ein Versuch der Interpretation: Ich (Anwender) möchte von A nach B. Im Idealfall sucht mir Dein Programm eine Strecke mit der ich einverstanden bin. Dann möchtest Du die beteiligen Blöcke dahingehend mit einem Hinweis versehen, in welche Richtung sie befahren werden (ist ja auch wichtig zu wissen, damit Signale auch so aufstellt werden, daß sie eventuell nicht von hinten "gelesen" werden). Aus weiteren Strecken würde sich ja dann ergeben, ob ein Block nur in einer oder beide Richtungen befahren wird. Du möchtest den Hinweis an einem Gleis innerhalb des Blockes "befestigen", so daß der Hinweis zwar der Orientierung des Gleises folgt, aber dies unabhängig davon ob das Gleis "normal" gedreht oder zusätzlich um 180° gedreht ist. ... hoffentlich nicht... und wir kommen der Sache näher... Gruß EASY
-
MBS Companion V2
Hallo gmd, nach meiner Meinung mußt Du etwas differenzieren zwischen der Summe aller Möglichkeiten (alle Wege führen nach Rom) und den Möglichkeiten, die der Anwender dann nutzen möchte. Nehmen wir gedanklich einen 2-gleisigen Streckenabschnitt. Wenn man nur Ausgelegt ist auf einen schnellen Fernverkehr, dann kann man schon definieren, daß links bevorzugt von Nord nach Süd und rechts von Süd nach Nord gefahren wird. So kommt man sich nicht in die Quere und kann die Taktzahl erhöhen. Als Anwender könnte ich aber auch definieren, daß der rechte Abschnitt für den Güterverkehr "reserviert" ist ... kommt dem Fernverkehr nicht in die Quere (und es stört mich nicht, da der Fernverkehr sowieso eine geringe Taktzahl hat) dann wäre Deine "bevorzugte" Fahrtrichtung schon wieder hinfällig... was ich damit sagen will ist, daß bevor nicht festgelegt ist, wie die Strecke genutzt werden soll, eine Bevorzugung der Richtung nicht möglich ist. Vielleicht ein etwas einfaches Beispiel, aber ich hoffe Du verstehst wie es gemeint ist (und ich das was Du meinst, richtig interpretiert habe) Gruß EASY
-
MBS Companion V2
Hallo @gmd, ich hatte mir mal eine Streckenverfolgung programmiert, die allerdings darauf basierte, daß die Gleise als solches zur Darstellung genommen wurden und farblich über die Zuweisung einer Tauschtextur farblich gekennzeichnet wurden. Mein Lösungsansatz für die Erkennung der Richtung war folgender: Ich habe mich (mit mir) darauf geeinigt, was die "positive" Fahrtrichtung ist. Bei meinem Startgleis habe ich dann nachgesehen, ob diese Richtung in Richtung Gleisanfang oder Gleisende zeigt. Wenn z.B. die Fahrtrichtung in Richtung Gleisende gezeigt hat dann war die Vorgehensweis folgende. Da das Anfangsgleis und das nachfolgende Gleis einen gemeinsamen Punkt haben (Gleisverbindung), mußte ich dann nur noch überprüfen ob das Ende des Anfangsgleises mit eine Anfang des nachfolgendem Gleis zusammentrifft (->Gleise haben gleiche Orientierung) oder ob das Ende des Anfangsgleises mit dem Ende des nachfolgendem Gleis zusammentrifft (-> nachfolgendes Gleis ist um 180° gedreht ). Somit konnte ich für jedes Gleis die "richtige" Richtung bestimmen... (Setzt allerdings "saubere" Gleisverbindungen voraus) ... ist allerdings schon etwas lange her (2016)... ... vielleicht hilft Dir das ja etwas weiter mit Deinem Fahrtrichtungsproblem... Gruß EASY
-
CPU/GPU Vergleich
Hallo gmd, ... es gibt immer wieder Diskussionen über die geringe fps beim MBS (im Vergleich zu anderen grafikintensiven Programmen). Da ich nicht so viel Ahnung dazu habe, möchte ich mir allerdings kein Urteil darüber erlauben... Gruß EASY
-
MBS Companion V2
Hallo @gmd, es ist zwar nicht ganz passend zu diesem Thema... aber vielleicht doch... Du hast hier deine "große Anlage" vorgestellt. Bei der Ansicht sind mir einige nicht ganz gute Gleisverbindungen aufgefallen (2D technische Zeichnung) ... vielleicht als Test, ob Dein Programm diese auch erkennt? ... und das "vergessene" Gleis... ... auch noch Gruß EASY
-
CPU/GPU Vergleich
Hallo, ... meine onboard grafikkarte (Itel UHD Graphics 730) schafft es immerhin in der totalen Ansicht noch mit 7 fps / 5 fps (Intel i5-11400 @2.6 GHz) P.S. da ich keine Anlagen baue, reicht mir das um mal in andere Anlagen rein zu sehen... Gruß EASY
-
Objektrotation falsch angezeigt
Hallo @Neo, das mit in der z-Drehung falsch angezeigte Gleis hat eine interessante "Eigenschaft"... ... wenn man Duplikate so aufreiht... ... ist deutlich eine Steigung zu erkennen. Ein Duplikat... ... mit dem Manipulator y in die Länge gezogen zeigt dann auch die Steigung an... und die entsprechende Verdrehung in der x-Achse... ... wobei sich die Drehung in der z-Achse wieder (fast) normalisiert (-90°). (Das Gleis ist in seiner Grundorientierung 0° wieder y-orientiert) ... vielleicht hilft Dir das ja bei der Analyse des Problems... Gruß EASY
-
Geringe Maßabweichungen
Hallo, noch ein kleiner Nachtrag: Ich habe gerade festgestellt, daß ich für andere Versuche noch Maßstab H0 eingestellt hatte.... daß es in bestimmten Positionen eine/keine mit der x-Verschiebung gibt, ändert sich aber auch nicht, wenn ich dem Maßstab auf 1:1 umstelle und auf den entsprechenden Positionen bin... (warum auch... intern wird ja doch nur die Skalierung der Maße umgerechnet...) Gruß EASY
-
Geringe Maßabweichungen
Hallo, wie es aussieht haben wohl beide richtig beobachtet... bei mir ist es von der x-Position abhängig ob die Verschiebung statt findet oder nicht... Aus dieser Ausgangsposition findet eine Verschiebung in x statt... ... mit dem Mausrad in y auf -350 ... ... mit dem Mausrad in y wieder zurück auf 0... Aus dieser Ausgangsposition findet keine eine Verschiebung in x statt... ... mit dem Mausrad in y auf -350 ... ... mit dem Mausrad in y wieder zurück auf 0... Anmerkung: in beiden Positionen tritt die x-Verschiebung auch auf bzw. nicht auf wenn man mit dem Mausrad in z-Richtung verschiebt. ... von meiner Seite nichts ... das ist wohl eine Problemstellung für @Neo Gruß EASY
-
Maximale Zeichenlänge JSON Kommando
Hallo, ich habe es getestet und mir mit... Encoding.UTF8.GetByteCount(Command) ... die Byte von "Command" ausgeben lassen. Die Grenze liegt bei 2^14, also die 16k, die @Neo vermutet hat. ... es kommt eben darauf an, was man machen möchte. Bei mir ist z.B. eine Sendeeinheit (2 Kommandos)... und da ist die Grenze schon bei 45 Einheiten erreicht, was für die Bildung von einem 3D-Objektstapel nicht wirklich viel ist... Gruß EASY
-
Maximale Zeichenlänge JSON Kommando
Hallo @Neo, ... konntest Du schon testen? Nachdem Du an anderer Stelle an @gmd geschrieben hast... ... wäre für mich schon interessant ob der "Fehler" beim MBS liegt, denn damit kommt man noch schneller an die Grenze... Gruß EASY
-
EASY's kleiner Modellbau
Hallo, ... stimmt ...die Tenderbeleuchtung habe ich bei der Überarbeitung nicht berücksichtigt. Danke für den Hinweis... wird überarbeitet. Gruß EASY
-
Gleisgeometrie per Steuerschnittstelle
Hallo, die Rückgabe ist auch ein JSON-Array und bei meinen Versuchen in der Reihenfolge. (Zur Not gibt es ja noch die id zum Auswerten oder Selektieren von relevanten Antworten)... Gruß EASY
-
Darstellung von Umlauten und Sonderzeichen JSON Schnittstelle
Hallo @Neo, Es ist mir gelungen, die Newtonsoft.Json Bibliotek unter VB zum laufen zu bringen. Damit erledigt sich für mich das Problem mit den Umlauten und Sonderzeichen. Sie werden dort dann richtig dargestellt. Gruß EASY
-
Darstellung von Umlauten und Sonderzeichen JSON Schnittstelle
Hallo, ... Deine Antwort bringt mich nicht so richtig weiter. Wenn ich mir das Kapitel 2.5 durchlese, bin ich offen gestanden nur unwesentlich schlauer (ich bin kein Programmierer) Ich entnehme Deiner Antwort, daß es eben so ist, daß im string den die Schnittstelle sendet, Sonderzeichen und Umlaute als \uxxxx dargestellt werden... (weil "normales JSON"). Für die Verarbeitung verwende ich keine spezielle Bibliothek. Ich nehme den Antwortstring und da dieser im Aufbau einer gewissen Logik folgt, extrahiere ich mir daraus die für mich notwendigen Informationen... Gruß EASY
-
Darstellung von Umlauten und Sonderzeichen JSON Schnittstelle
Hallo @gmd, ich muß wohl eigene Wege gehen. Wie es aussieht geht die Library Newtonsoft.Json nicht unter VB. Wenn ich etwas daraus aufrufe kommt folgende Meldung: Gruß EASY
-
Drehregler mit Mausrad "überdrehbar"
Hallo, ... mal als Entwurf hochgeladen F9FD76BF-26A5-400E-87AF-EA576BA2C0DF Dies würde der derzeitigen Definition im MBS V9 entsprechen. 100% ist der höchste Skalenwert (330, 220, 110, 55)... also ohne "Totzohne". Wie gesagt, zeigt nur richtig an, wenn das verbundene Fahrzeug den entsprechenden Wert als Höchstgeschwindigkeit eingestellt hat oder wie bei Dir die Flughöhe entsprechend ist. Gruß EASY
-
Darstellung von Umlauten und Sonderzeichen JSON Schnittstelle
Hallo @gmd, vielen Dank für Deine bisherigen Antworten... ich fühle mich momentan etwas überfordert (gleichzeitig bin ich aber auch neugierig geworden, da ich mich auch gerne mit zuerst Unbekanntem beschäftige). Erst einmal kleine Schritte (für Hobbyprogrammierer wie mich)... da würde mich einmal Interessieren, was @Neo dazu sagt. Ist das "normal" zu erwarten, oder gibt es da noch eine Verbesserung? ... auf die bin ich auch schon gestoßen. Ich muß mich allerdings erst einmal damit beschäftigen, wie ich das in mein Projekt mit einbinden kann... Da ich neugierig bin, habe ich schon Interesse. Ich weiß nur nicht, ob das etwas viel auf einmal ist und ich erst einmal viel mehr Fragen als Antworten habe... Gruß EASY
-
Darstellung von Umlauten und Sonderzeichen JSON Schnittstelle
Hallo, Die Codierung ist (bei mir) leider egal... Dim C_Client As Net.Sockets.TcpClient 'Kommando-Client Dim C_Stream As NetworkStream 'Kommando-Stream Dim C_Write As StreamWriter 'Kommando schreiben Dim C_Read, As StreamReader 'Kommando Ergebnis lesen Public Function Connect(Optional IP As String = "127.0.0.1", Optional Port1 As Integer = 31385) As Boolean C_Client = New Net.Sockets.TcpClient Try C_Client.Connect(IP, Port1) ' C_Client verbindet sich über IP / Port1 C_Stream = C_Client.GetStream ' Stream1 wird auf C_Client verwiesen C_Write = New StreamWriter(C_Stream, Encoding.UTF8) ' Stream1 zum Senden wird deklariert C_Read = New StreamReader(C_Stream, Encoding.UTF8) ' Stream1 zum Empfangen wird deklariert Console.WriteLine("Codierung= " & C_Read.CurrentEncoding.ToString) Catch ex As Exception CE_Error = ex 'Systemfehlermeldung zwischenspeichern Return False End Try Return True End Function Console.WriteLine("Codierung= " & C_Read.CurrentEncoding.ToString) liefert Codierung= System.Text.UTF8Encoding (was so sein soll) Wenn ich nun das Kommando "editor.getSelectedEntities" sende (Objektname "Quäsßter") und mir durch... Console.WriteLine("Codierung= " & C_Read.CurrentEncoding.ToString) Console.WriteLine("Result=" & C_Read.ReadLine) Console.WriteLine("Codierung= " & C_Read.CurrentEncoding.ToString) Console.WriteLine("Quäsßter") ... das Ergebnis anzeigen lasse, habe ich dieses Resultat... Console.WriteLine("Codierung= " & C_Read.CurrentEncoding.ToString) liefert Codierung= System.Text.UTF8Encoding... ...liefert das richtige Ergebnis... nur der Antwortstring ist immer noch falsch und an der Console kann es auch nicht liegen da mit Console.WriteLine("Quäsßter") richtig geschrieben wird... ... bin etwas ratlos Gruß EASY
-
Darstellung von Umlauten und Sonderzeichen JSON Schnittstelle
Hallo @Neo, das einzige große Problem, das ich mit der Schnittstelle momentan habe ist, daß Umlaute und Sonderzeichen als \uxxxx dargestellt werden. Ich habe die Verbindung zum MBS im Visual Studio (VB), ZeroBrane Studio (lua) und mit PuTTY aufgebaut und komme immer zum gleichen Ergebnis. Da ich mir nicht anders zu helfen wußte, habe ich mir z.B. im Visual Studio einen "Übersetzer" gebastelt... If Result.Contains("\u") Then Dim s As String = Result Dim b As String Dim c As New List(Of String) c = Split(s, "\u").ToList For i = 0 To c.Count - 1 b = c(i) If i > 0 Then Dim h As String = b.Substring(0, 4) c(i) = c(i).Replace(h, Char.ConvertFromUtf32(Convert.ToInt32(h, 16))) End If Next Result = String.Join("", c) End If ... was prinzipiell natürlich nur eine Notlösung ist. Woran kann das liegen? (ich habe in keinem anderen Programm ein Problem mit Umlauten und Sonderzeichen...) [Windows 11 pro] Gruß EASY
-
Plugin 'Objektreihen setzen V9'
Hallo, ... done! (erledigt!) Gruß EASY
-
Drehregler mit Mausrad "überdrehbar"
Hallo @Eggu, Bis zur Version V9 war die Referenzgeschwindigkeit für die Anzeige 100% 330 km/h. Somit konnte nur die Anzeige des Reglers begrenzt werden. In V9 entspricht 100% der eingestellten Höchstgeschwindigkeit das verbundenen Fahrzeugs. Damit ist es zwar möglich, daß 100% Anzeige auch 100% Regler entspricht. Somit muß also nicht die Anzeige des Reglers begrenzt werden, sondern nur die "richtige" Skala vorhanden sein. Hierfür muß allerdings die Animationsdefinition des Modells geändert werden. Der Nachteil ist, daß es prinzipiell 330 verschiedene Höchstgeschwindigkeiten gibt, die im Fahrzeug eingestellt werden können, was zu 330 Varianten des Modells führen würde (um es einmal etwas übertrieben darzustellen...) Um die Vielfalt zu begrenzen, müßte man sich also auf "Standard"-Höchstgeschwindigkeiten einigen, was (wie die Erfahrung zeigt) nicht ganz einfach ist... da bestimmt noch jemand eine Lok findet, die mit max. 77km/h durch die Gegend fährt und möchte auch dies ganz genau angezeigt haben... Gruß EASY
-
Plugin 'Objektreihen setzen V9'
Hallo, danke für den Vorschlag... es ist möglich beides umzusetzen. Die neue Schnittstelle ist für solche Aktionen nicht mehr ausgelegt. Es gibt nur die in der wiki beschriebenen Kommandos. für Objekte. Weitere "Kommandos" gehen dann nur über "layout.invokeScript" und da ist der "Befehlssatz" auf die Möglichkeiten, die lua im MBS bietet, beschränkt. Da ich kein Programmierer bin, verwende ich Visual Basic im Visual Studio 2022. VB kannte ich schon etwas und ich wollte keine neue Programmiersprache lernen. Gruß EASY
-
Plugin 'Objektreihen setzen V9'
Hallo, Um mich mit der neuen Schnittstelle etwas vertraut zu machen, habe ich das Plugin "Objektreihen setzen" auf die JSON-Schnittstelle umgeschrieben und noch etwas erweitert. Die Beschreibung in der "Hilfe": ... wer mag, kann die Testversion gerne einmal testen. Als Entwurf hochgeladen 34C25CBF-1DA1-4F6E-9D22-36ECAB15CDE5 (bei "Plugins" unter "Suche" eingeben) Kommentare und Rückmeldungen... wie immer gerne. Gruß EASY