Aktuelle Zeit: 25.08.2019 02:39:14

Alle Zeiten sind UTC + 1 Stunde [ Sommerzeit ]




Ein neues Thema erstellen Auf das Thema antworten  [ 19 Beiträge ] 
Autor Nachricht
 Betreff des Beitrags: dll für Isolatoreneinbau
BeitragVerfasst: 01.09.2017 21:34:56 
Offline

Registriert: 04.11.2001
Beiträge: 6487
Aktuelle Projekte: Zusi3 Objektbau
So, ich habe jetzt ein paar Stunden gehackt, und das erste Erfolgserlebnis ist da:
Bild

Der Isolator und der Fahrdraht kommen aus meiner eigenen Fahrleitungs-DLL. So Gott will werde ich dem Ding jetzt noch beibringen, die drei anderen Isolatoren auf die Drähte zu fädeln, und dann hätte die DLL schon einen Nutzwert.

_________________
Mein Youtube-Kanal: youtube.com/echoray1


Zuletzt geändert von Alwin Meschede am 20.11.2018 17:55:21, insgesamt 1-mal geändert.

Nach oben
 Profil Website besuchen  
 
 Betreff des Beitrags: Re: Weiterentwicklung des deutschen Fahrleitungsbaukastens
BeitragVerfasst: 04.09.2017 13:17:55 
Offline

Registriert: 04.11.2001
Beiträge: 6487
Aktuelle Projekte: Zusi3 Objektbau
Erste Version einer Fahrleitungs-DLL, mit der sich Abspannungen mit zusätzlichen Isolatoren für Streckentrennungen bauen lassen: https://github.com/ameschede/ZusiFahrle ... g/v1.0.0.2

Für einen Einsatz im scharfen Schuss taugt die DLL aus meiner Sicht noch nicht (dafür bin ich nicht tief genug ins Thema eingestiegen), aber sie zeigt zumindest dass es geht. Meinen Anteil am Quellcode habe ich in ein Github-Repository geladen, so dass im Prinzip eine kollaborative Weiterentwicklung (auch in Richtung weiterer Sonderfahrdrähte) möglich wäre. Wenn jemand coden möchte, muss er sich nur noch die DirectX- und Zusi-Header aus dem Verzeichnis _Docu\demos\catenary\source dazuholen, die ich aus urheberrechtlichen Gründen mal lieber nicht nach Github hochladen wollte.

Carsten Hölscher hat geschrieben:
Der Quellcode ist ja extra dabei, um Leute zu inspirieren, dort tätig zu werden.


Ich könnte noch Inspiration gebrauchen, wie man einen Isolator so auf ein Tragseil mit Durchhang auffädelt, dass er richtig sitzt ;) Im Moment rechnet meine DLL noch auf einem straff gespannten Tragseil, weil ich diese Problemstellung erstmal nicht gelöst bekam.

_________________
Mein Youtube-Kanal: youtube.com/echoray1


Nach oben
 Profil Website besuchen  
 
 Betreff des Beitrags: Re: Weiterentwicklung des deutschen Fahrleitungsbaukastens
BeitragVerfasst: 04.09.2017 14:29:28 
Offline
Administrator
Benutzeravatar

Registriert: 04.07.2002
Beiträge: 28846
Wohnort: Braunschweig
Die Position kann nur die dll kennen, die auch den Draht verlegt. Das Thema dll-Programmierung sollte vielleicht aus diesem Thread ausgelagert werden?

Carsten


Nach oben
 Profil Website besuchen  
 
 Betreff des Beitrags: Weiterentwicklung des deutschen Fahrleitungsbaukastens
BeitragVerfasst: 04.09.2017 17:22:10 
Offline

Registriert: 04.11.2001
Beiträge: 6487
Aktuelle Projekte: Zusi3 Objektbau
Carsten Hölscher hat geschrieben:
Das Thema dll-Programmierung sollte vielleicht aus diesem Thread ausgelagert werden?


Ja, wäre wohl günstig.

Carsten Hölscher hat geschrieben:
Die Position kann nur die dll kennen, die auch den Draht verlegt.


Das weiß ich. Da Du ja in deinen DLLs eine offenbar funktionierende Lösung hast, würde mich interessieren wie die aussieht. Ich nehme mal an, Du merkst Dir beim ersten und letzten Hänger im Kettenwerk die Position des oberen Punktes, um dann mit einem Vektor drauf zielen zu können, aus dem sich dann der Tragseil-Isolator-Winkel ergibt?

Für die Ausrichtung der am Fahrdraht sitzenden Isolatoren ist bei mir derzeit auch nur ein recht stupider Ansatz implementiert, bei dem ich einfach den Mittelwert der Winkel aus den beiden beteiligten Fahrleitungs-Ankerpunkten nehme. Das funktioniert recht gut, solange die beiden Ankerpunkte nicht 180 ° verdreht zueinander stehen. Dann kommt aus der Mittelwertbetrachtung nämlich ein um 90 ° verdrehter Isolator heraus. Es muss also offenbar einen intelligenteren Ansatz geben.

_________________
Mein Youtube-Kanal: youtube.com/echoray1


Nach oben
 Profil Website besuchen  
 
 Betreff des Beitrags: Re: dll für Isloatoreneinbau
BeitragVerfasst: 05.09.2017 21:29:18 
Offline
Administrator
Benutzeravatar

Registriert: 04.07.2002
Beiträge: 28846
Wohnort: Braunschweig
Ohne Vektorrechnung kommt man nicht zum Ziel, DirectX bietet dabei eine Bibliothek mit nützlichen Grundfunktionen.

Diese kleine procedure hilft ggf.:

Code:
  procedure Lage(Pkt1, Pkt2:TD3DVector; l:single; var xyz, xyzphi:TD3DVector);
  // berechnt die Position eines Isolators auf dem Draht
  var v, vNorm, h:TD3DVector;
      Winkelz, Winkelx:single;
  begin
    D3DXVec3Subtract(v, Pkt2, Pkt1);
    D3DXVec3Normalize(vNorm, v);
    D3DXVec3Scale(h, vNorm, l);
    D3DXVec3Add(xyz, h, Pkt1);

    Winkelz:=ArcTan2(Pkt2.y-Pkt1.y, Pkt2.x-Pkt1.x);                             
    Winkelx:=arctan2(Pkt2.z-Pkt1.z, sqrt(sqr(Pkt2.x-Pkt1.x)+sqr(Pkt2.y-Pkt1.y)));
    xyzphi.x:=-Winkelx;
    xyzphi.y:=0;
    xyzphi.z:=Winkelz+Pi/2;
  end;


Carsten


Nach oben
 Profil Website besuchen  
 
 Betreff des Beitrags: Re: dll für Isloatoreneinbau
BeitragVerfasst: 11.09.2017 13:36:35 
Offline

Registriert: 04.11.2001
Beiträge: 6487
Aktuelle Projekte: Zusi3 Objektbau
Version 1.0.0.5 meiner Fahrleitungs-DLL: https://github.com/ameschede/ZusiFahrle ... g/v1.0.0.5

  • Die Baurichtung (von A nach B oder von B nach A) ist jetzt egal
  • Tragseile werden mit Durchhang berechnet
  • Die Isolatoren sollten jetzt immer korrekt sitzen
  • Experimentell: Drahtstärke konfigurierbar, Bau von Fahrdrähten ohne Y-Beiseil

Für Streckentrennungen mit Isolatoren taugt die DLL aus meiner Sicht jetzt für den Echt-Einsatz.
Die beiden Experimental-Features sind hingegen wirklich als Experiment zu betrachten. Meine DLL kann zwar jetzt auch Normalfahrdrähte ohne Y-Seile erstellen, bietet dabei aber keinen Vorteil gegenüber der bei Zusi mitgelieferten Re160-DLL. Es ging mir hauptsächlich darum, erstmal die notwendigen Strukturen zu schaffen um mehr als eine Sorte Fahrdrähte zu unterstützen.

_________________
Mein Youtube-Kanal: youtube.com/echoray1


Nach oben
 Profil Website besuchen  
 
 Betreff des Beitrags: Re: dll für Isloatoreneinbau
BeitragVerfasst: 23.01.2018 13:46:47 
Offline

Registriert: 06.10.2014
Beiträge: 52
Hallo Alwin,

ich habe eine kurze Frage zu der DLL, wobei ich hoffe, dass sie nicht in Richtung DAU geht :O .
Und zwar ist es mir unter Anwendung Deiner DLL lediglich möglich, die Isolatoren zwischen dem Ausfädelungsausleger und dem Spannwerk einzubauen
(also Ausfädelungsausleger --- Isolatoren ----------------Isolatoren --- Spannwerk).
Nach einigen Wahrnehmungen von draußen dürften die Isolatoren jedoch vor dem Ausfädelungsausleger liegen
(also Standardausleger ------- Isolatoren --- Ausfädelungsausleger ...).
Bei Anklicken beider Ausleger schlägt mir das System auch für den Standardausleger eine Befestigung ohne Y-Beiseil und für den Ausfädelungsausleger eine Ausfädelung mit Isolatoren vor, das ganze wird aber nicht erstellt.
Habe ich in meinem jugendlichen Leichtsinn etwas übersehen?

Beste Grüße Jürgen

PS: Grad noch mal nachgeschaut, meine Wahrnehmungen von draußen werden durch das Buch "Fahrleitungen elektrischer Bahnen" (Skizze 3.35, S. 184) bestätigt.

_________________
Der Mut ist wie ein Regenschirm. Wenn man ihn am dringendsten braucht, fehlt er einem. (Fernandel)


Nach oben
 Profil  
 
 Betreff des Beitrags: Re: dll für Isloatoreneinbau
BeitragVerfasst: 23.01.2018 14:11:58 
Offline

Registriert: 04.11.2001
Beiträge: 6487
Aktuelle Projekte: Zusi3 Objektbau
Sieht so aus als hätte ich das nach der Version 1.0.0.5 gängig gemacht, dann aber nur als Quellcode veröffentlicht. Es kann jetzt Version 1.0.0.6 runtergeladen werden, die sollte das dann können.

_________________
Mein Youtube-Kanal: youtube.com/echoray1


Zuletzt geändert von Alwin Meschede am 23.01.2018 14:13:02, insgesamt 1-mal geändert.

Nach oben
 Profil Website besuchen  
 
 Betreff des Beitrags: Re: dll für Isloatoreneinbau
BeitragVerfasst: 23.01.2018 14:18:39 
Offline

Registriert: 06.10.2014
Beiträge: 52
Es ist immer wieder schön, hier so schnell und kompetent Hilfe zu finden :tup
Klappt wunderbar. Danke.

Gruß Jürgen.

_________________
Der Mut ist wie ein Regenschirm. Wenn man ihn am dringendsten braucht, fehlt er einem. (Fernandel)


Nach oben
 Profil  
 
 Betreff des Beitrags: Re: dll für Isloatoreneinbau
BeitragVerfasst: 20.11.2018 14:25:39 
Offline

Registriert: 04.11.2001
Beiträge: 6487
Aktuelle Projekte: Zusi3 Objektbau
Es steht Version 1.0.0.7 der DLL zur Verfügung, in der das Konfigurationsmenü ohne Absturz zugänglich ist, auch wenn man den neuen 3D-Editor 3.1.7.2 im hohen Adressbereich betreibt.

_________________
Mein Youtube-Kanal: youtube.com/echoray1


Nach oben
 Profil Website besuchen  
 
 Betreff des Beitrags: Re: dll für Isloatoreneinbau
BeitragVerfasst: 20.11.2018 16:05:07 
Offline
Benutzeravatar

Registriert: 23.03.2004
Beiträge: 3878
Wohnort: Berlin
Aktuelle Projekte: http://www.zusidisplay.de
Hallo Alwin,

hat es genügt, die DLL mit dem LargeAdressAware-Flag neu zu kompilieren?

Grüße
Jens

Edit: gebe mir selbst die Antwort: ein Blick in den Quellcode mit der einzigen Änderung
Code:
+ {$SetPEFlags $20}
sagt ja. :-)


Zuletzt geändert von Jens Haupert am 20.11.2018 16:06:42, insgesamt 1-mal geändert.

Nach oben
 Profil Website besuchen  
 
 Betreff des Beitrags: Re: dll für Isloatoreneinbau
BeitragVerfasst: 20.11.2018 16:08:58 
Offline
Benutzeravatar

Registriert: 24.10.2011
Beiträge: 3241
Jens Haupert hat geschrieben:
mit der einzigen Änderung
Nein, im commit zuvor hat Alwin den MM ausgetauscht: https://github.com/ameschede/ZusiFahrle ... s/v1.0.0.7

_________________
Diese Signatur möchte folgendes bekannter machen: ZusiWiki: Führerstände · ZusiWiki: Fahrzeugprojekte · ZusiSK: Streckenprojekte · YouTube: Objektbau für Zusi · euirc: Zusi-Chat


Nach oben
 Profil  
 
 Betreff des Beitrags: Re: dll für Isloatoreneinbau
BeitragVerfasst: 20.11.2018 17:59:08 
Offline

Registriert: 04.11.2001
Beiträge: 6487
Aktuelle Projekte: Zusi3 Objektbau
Meine Entwicklungsumgebung für die DLL ist (wie bei Zusi) Delphi 7. Hat für mich den Vorteil, dass ich ohne großen Aufstand zu den Eigenarten von Zusis DLL-Schnittstelle kompatibel bin. Wer ein moderneres Delphi einsetzt, muss sich zum Beispiel erstmal vertieft Gedanken zu diversen String-Formaten machen, die seit Delphi 7 geändert wurden.

Jedenfalls baut mir Delphi 7 den BorlandMM in die DLL ein, wenn ich nichts anderes regele. Der taugt nicht für die hohen Adressen.

_________________
Mein Youtube-Kanal: youtube.com/echoray1


Nach oben
 Profil Website besuchen  
 
 Betreff des Beitrags: Re: dll für Isolatoreneinbau
BeitragVerfasst: 20.11.2018 22:56:13 
Offline
Administrator
Benutzeravatar

Alter: 33
Registriert: 04.11.2001
Beiträge: 2901
Wohnort: Blieskastel, Saarland, Deutschland
Aktuelle Projekte: Dies und das
Huhu,

das führt jetzt etwas ins OT und ich könnte es mit Sicherheit auch einfach googlen, aber es lebe die zwischenmenschliche Interaktion. ;-)

Generell müssten doch auch für Delphi beim Aufruf von externen DLLs die Typen-Standards gelten? Gerade bei Strings sollte doch irgendeine C-Kompatibilität vorhanden sein, oder? Sonst würde ja "gar kein" Aufruf von WinAPI-Funktionen klappen?!

Grüße
Max

_________________
Administrator, Programmierer, Ansprechpartner bei Problemen mit dem Board


Nach oben
 Profil ICQ  
 
 Betreff des Beitrags: Re: dll für Isolatoreneinbau
BeitragVerfasst: 20.11.2018 22:59:38 
Offline

Registriert: 04.11.2001
Beiträge: 6487
Aktuelle Projekte: Zusi3 Objektbau
Die Datentypen pChar und pAnsiChar waren in alten Delphis noch ein und das gleiche. Seit Delphi 2009 ist das nicht mehr so. Wenn man einen pChar aus einer modern kompilierten DLL an Zusi übergibt, dann knallt es erstmal.

_________________
Mein Youtube-Kanal: youtube.com/echoray1


Zuletzt geändert von Alwin Meschede am 20.11.2018 23:01:19, insgesamt 1-mal geändert.

Nach oben
 Profil Website besuchen  
 
 Betreff des Beitrags: Re: dll für Isolatoreneinbau
BeitragVerfasst: 20.11.2018 23:16:00 
Offline
Administrator
Benutzeravatar

Alter: 33
Registriert: 04.11.2001
Beiträge: 2901
Wohnort: Blieskastel, Saarland, Deutschland
Aktuelle Projekte: Dies und das
Alwin Meschede hat geschrieben:
Die Datentypen pChar und pAnsiChar waren in alten Delphis noch ein und das gleiche. Seit Delphi 2009 ist das nicht mehr so. Wenn man einen pChar aus einer modern kompilierten DLL an Zusi übergibt, dann knallt es erstmal.

Ouh ja, ok, diese bösen Multi-Byte-Zeichen. ;-) Dann ist aber vermutlich nur die API Doku von Zusi ungenau. Wenn man einen PAnsiChar übergibt/erwartet (egal welche Delphi-Version) sollte das ja immer passen... Zumindest solange Zusi nicht mit einer neueren Delphi-Version compiliert wird. :rolleyes:

Gruß
Max

_________________
Administrator, Programmierer, Ansprechpartner bei Problemen mit dem Board


Nach oben
 Profil ICQ  
 
 Betreff des Beitrags: Re: dll für Isolatoreneinbau
BeitragVerfasst: 16.01.2019 20:15:52 
Offline

Alter: 57
Registriert: 12.03.2011
Beiträge: 121
Wohnort: im Allgäu
Aktuelle Projekte: Mitglied im Team Süd, Landschaftsbau Modul Nordendorf, ich freue mich schon auf die Fahrleitung in Au-Hbf
Hallo Alwin,

blöde Frage - wie aktiviere ich deine dll? Einfach nur in ..\Zusi3\_Docu\demos\catenary reinkopieren reicht offensichtlich nicht.

Gruß
Hardy


Nach oben
 Profil Website besuchen  
 
 Betreff des Beitrags: Re: dll für Isolatoreneinbau
BeitragVerfasst: 16.01.2019 20:26:47 
Offline
Administrator
Benutzeravatar

Registriert: 04.07.2002
Beiträge: 28846
Wohnort: Braunschweig
_instsetup\lib\...

ist gefragt

Carsten


Nach oben
 Profil Website besuchen  
 
 Betreff des Beitrags: Re: dll für Isolatoreneinbau
BeitragVerfasst: 16.01.2019 21:42:17 
Offline

Alter: 57
Registriert: 12.03.2011
Beiträge: 121
Wohnort: im Allgäu
Aktuelle Projekte: Mitglied im Team Süd, Landschaftsbau Modul Nordendorf, ich freue mich schon auf die Fahrleitung in Au-Hbf
Hallo Carsten, danke!


Nach oben
 Profil Website besuchen  
 
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen Auf das Thema antworten  [ 19 Beiträge ] 

Alle Zeiten sind UTC + 1 Stunde [ Sommerzeit ]


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast


Du darfst keine neuen Themen in diesem Forum erstellen.
Du darfst keine Antworten zu Themen in diesem Forum erstellen.
Du darfst deine Beiträge in diesem Forum nicht ändern.
Du darfst deine Beiträge in diesem Forum nicht löschen.

Suche nach:
Gehe zu:  
Powered by phpBB® Forum Software © phpBB Group
Deutsche Übersetzung durch phpBB.de
[ Time : 0.024s | 16 Queries | GZIP : Off ]