Welcome! Log In Create A New Profile

Advanced

3D RepRap G-Code Simulator

Posted by Jacky2k 
3D RepRap G-Code Simulator
December 01, 2010 04:12PM
Schön guten Abend,
ich habe in den letzten paar Tagen an einem kleinen Stück Software gefrickelt und es ist hoffentlich etwas halbwegs brauchbares bei raus gekommen.
Es handelt sich um einen 3D G-Code Simulator für den RapRap (vermutlich auch andere Drucker mit kompatibler Syntax).
Es ist bislang nur eine sehr einfache Version, die noch weiter verbessert wird. Ich habe hier auch schon eine Software die den Reprap steuert, das soll dann irgendwann einmal verschmolzen werden.
Also, die Software wertet bislang nur G1 Befehle aus, Kommentare werden bereits ignoriert und zeigt das ganze dann in einem OpenGL Fenster an, rotieren, zoomen und bewegen geht. (Das Rotieren ist noch etwas unintuitiv, arbeite ich dran).
Zudem werden noch zwei Achsenkreuze angezeigt, eins für den Mittelpunkt des Objektes und eins für den Ursprung des Objektes. Rotiert wird um den Mittelpunk.
Das ganze ist mit Qt realisiert, sollte für die Linux Leute kein Problem sein, unter Windows habe ich es mit Visual Studio 2008 Pro kompiliert, keine Ahnung wie das mit mingw oder so geht winking smiley

Wer Anregungen/Softwareerweiterungen oder sonstige Sachen dazu beitragen kann/will darf das hier gerne mitteilen.

Im Anhang sind die Sourcen der Software. Leider kann ich die vorkompilierte Windows Version hier nicht hoch laden, da die Qt Bibliotheken zu groß sind, daher über meine Webseite: [opencode.eu]
Das Programm läuft sowohl unter Linux als auch Windows (Mac sollte auch gehen, habe ich aber keine Ahnung von). Mit wine läuft es zudem auch noch.

Ich übernehme keinerlei Garantie, Verantwortung oder Sontiges für die Software oder durch die Software verursachte Schäden, ist ja wohl klar winking smiley
Ich hoffe, dass sie euch hilft.

Edited 2 time(s). Last edit at 12/01/2010 04:21PM by Jacky2k.
Attachments:
open | download - RepRap_GCode_Simulator_0.1_src.tar.gz (224.7 KB)
Re: 3D RepRap G-Code Simulator
December 01, 2010 05:36PM
Mhm, bei mir komplilierts nicht! 'n paar Angaben zu benötigten Bibliotheken wären nicht wenig hilfreich. Mein Output geht so:
chrisi@mobstation:~/Desktop/RepRap_GCode_Simulator_0.1_src/src$ make
g++ -c -pipe -g -Wall -W -O2 -D_REENTRANT  -DQT_NO_DEBUG -DQT_THREAD_SUPPORT -DQT_SHARED -DQT_TABLET_SUPPORT -I/usr/share/qt3/mkspecs/default -I. -I. -IQT -I+= -Iopengl -I/usr/include/qt3 -o DockOpenGL.o DockOpenGL.cpp
In file included from DockOpenGL.cpp:21:
DockOpenGL.h:24:29: error: QtGui/QDockWidget: No such file or directory
In file included from DockOpenGL.h:25,
                 from DockOpenGL.cpp:21:
GLDrawer.h:11:30: error: QtOpenGL/QGLWidget: No such file or directory
GLDrawer.h:12:29: error: QtGui/QMouseEvent: No such file or directory
GLDrawer.h:33:29: error: QtGui/QWheelEvent: No such file or directory
In file included from DockOpenGL.h:25,
                 from DockOpenGL.cpp:21:
GLDrawer.h:40: error: expected class-name before ‘{’ token
GLDrawer.h:41: error: ISO C++ forbids declaration of ‘Q_OBJECT’ with no type
GLDrawer.h:42: error: expected ‘;’ before ‘public’
GLDrawer.h:52: error: ‘QMouseEvent’ has not been declared
GLDrawer.h:53: error: ‘QMouseEvent’ has not been declared
GLDrawer.h:54: error: ‘QMouseEvent’ has not been declared
GLDrawer.h:55: error: ‘QWheelEvent’ has not been declared
GLDrawer.h:60: error: ‘QPoint’ does not name a type
In file included from DockOpenGL.cpp:21:
DockOpenGL.h:28: error: expected class-name before ‘{’ token
DockOpenGL.h:29: error: ISO C++ forbids declaration of ‘Q_OBJECT’ with no type
DockOpenGL.h:30: error: expected ‘;’ before ‘public’
DockOpenGL.h:35: error: ‘QResizeEvent’ has not been declared
DockOpenGL.cpp:23: error: ISO C++ forbids declaration of ‘QString’ with no type
DockOpenGL.cpp:23: error: expected ‘,’ or ‘...’ before ‘&’ token
DockOpenGL.cpp:23: error: prototype for ‘DockOpenGL:grinning smileyockOpenGL(int)’ does not match any in class ‘DockOpenGL’
DockOpenGL.h:28: error: candidates are: DockOpenGL:grinning smileyockOpenGL(const DockOpenGL&)
DockOpenGL.h:28: error:                 DockOpenGL:grinning smileyockOpenGL()
DockOpenGL.cpp:30: error: variable or field ‘resizeEvent’ declared void
DockOpenGL.cpp:30: error: ‘QResizeEvent’ was not declared in this scope
DockOpenGL.cpp:30: error: expected primary-expression before ‘)’ token
GLDrawer.h: In member function ‘void DockOpenGL::loadGCode(std::string)’:
GLDrawer.h:46: error: ‘void GLDrawer::loadGCode(std::string)’ is private
DockOpenGL.cpp:38: error: within this context
make: *** [DockOpenGL.o] Fehler 1

Ubuntu Studio 64, 10.04 Lucid - mag vielleicht auch an den 64-bit liegen?


[zaunerelektronik.net]
Re: 3D RepRap G-Code Simulator
December 02, 2010 02:04AM
Hi, schön, sowas hab ich schon immer mal gesucht.
Unter Windoof XP prof läuft es. Ist zwar etwas sporadisch, aber erfüllt seinen Zweck. Jut jemacht thumbs up

Edited 1 time(s). Last edit at 12/02/2010 02:07AM by Stoffel15.


Mfg
Wolfgang
Aller Anfang war schwer - Wolfstrap Reprap-fab.org Meine Meinung

Erfahrungen kann man leider schlecht weiter geben, die muss man selber machen.
Re: 3D RepRap G-Code Simulator
December 02, 2010 02:20AM
Aber es macht Fehler in der Darstellung ist mir grade aufgefallen... wenn ich z.B. die Pullys öffne, sind mache Zähne spitz dargestellt obwohl sie eckig sind. Das ist nicht so gut.

Außerdem werden kurven extrem als Treppen dargestellt, obwohl sie rund sind...

Da mußt du aber noch einiges drann tun.

Edited 1 time(s). Last edit at 12/02/2010 02:22AM by Stoffel15.


Mfg
Wolfgang
Aller Anfang war schwer - Wolfstrap Reprap-fab.org Meine Meinung

Erfahrungen kann man leider schlecht weiter geben, die muss man selber machen.
Re: 3D RepRap G-Code Simulator
December 02, 2010 02:31AM
osterchrisi Wrote:
-------------------------------------------------------
> Mhm, bei mir komplilierts nicht! 'n paar Angaben
> zu benötigten Bibliotheken wären nicht wenig
> hilfreich. Mein Output geht so:
> ...
> Ubuntu Studio 64, 10.04 Lucid - mag vielleicht
> auch an den 64-bit liegen?


An 64 Bit liegt das nicht, habe es unter Ubuntu 64 Bit gebaut. Du musst dir die Qt Bibliotheken und Header installieren. Wie die Pakete heißen weiß ich leider grade nicht.

Stoffel15 Wrote:
-------------------------------------------------------
> Aber es macht Fehler in der Darstellung ist mir
> grade aufgefallen... wenn ich z.B. die Pullys
> öffne, sind mache Zähne spitz dargestellt obwohl
> sie eckig sind. Das ist nicht so gut.
>
> Außerdem werden kurven extrem als Treppen
> dargestellt, obwohl sie rund sind...
>
> Da mußt du aber noch einiges drann tun.

Das habe ich ja gesagt, dass das bislang nur beta und sehr spartanisch ist winking smiley
Könntest du mir die G-Code Datei zukommen lassen? Die STL dazu wäre auch nicht schlecht um das zu überprüfen.
Also Kurven/Rundungen werden soweit ich weiß selbst vom RepRap nicht unterstützt. Das sind ja normalerweise G03/G04 G-Codes wenn ich mich aus der Schule recht entsinne, die stehen nicht im Wiki in der G-Code Liste. Wie gesagt, es werden bislang nur G1 unterstützt. Warum er das bei dir nicht macht weiß ich jetzt nich direkt, schick mir einfach mal den G-Code, dann schau ich mir das heute abend an.
Re: 3D RepRap G-Code Simulator
December 02, 2010 02:59AM
Also Skeinview stellt die nicht treppig dar. Da stimmt alles.

Ich kann dir die Dateien zukommen lassen, aber für hier sind die zu groß.


Mfg
Wolfgang
Aller Anfang war schwer - Wolfstrap Reprap-fab.org Meine Meinung

Erfahrungen kann man leider schlecht weiter geben, die muss man selber machen.
Re: 3D RepRap G-Code Simulator
December 02, 2010 04:12AM
Keine Ahnung was Skeinview da macht, der RepRap kann aber keine Kurven, das steht fest. Mag ja sein, dass Skeinview das hüsch aussehen lässt, es aber nicht das ist was gedruckt wird. Und das wäre nicht Ziel meines Programms und auch totaler Mist, kann ich mir aber auch nicht vorstellen winking smiley

Also, meine Mail steht in der Readme drin.

Jacky2k
Re: 3D RepRap G-Code Simulator
December 02, 2010 04:41AM
Der Reprap hat eine 1/10 auflösung, und was dein Programm darstellt ist erheblich weniger.



Edited 1 time(s). Last edit at 12/02/2010 04:42AM by Stoffel15.


Mfg
Wolfgang
Aller Anfang war schwer - Wolfstrap Reprap-fab.org Meine Meinung

Erfahrungen kann man leider schlecht weiter geben, die muss man selber machen.
Attachments:
open | download - G-Codeviewer.jpg (332.4 KB)
Re: 3D RepRap G-Code Simulator
December 02, 2010 04:59AM
Ich hab dir mal diese und eine andere Datei mit Zahnrädern zugeschickt... da siehst du das recht gut, das deine Auflösung viel zu niedrig ist.


Mfg
Wolfgang
Aller Anfang war schwer - Wolfstrap Reprap-fab.org Meine Meinung

Erfahrungen kann man leider schlecht weiter geben, die muss man selber machen.
Re: 3D RepRap G-Code Simulator
December 02, 2010 05:13AM
Hmm das sieht ja richtig so aus als würde mein Programm da irgendwelche Werte runden.
Eigentlich lese ich die Werte direkt in einen float ein und ab dafür in OpenGL. Sollte eigentlich gehen, schau ich mir wie gesagt mal genauer an. Glaube aber nicht, dass das ein großes Problem wird, bestimmt nur ne falsche Konvertierungsmethode von String nach Float benutzt oder soetwas.
Re: 3D RepRap G-Code Simulator
December 02, 2010 05:20AM
Kann ich dir nix zu sgen... ist nur was ich sehe... das stimmt nicht mit dem Überein was geduckt wird. Bei den Z-Pully-dateien siehst du das besonders krass an den Runden Teilen . Der mach da ja 10mm Schritte wenn er den äußeren Kreis macht (naja fast smiling smiley )

Du wirst das schon hin bekommen.

Schön wäre es wenn man das Programm mit einer Datei als Parameter aufrufen könnte.

"GCodeSimulator.exe G-CodeDatei.gcode"

Sodas man eine Verknüpfung machen kann.


Mfg
Wolfgang
Aller Anfang war schwer - Wolfstrap Reprap-fab.org Meine Meinung

Erfahrungen kann man leider schlecht weiter geben, die muss man selber machen.
Re: 3D RepRap G-Code Simulator
December 02, 2010 06:00AM
Hallo Jacky

Ein float ist ja nicht besonders genau (6 Stellen). Dann hast Du vielleicht noch ein paar Rechenoperationen drin, die kurzfristig die Zahl stark vergrössern oder verkleinern und schwupps, ist die Genauigkeit dahin. 1.0001 * 100000000 / 100000000 = 1.0000 (vereinfacht ausgedrückt). Die billige Lösung ist, bis unmittelbar vor dem Aufruf der GL-Funktionen doubles zu verwenden. Die edle Lösung, jede einzelne Rechenoperation auf deren Gültigkeitsbereich hin zu untersuchen und ggf. umzustellen: 1.0001 * (100000000 / 100000000) = 1.0001.

Was die G02 angeht: manche Firmwaren können das, andere nicht. Genutzt wird es jedoch nicht, da das zu Gunde liegende STL keine gekrümmten Flächen kennt und somit beim slicen auch keine gekrümmten Bahnen entstehen können.

Ob RepRap _noch_ eine Software für die Bahnerzeugung braucht weiss ich nicht (Du hast da sowas angedeutet). Da gibt es schon ReplicatorG, SkeinForge, RepRap Host, etc. etc.. Das ist auf den ersten Blick recht einfach zu programmieren, hat jedoch diverse Tücken im Detail. Der Verzug der Bauteile hängt z.B. stark von der Strategie bei der Layer-Füllung ab.

So. Jetzt habe ich schon meinen Senf abgegeben bevor ich Dein Programm überhaupt ausprobiert habe. Asche über mein Haupt und Dir viel Vergnügen beim weiter programmieren. :-)


Generation 7 Electronics Teacup Firmware RepRap DIY
     
Re: 3D RepRap G-Code Simulator
December 02, 2010 07:26AM
@Stoffel15
Das mit dem Parameter kann ich machen, das sollte kein Problem sein.

@Traumflug:
Ich bin mir im Klaren über die Genauigkeit von Fließkommazahlen, wie man das umschifft etc, hatte ein Semester Numerik und Stochastik, da ham wir das ordentlich durchgekaut grinning smiley
Im Moment ist auch auch so, dass da nichts gerechnet wird, die Daten werden eingelesen, in ein Float gewandelt, abgespeichert und später direkt mit glVertex3f() in OpenGL gehackt.
Ich bin mir ebenfalls im Klaren darüber, dass es bereits einige Bahnenerzeuger gibt und dass das recht schwer ist so ein Teil zu programmieren. Ist auch nur ne dumme Idee gewesen, in erster Linie brauchten wir einen Simulator um nicht zu viel ABS zu verschwenden, da unser Filmanet Extruder noch nicht läuft. Rennt der erstmal bekommt man das Zeug ja quasi hinterhergeschmissen grinning smiley
Re: 3D RepRap G-Code Simulator
December 02, 2010 12:29PM
So es gibt eine neue Version, der Fehler mit den unrunden Objekten wurde behoben (hatte an zwei Stellen int statt float stehen) und man kann der ausführbaren Datei nun eine Datei als Parameter übergeben, die dann beim Start geöffnet wird.

Edit: Windows Binaries und Sourcen gibts natürlich auch wieder hier: [opencode.eu]

Edited 1 time(s). Last edit at 12/02/2010 12:30PM by Jacky2k.
Attachments:
open | download - RepRap_GCode_Simulator_0.1.1_src.tar.gz (225.6 KB)
Re: 3D RepRap G-Code Simulator
December 02, 2010 01:01PM
Es gibt noch ein andere GCode simulator.


Bob Morrison
Wörth am Rhein, Germany
"Luke, use the source!"
BLOG - PHOTOS - Thingiverse
Re: 3D RepRap G-Code Simulator
December 02, 2010 01:12PM
Das sieht doch schon viel besser aus.

Um mal eben zu überprüfen was in einer G-Codedatei drinn ist, ist das doch prima.

Nur warum ist der Rand rechts immer so breit ? Da steht doch nur der eine Knopf... soviel Platz braucht der doch garnicht.


Mfg
Wolfgang
Aller Anfang war schwer - Wolfstrap Reprap-fab.org Meine Meinung

Erfahrungen kann man leider schlecht weiter geben, die muss man selber machen.
Re: 3D RepRap G-Code Simulator
December 02, 2010 03:01PM
@Stoffel15
Joa da gibts 2 Gründe: Ich weiß noch nicht wie ich die Breite setzen kann, ich mach das momentan nur mit setMinimumWidth() was dann halt zur Folge hat, dass es dann nicht kleiner geht.
Der zweite Grund ist der, dass da noch mehr hin kommen soll. In meiner aktuellen Version wird rechts schon ne Liste mit allen Layern angezeigt die man dann einzeln ein und ausblenden kann, das funktioniert aber noch nicht richtig.
Edit: Und dir ist hoffentlich klar, dass man das größer ziehen kann?

Edited 1 time(s). Last edit at 12/02/2010 04:11PM by Jacky2k.
Re: 3D RepRap G-Code Simulator
December 07, 2010 03:01PM
So es gibt eine neue Version.
Es wird nun eine Liste mit Layern angezeigt, bei denen es sich NICHT um die Layer handelt die er druckt, sondern diese werden anhand von Unterschieden in der z-Achse berechnet. Also, sie sind den normalen Layern ähnlich, aber nicht identlisch. Es ist nur eine Hilfe, um Teile des Objektes unsichtbar zu machen.
Zudem ist der Load G-Code Button weg gekommen und wurde durch ein Menü ersetzt, wo man auch geschlossene Fenster wieder einblenden kann. Zwei Funktionen im Menü zur Widerherstellung der Ansicht sich in Planung, funktionieren daher noch nicht.
Sourcen und Windows Binaries gibts wie immer hier: [opencode.eu]
Bin für weiter Vorschläge offen.
Attachments:
open | download - RepRap_GCode_Simulator_0.1.2_src.tar.gz (227.1 KB)
Re: 3D RepRap G-Code Simulator
December 07, 2010 03:13PM
Wenn man nicht das sieht was gedruckt wird, dann kannst du dir das mit den Layern ja gleich schenken. ????
Wozu solls dann noch gut sein ? Dann würde ein schneller Viewer, der nur die Konturen zeigt eher was bringen.

aber ich werde es mir mal ansehen...


Mfg
Wolfgang
Aller Anfang war schwer - Wolfstrap Reprap-fab.org Meine Meinung

Erfahrungen kann man leider schlecht weiter geben, die muss man selber machen.
Re: 3D RepRap G-Code Simulator
December 07, 2010 03:21PM
Runtime Error


Mfg
Wolfgang
Aller Anfang war schwer - Wolfstrap Reprap-fab.org Meine Meinung

Erfahrungen kann man leider schlecht weiter geben, die muss man selber machen.
Re: 3D RepRap G-Code Simulator
December 07, 2010 04:37PM
Also ich habe bei mir keinen Runtime error (Linux und Wine) und Kollege unter Windows auch nicht.
Wie soll ich das denn mit den Layern sonst machen? Also das funktioniert so schon ganz gut, gibt halt nur ein paar Layer zwischendrin die leer sind oder nur ein paar Linien haben.
Ich denke eine bessere Methode unterschiedliche Layer zu erkennen gibt es nicht.
Ich weiß jetzt grade nicht, RepRap Host Software oder Skeinforge fügen Kommentare ein wo der aktuelle Layer drin steht, aber dann wäre das Tool halt nur für den speziellen G-Code Erzeuger brauchbar.
Teste das erstmal, dann wirst sehen, dass das durchaus zu gebrauchen ist.
Sorry, you do not have permission to post/reply in this forum.