![Bild](http://picup.oliverlamm.de/files/IMG_349c6c8eb196f0d5be7f5076e0815090_15JrsAuY1ungY_small.jpg)
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.
Ich könnte noch Inspiration gebrauchen, wie man einen Isolator so auf ein Tragseil mit Durchhang auffädelt, dass er richtig sitztCarsten Hölscher hat geschrieben:Der Quellcode ist ja extra dabei, um Leute zu inspirieren, dort tätig zu werden.
Ja, wäre wohl günstig.Carsten Hölscher hat geschrieben:Das Thema dll-Programmierung sollte vielleicht aus diesem Thread ausgelagert werden?
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?Carsten Hölscher hat geschrieben:Die Position kann nur die dll kennen, die auch den Draht verlegt.
Code: Alles auswählen
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;
Code: Alles auswählen
+ {$SetPEFlags $20}
Nein, im commit zuvor hat Alwin den MM ausgetauscht: https://github.com/ameschede/ZusiFahrle ... s/v1.0.0.7" target="_blankJens Haupert hat geschrieben:mit der einzigen Änderung
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.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.