Programmieren für Loksim

  • Hallo,
    nachdem der letzte Bericht schon wieder einige Zeit zurückliegt, wieder mal eine kleine Info wo derzeit meine (/unsere) Baustellen liegen:
    Im Betatest wird schon fleißig das neue Objektsystem ausprobiert und beim Umfang der Änderungen kommen natürlich auch einige Fehler zu Tage. Für mich hält es sich allerdings im erwarteten Ausmaß und sollte die Veröffentlichung der nächsten Version nicht verzögern.


    Neuerungen im Rahmen des neuen Objektsystems die ich bisher hier nicht erwähnt habe:

    • Möglichkeit Normalenvektoren pro Fläche und nicht pro Punkt zu definieren. Außerdem eine Funktion "Normalenvektoren automatisch berechnen" sodass in Zukunft im Objektbau die Normalenvektoren hoffentlich nicht mehr soviele Probleme machen
    • Neue Variablen für Sichtbarkeitssteuerung bzw. (dynamische) Schriften: Streckenmeter, FahrplanDaten::Halt, BedarfshaltBahnsteig und BedarfshaltZug
    • Verbesserung der Steuerung von Sichtbarkeitssteuerung und dynamischen Schriften über den Streckeneditor. Entsprechende Objekte sollten nun für Streckenbauer leichter zu verwenden sein
    • Wiederholung von Objekten anhand beliebiger Achse auf der Strecke

    Das Thema "überschriebene Dateien" ist ein Dauerbrenner im Betaforum, deshalb habe ich hier zwei kleine Neuerungen eingebaut:

    • Der LoksimEdit warnt beim Abspeichern / Überschreiben fremder Dateien indem er den gesetzten Dateiautor überprüft
    • Der PackageManager kann nun für jede Datei anzeigen von welchen installierten Packages diese verwendet wird und von welchem Package sie zuletzt überschrieben wurde

    In "Kooperation" von @chloksim und mir wurde vor Kurzem Qt als neues GUI-Framework in den LoksimEdit integriert. Für Außenstehende keine allzu wichtige Neuerung, für uns allerdings doch eine recht wichtige Sache und eine Art Investition für die Zukunft.


    Nebenbei - wenn Zeit bleibt - arbeite ich dann auch noch an einer kompletten Neuerung der Gleisdarstellung. Bisher funktioniert eigentlich nur die Positionsberechnung für normale und einfache Parallelgleise,.. Sobald das Objektsystem einen stabilen Status erreicht, will ich hier mehr Zeit investieren


    lg
    Lukas


  • meinst du damit, auch auf der x-Achse und y-Achse und nicht nur auf der z-achse?

    Jakob, wie definierst Du "beliebig"?


    Gruss
    Uwe, leicht verwundert

    --
    Wenn du die Götter zum Lachen bringen willst, mach’ einen Plan.

  • Hallo,
    der Sommer neigt sich dem Ende zu und so will ich an dieser Stelle kurz über die Arbeiten in den Sommermonaten berichten. Der Bericht ist recht kurz, an lauen Sommerabenden ist die Programmierlust dann doch dem Feierabendbier oder -grillen unterzuordnen ;)


    Deshalb haben sich meine Tätigkeiten im Sommer hauptsächlich auf Fehlerkorrekturen beschränkt, das meiste davon waren sogar nur "interne Fehler" die in der 2.8.3er noch nicht vorhanden waren. Nach Außen also relativ unspektakulär. Einzig eine neue Variable FahrplanDaten::LastHalt wurde hinzugefügt und die Möglichkeit externe 3D-Modelle ins Loksim-Format zu konvertieren. Letzteres ist eigentlich für interne Zwecke entwickelt worden, deshalb wird die Funktion vorerst nur über die Kommandozeile zugänglich sein.


    Ansonsten bin ich sehr froh, dass @KlausN derzeit an einer kompletten Neugestaltung der Loksim-Dokumentation arbeitet. Somit werden wir bei der nächsten Version endlich wieder eine saubere Gesamtdoku anbieten können. Auch wenn Klaus den Großteil der Arbeit für die Doku übernommen hat, sind wir natürlich hin und wieder gefordert Infos zu liefern bzw. Korrektur zu lesen. Zum Thema "Doku" passt auch mein Vorhaben die OLE- und TCP-Schnittstellen wieder ordentlich zu dokumentieren. Da dies nur für Entwickler interessant ist, wird diese in Zukunft auf Github zur Verfügung gestellt. Fürs erste ist dort mal die OLE-Schnittstelle dokumentiert, irgendwann kommt hoffentlich auch TCP dazu.


    lg
    Lukas

  • Zitat

    ist die Programmierlust dann doch dem Feierabendbier [...] unterzuordnen


    Dieses trinkt sich zumindest beim Strecken- und Objektbau doch nebenbei und wirkt bei mir sogar dem Hobby förderlich. :rolleyes:


    Zitat

    Definiere externe Objekte


    @lukash, steinige mich, wenn ich falsch liege, aber ich glaube


    "Es besteht die Möglichkeit alle von Assimp* unterstützten externen Objektformate zu verwenden. Allerdings ist das Objektsystem immer noch auf L3DGRP- und L3DOBJ-Dateien ausgerichtet. Alles was also nicht mittels L3DGRP- oder L3DOBJ-Dateien möglich ist, kann derzeit auch nicht durch externe Formate umgesetzt werden.


    *siehe http://assimp.sourceforge.net/main_features_formats.html"


    sollte die passende Antwort sein.


    Gruß, Klaus

  • Definiere "externe Objekte"?

    Diese Frage gebe ich weiter ;) - Danke Assimp!
    Wobei derzeit noch die riesige Einschränkung gilt, dass nur "Loksim-Features" der 3D-Modelle unterstützt werden. Also zB keine eingefärbten Vertices, keine Texturkachelung, keine Transparenz außer über Texturen, keine Animationen, keine Beleuchtungsspäße etc...
    Aber wie man bei meinem vorletzten Beitrag mit genauem Hinschauen erkennen kann, ist das durchaus schon jetzt in der Praxis verwendbar. Das Ergebnis kommt aber sehr auf das verwendete Ausgangsobjekt an. Es spricht mE nichts dagegen mit Blender oder ähnlichen Programmen speziell für den Loksim gedachte Objekte zu designen. Mit Blender bin ich überhaupt nicht vertraut, aber zB mit Sketchup könnte sowas schon Sinn machen. Manches geht dort schon um Welten leichter von der Hand wie im LoksimEdit. Man muss sich dabei nur im Klaren sein, welche Features Loksim derzeit unterstützt und welche nicht. Bei (hochdetaillierten) Objekten die man so im Internet findet, wird das Ergebnis aber oftmals nicht so toll sein.


    [Edit]Klaus war schneller :) Und ja, ein Feierabend-Programmierbier ist natürlich hin und wieder auch eine Variante^^[/Edit]

  • Ohja, ich beschäftige mich im Moment ja etwas mit Blender und da ist vieles schon deutlich einfacher als im LSEdit. Von daher ist das eine echt gute Idee. Vielleicht kann ich ja sogar das eine oder andere Objekt zur Zweitverwertung hier "abladen" :)


  • Zum Thema "Doku" passt auch mein Vorhaben die OLE- und TCP-Schnittstellen wieder ordentlich zu dokumentieren. Da dies nur für Entwickler interessant ist, wird diese in Zukunft auf Github zur Verfügung gestellt. Fürs erste ist dort mal die OLE-Schnittstelle dokumentiert, irgendwann kommt hoffentlich auch TCP dazu.


    Echt klasse!
    Ich bin sicher, ich werde öfter darauf zugreifen!


    Gruß
    Jebns

  • Wenn ich nochmal nachhaken dürfte: Lassen sich für Blender-Objekte denn auch Gruppenobjektsfunktionen (Signallichter, Beschriftungen o. Ä.) irgendwie nutzen? Wenn ja - was muss ich dafür beachten?


    Ich bräuchte nämlich immer noch paar Fingerübungen für Blender, da käme ein Satz Schweizer Tafeln / Schilder / N-Signale / sonstiges Kleinvieh eigentlich ganz recht. Viel gibt's in der Ecke ja wimre noch nicht.


    edit: Ach vergesst es, erstmal kommt ja eh nur ne Konvertierung. Damit ist die Frage erledigt, Nacharbeiten im LSEdit werden dann ja sicher problemlos möglich sein.

    Einmal editiert, zuletzt von Taschenschieber ()

  • Zum Vergessen halte ich die Frage nicht ;)
    Es wird von Anfang an sowohl die Möglichkeit der Konvertierung als auch das direkte Einbinden der Objekte geben. Bei externen Formaten gibt es derzeit aber keine Möglichkeit solche Dinge wie Beschriftungen oder Signallichter zu verwenden. Keine Ahnung ob das möglich wäre, dafür müssten so etwas Ähnliches wie benutzerdefinierte Eigenschaften im externen Dateiformat möglich sein - Damit habe ich mich aber nicht beschäftigt.
    Möglich ist jedenfalls ein Durchmischen: Ein Gruppenobjekt welches externe 3D-Modelle enthält, wo dann bei den "Kindknoten" wiederum loksim-eigene Eigenschaften gesetzt werden können.

  • Öh. Sprich, ich baue meine Haltetafel in Blender, lasse die Zahl für die Zuglänge weg, binde das dann in ein Gruppenobjekt ein und füge dem Gruppenobjekt dann noch ein klassisches Loksim-Objekt ein, das die Zahl enthält? Das ginge?

  • Hallo,
    der letzte Beitrag ist schon etwas länger her, mal wieder ein kleiner Statusbericht.
    In den letzten Tagen war natürlich die Offenlegung des Codes ein Thema. Ich habe zwar nicht allzu viele Änderungen deswegen vorgenommen, aber ein paar Anpassungen waren doch notwendig / sinnvoll.


    Daneben habe ich heute auch den Betatest für die nächste Version 2.9.1 begonnen. Eine vorläufige Liste der Änderungen kann man auf der Loksim Wiki einsehen. Ich hoffe, dass dieser Betatest relativ schnell abgeschossen werden kann und wir noch dieses Jahr eine Version veröffentlichen können in der fast (alle) dringenden Fehler der Version 2.9 behoben sind.


    Ansonsten habe ich begonnen ein wenig von der sehr technischen Seiten der Loksim Entwicklung zu bloggen. Interessierte können gern auf meinem Blog vorbeischauen. Allerdings in Englisch.


    lg
    Lukas

  • Hallo Zusammen,


    der Betatest für die 2.9.1 läuft noch auf vollen Touren und ich bin gerade dabei meine Fahrleitungsobjekte anzupassen.
    Leider bin ich mit dem FLG noch nicht wirklich weitergekommen. Ich hoffe aber das es vor Ostern fertig wird.


    Gruss
    Uwe

    --
    Wenn du die Götter zum Lachen bringen willst, mach’ einen Plan.

  • Ich freu mich schon drauf :-)


    Der Anfang ist trotz deines hilfreichen Tools zwar eine kleine bis mittlere Katastrophe aber wenn man sich damit mal richtig beschäftigt und weiß wie es geht, dann geht es recht flott dahin.
    Bin richtig stolz, dass ich erst kürzlich mein erstes Modul meiner (ÖBB) Strecke vollkommen mit deiner Fahrleitung ausgestattet habe und es sogar geschafft habe, dass im Weichenbereich (Gott stand mir da anscheinend bei) alles "verkabelt" ist :)
    Zwar musste ich teils einen kleinen Kompromiss eingehen bezüglich den Spezialitäten zwischen DB und ÖBB aber was solls ^^


    Also nur weiter so Uwe und ich freu mich wirklich schon drauf! :thumbup: