Mittwoch, 12. März 2014

XGView, ein Programm um gcode in 3D darzustellen

Zwischen Weihnachten und Sylvester hatte ich wieder mal eine Idee, außerdem wollte ich mich mit einer neuen Programmiersprache auseinandersetzen. 

Die Idee selber war ziemlich anspruchsvoll, ich wollte ein Programm erstellen das eine 3D Umgebung per OpenGL oder DirectX darstellen kann und in diesem Gcode Files plastisch dargestellt werden. Außerdem besitzt das Programm noch einen seriellen Port, der dann die Befehle des Gcodes Files an GRBL sendet. 

Soweit so gut ... mir fiel als Geschenk dann ein Buch über Visual Studio in die Hände und ganz ehrlich ... ich wahr begeistert. Seit 17 Jahren programmiere ich schon in Perl, aber die "Intellisense Technik" ist ja echt der Hammer. Jedenfalls nicht lange nachgedacht und das Monster Visual Studio auf dem Rechner installiert ... 

Ich hatte in dem Buch ein Beispiel einer emulierten 3D Welt entdeckt und mich gleich daran gemacht, es an meine Bedürfnisse anzupassen. Das Laden einer Textdatei über einem Menüpunkt war recht einfach und dann kam das erste Problem. Ich musste einen Gcode parser schreiben. Das ging gerade noch so. 


Dann mussten aber Radien berechnet und dargestellt werden, das war schon höhere Mathematik ... also gut, ein guter Programmierer ist ein fauler Programmierer. Ich hab mir mal ein paar Konkurrenzprojekte angeschaut und wurde bei dem Universal Gcode Sender fündig. Flugs den Code geklaut und an C# angepasst. Nach einigem Fluchen hat das auch funktioniert.

Die Ergebnisse sahen nicht schlecht aus, siehe auch das Video. Nur hat es mich gestört, das ich in einer Canvas Umgebung im Grunde das Rad neu erfinden musste. 

Es wäre doch besser ein vorhandenes Plugin zu benutzen, das Funktionen wie Camera, Licht, Animation und Texturen schon von Hause aus beherrscht. Nach ein wenig Recherche wurde ich bei dem "Helix Toolkit" fündig.
Also diesmal ein C# WPF Projekt angefangen und dort noch einmal neu programmiert. Das Ergebnis kann sich sehen lassen. 

Hier einige Links dazu: