Welcome! Log In Create A New Profile

Advanced

Cut2D-Postprozessor für Lasercutter

Posted by okrim 
Cut2D-Postprozessor für Lasercutter
February 18, 2016 04:37PM
Hallo,

da meine Baustelle "Spark-Laser" momentan etwas stockt, beschäftige ich mich mit ein paar Sachen
um den Laser später zu bedienen.
Inkskape mit den Plugin´s die es gibt, habe ich in der Theorie ausprobiert.
Theorie heißt, den erzeugten Code mal im Ponterface bzw. Repetier-Host angeschaut und die Verfahrwege dargestellt.
Das ganze scheint ja zu funktionieren, aber so richtig kann ich mich mit der Inkskape-Lösung noch nicht anfreunden.
Mit anfreunden meine ich das reine Handling mit der Software.
Sicher einfach, alles auswählen, in Pfade umwandeln, Plugin starten, Gcode fertig.
Vor ein paar Jahren habe ich mich mir mal eine kleine CNC-Fräse gebaut. Diese lief mit EMC2 unter Linux.
Als Software zum Erzeugen des Gcodes nutzte ich damals Cut2D von Vectric.
Die Verfahrensweise ist so ähnlich wie bei Inkscape. Pfade/Vektoren auswählen, Werkzeug auswählen, Schnitttiefe eingeben,
Werkzeugwege kalkulieren, fertig. Postprozessor auswählen Gcode speichern .....

Stichwort Postprozessor.
Für Cut2D gibt es dutzende für CNC Maschinen, aber keinen der so richtig passt als Laser-Cutter.
Habe mal im Netz gesucht und bin hier etwas fündig geworden:
http://diy3dtech.com/vectric-cut2d-post-processor-for-laser-cutter/

Auf dieser Grundlage habe ich mal "versucht" einen Post-Prozessor zu basteln.
Eins vorweg. Ich bin kein Software und Programmier-Guru. Meine Schulzeit liegt schon etliche Jahre zurück.
Das ganze ist für mich Hobby um im Winter die grauen Zellen ein wenig zu trainieren.
Habe auch beruflich was ganz anderes zu tun.
Zeichne zwar mit einem CAD-Programm, gebe meine Zahlen in Meter ein....aber halt ein ganz anderes Metier.

Das sind noch viele Kommentierungen drin.
diese dienten mir zur Übersichtlichkeit, bzw. um mich zurecht zu finden.
Diese müssen noch auskommentiert oder gelöscht werden.
Auch ist enthalten, das das Werkstück mit einem Kreuzlinenlaser angefahren werden,
bzw. danach ausgerichtet und ein neuer Nullpunkt gesetzt werden soll.
Deshalb sind in den Screenshots aus Repetier-Host ein paar "komische" Reisebewegungen bzw Verfahrwege (türkis) enthalten:

Quote
+=============================================================
+
+ SPARKCUBE-LASER - Vectric machine output configuration file
+
+=============================================================
+
+ History
+
+ Who When What
+ ======== ========== ===========================
+ okrim 02/05/2016 M106/M107
+ 02/05/2016 Spindelspeed = Laser Intesität M106 [S]
+ okrim 02/06/2016 Kommentierungen eingefügt
+
+
+================================================
+
+ Laser Control Commands
+ Change these to match your needs
+
+================================================
+ M106 S255 = Laser Power On
+ M107 = Laser Power Off
+ S0 = Laser intensity 0%
+ S25 = Laser intensity 10%
+ S255 = Laser intensity 100%
+ 0.50mm Pass-Depth = Schnitttiefe Laser aus Tool-Editor
+ [F] Feed-Rate aus Tool-Editor
+ [S] Spindel-Speed aus Tool-Editor
+ [ZH] HOME-POSITON aus Material-Setup anfahren
+ Z40.000 = Rapid clearence gap aus Material-Setup
+ Cut Depth aus 2D Profile Toolpath : Pass-Depth = Anzahl Passes
+================================================
+
+ How to use
+================================================
+ Name file: SPARKCUBE-LASER-mm.pp
+ Save file to Post Processor dir (example below)
+ C:\Program Files (x86)\Cut2D V1\PostP
+================================================


POST_NAME = "SPARKCUBE-LASER-V3(mm) (*.gcode)"

FILE_EXTENSION = "gcode"

+ Rememeber you are working in MM
UNITS = "MM"

+------------------------------------------------
+ Line terminating characters
+------------------------------------------------

LINE_ENDING = "[13][10]"

+------------------------------------------------
+ Block numbering
+------------------------------------------------

LINE_NUMBER_START = 0
LINE_NUMBER_INCREMENT = 10
LINE_NUMBER_MAXIMUM = 999999

+================================================
+
+ Formating for variables
+
+================================================

VAR LINE_NUMBER = [N|A|N|1.0]
VAR SPINDLE_SPEED = [S|A|S|1.0]
VAR FEED_RATE = [F|C|F|1.1]
VAR X_POSITION = [X|C|X|1.4]
VAR Y_POSITION = [Y|C|Y|1.4]
VAR Z_POSITION = [Z|C|Z|1.4]
VAR ARC_CENTRE_I_INC_POSITION = [I|A|I|1.4]
VAR ARC_CENTRE_J_INC_POSITION = [J|A|J|1.4]
VAR X_HOME_POSITION = [XH|A|X|1.4]
VAR Y_HOME_POSITION = [YH|A|Y|1.4]
VAR Z_HOME_POSITION = [ZH|A|Z|1.4]

+================================================
+
+ Block definitions for toolpath output
+
+================================================

+---------------------------------------------------
+ Commands output at the start of the file
+---------------------------------------------------

begin HEADER
"======================================================================="
"( [TOOLPATH_NAME] )"
"( SPARKCUBE-LASER Postprocessor )"
"( SPARKCUBE-LASER - Vectric CUT2D)"
"======================================================================="
+"+======================================================================"
+"+"
+"+ Laser Control Commands"
+"+ Change these to match your needs"
+"+"
+"+======================================================================"
+"+ M106 S255 = Laser Power On"
+"+ M107 = Laser Power Off"
+"+ S0 = Laser intensity 0%"
+"+ S25 = Laser intensity 10%"
+"+ S255 = Laser intensity 100%"
+"+ 0.50mm Pass-Depth = Schnitttiefe Laser aus Tool-Editor"
+"+ (F) [F] Feed-Rate aus Tool-Editor"
+"+ (S) [S] Spindel-Speed aus Tool-Editor = Laser 0-255"
+"+ (ZH)[ZH] HOME-POSITON aus Material-Setup "
+"+ Z40.000 = Rapid clearence gap aus Material-Setup"
+"+ Cut Depth aus 2D Profile Toolpath : Pass-Depth = Anzahl Passes"
+"+======================================================================"

+ kalt Extruieren
+"(----------------------------------------------------------------------)"
+"(++ kalt exruieren erlauben ++)"
+"(----------------------------------------------------------------------)"
"M302"

+ Absaugung Lüfter einschalten
+"(----------------------------------------------------------------------)"
+"(++ Absaugung und Lüfter einschalten ++)"
+"(----------------------------------------------------------------------)"
+ M106 S500 ; Absaugung / Lüfter 90%


+ Set Units to MM
+"(----------------------------------------------------------------------)"
+"(++ Set Units to MM ++)"
+"(----------------------------------------------------------------------)"
"G21"


+ G90 Absolute Positionen
+"(----------------------------------------------------------------------)"
+"(++ G90 Absolute Positionen ++)"
+"(----------------------------------------------------------------------)"
"G90"


+ Aktuelle Posistion Kreuzlinienlaser ist Werkstueck-Nullpunkt
+"(----------------------------------------------------------------------)"
+"(++ Aktuelle Position Kreuzlinienlaser = Werkstück Nullpunkt++ )"
+"(----------------------------------------------------------------------)"
"G92 X0 Y0 Z0"

+ Laser 5mm anheben
+"(----------------------------------------------------------------------)"
+"(++ Laser 5mm anheben ++)"
+"(----------------------------------------------------------------------)"
"G0 X0 Y0 Z5 F100 "


+ Laserpunkt anfahren hier Versatzwerte Kreuzlaser eintragen
+"(----------------------------------------------------------------------)"
+"(++ X Y Versatz Kreuzlinienlaser anfahren ++ )"
+"(----------------------------------------------------------------------)"
"G0 X-37.15 Y52.15 F3000"


+ Werstueckoberflaeche anfahren
+"(----------------------------------------------------------------------)"
+"(++ Werstueckoberflaeche anfahren ++)"
+"(----------------------------------------------------------------------)"
"G0 Z0 F1000"


+ Aktuelle Position wird auf NULL gesetzt
+"(----------------------------------------------------------------------)"
+"(++ Aktuelle Position wird auf NULL gesetzt ++)"
+"(----------------------------------------------------------------------)"
"G92 X0 Y0 Z0"


+ HOME-POSITON aus Material-Setup anfahren
+"(----------------------------------------------------------------------)"
+"(++ HOME-POSITON aus Material-Setup anfahren ++ )"
+"(----------------------------------------------------------------------)"
"G0 [XH] [YH] [ZH] F3000"


+ Laser auf 50% Leistung
+"(----------------------------------------------------------------------)"
+"(++ Lasser 50% ON ++ )"
+"(----------------------------------------------------------------------)"
+"M106 S127"
+"G04 P0"

+"(----------------------------------------------------------------------)"
+"(++ Verfahrwege LASER ++ )"
+"(----------------------------------------------------------------------)"
+---------------------------------------------------

+ Commands output for rapid moves
+---------------------------------------------------


begin RAPID_MOVE
+ S25 Set laser output to 10% for rapid --> M 106 S255=100% ändern ???
+"(----------------------------------------------------------------------)"
+"(++ Laser Positionierbewegung ++ )"
+"(----------------------------------------------------------------------)"
"M106 S25"
"G0 [X] [Y] [Z] F3000"


+---------------------------------------------------
+ Commands output for the first feed rate move
+---------------------------------------------------

begin FIRST_FEED_MOVE
+ M106 S255 sets laser power to full to cut
+ G04 P10. Dwells for 10 seconds to allow cut to start
+"(----------------------------------------------------------------------)"
+"(++ LASER-CUTTING ++ )"
+"(----------------------------------------------------------------------)"
"M106 [S]"
"G04 P0"
"G1 [X] [Y] [Z] [F]"


+---------------------------------------------------
+ Commands output for feed rate moves
+---------------------------------------------------

begin FEED_MOVE

"G1 [X] [Y] [Z]"


+---------------------------------------------------
+ Commands output for the first clockwise arc move
+---------------------------------------------------

begin FIRST_CW_ARC_MOVE

"G2 [X] [Y] [I] [J] [F]"


+---------------------------------------------------
+ Commands output for clockwise arc move
+---------------------------------------------------

begin CW_ARC_MOVE

"G2 [X] [Y] [I] [J]"


+---------------------------------------------------
+ Commands output for the first counterclockwise arc move
+---------------------------------------------------

begin FIRST_CCW_ARC_MOVE

"G3 [X] [Y] [I] [J] [F]"


+---------------------------------------------------
+ Commands output for counterclockwise arc move
+---------------------------------------------------

begin CCW_ARC_MOVE

"G3 [X] [Y] [I] [J]"


+---------------------------------------------------
+ Commands output at the end of the file
+---------------------------------------------------

begin FOOTER

+"(----------------------------------------------------------------------)"
+"(++ Laser auf 10% Power ++ )"
+"(----------------------------------------------------------------------)"
"M106 S25"

+ M107 turns off the Laser
+"(----------------------------------------------------------------------)"
+"(++ M107 turns off the Laser ++ )"
+"(----------------------------------------------------------------------)"
"M107"

+ HOME-POSITON aus Printer-Setup anfahren --> Z=HOME-POSITON Printer-Setup
+"(----------------------------------------------------------------------)"
+"(++ HOME-POSITON aus Printer-Setup anfahren ++ )"
+"(----------------------------------------------------------------------)"
"G0 [XH] [YH] Z220 F3000"

+ Program End


ein Kreis und ein Quadrat mit 2 Passes:


ergibt folgenden Gcode: (Kommentierungen sind da nicht enthalten)

Quote
=======================================================================
( Profile 1 )
( SPARKCUBE-LASER Postprocessor )
( SPARKCUBE-LASER - Vectric CUT2D)
=======================================================================
M302
G21
G90
G92 X0 Y0 Z0
G0 X0 Y0 Z5 F100
G0 X-37.15 Y52.15 F3000
G0 Z0 F1000
G92 X0 Y0 Z0
G0 X0.0000 Y0.0000 Z0.1000 F3000
M106 S25
G0 X0.0000 Y20.0000 Z0.1000 F3000
M106 S250
G04 P0
G1 Z-0.5000 F3000.0
G2 X20.0000 Y0.0000 I0.0000 J-20.0000 F960.0
G2 X0.0000 Y-20.0000 I-20.0000 J-0.0000
G2 X-20.0000 Y0.0000 I-0.0000 J20.0000
G2 X0.0000 Y20.0000 I20.0000 J0.0000
M106 S250
G04 P0
G1 Z-1.0000 F3000.0
G2 X20.0000 Y0.0000 I0.0000 J-20.0000 F960.0
G2 X0.0000 Y-20.0000 I-20.0000 J-0.0000
G2 X-20.0000 Y0.0000 I-0.0000 J20.0000
G2 X0.0000 Y20.0000 I20.0000 J0.0000
M106 S25
G0 Z0.1000 F3000
M106 S25
G0 X-25.0000 Y-25.0000 F3000
M106 S250
G04 P0
G1 Z-0.5000 F3000.0
M106 S250
G04 P0
G1 X25.0000 F960.0
G1 Y25.0000
G1 X-25.0000
G1 Y-25.0000
M106 S250
G04 P0
G1 Z-1.0000 F3000.0
M106 S250
G04 P0
G1 X25.0000 F960.0
G1 Y25.0000
G1 X-25.0000
G1 Y-25.0000
M106 S25
G0 Z0.1000 F3000
M106 S25
M107
G0 X0.0000 Y0.0000 Z220 F3000


Im Repetier-Host sieht es dann so aus:



das selbe aus Inkscape mit dem Jtech-Plugin:



Oder mal als Vergleich dieses Logo:


so sieht das ganze im Repetier-Host aus mit einem Gcode aus Inkscape:



und hier mit einem Gcode aus Cut2d , zusätzlich wird das Logo dann gleich ausgeschnitten (hoffe ich):





Was haltet Ihr davon? Gibt es Fehler? Oder was kann verbessert werden?

Würde mich über eine Hilfestellung sehr freuen.

Grüße

Mirko
Re: Cut2D-Postprozessor für Lasercutter
February 19, 2016 04:16AM
Mirko, respekt vor Deiner Arbeit, aber was ich nicht verstehe ist: was ist jetzt besser als bei Inkscape? Ich zeichne in Inkscape eigentlich nie selbst, sondern importiere DXF die ich mit Solid Works gezeichnet habe. Oder ich wandle mit dem Tool direkt Bitmaps um...Ich kann hier nur soviel beitragen als zu sagen, dass das Plugin für Inkscape wirklich gut funktioniert! Zeichnen mag ich damit allerdings auch nicht...

Edited 1 time(s). Last edit at 02/19/2016 08:11AM by Protoprinter.


Deltadrucker, Tantillus Reborn by Toolson/Protoprinter, meine kommerzielle Webseite
VDX
Re: Cut2D-Postprozessor für Lasercutter
February 19, 2016 04:37AM
... ich habe mit Inkscape auch schon aufgezogene Scans von Zeitungsdrucken, die so nicht zu vektorisieren gingen, nachgezeichnet - geht mit etwas Einarbeitung recht gut mit dem Spline-Tool.

Meist sind das lustige Motive, die meine Frau oder die Kinder aus einem Katalog oder Tageszeitung rausschneiden - zuletzt der Halloween-Elch-Schwibbogen:
[forums.reprap.org]


Viktor
--------
Aufruf zum Projekt "Müll-freie Meere" - [reprap.org] -- Deutsche Facebook-Gruppe - [www.facebook.com]

Call for the project "garbage-free seas" - [reprap.org]
Re: Cut2D-Postprozessor für Lasercutter
February 19, 2016 04:23PM
Hallo,

erstmal bitte nicht falsch verstehen, ich möchte nicht Inkscape schlecht machen oder es jemanden vermiesen.
Das ist ein tolles Opensource-Projekt und vor allem kostenlos.
Es gibt viele Plugin´s wie zB. von Repetier :
http://www.repetier.com/repetier-g-code-plugin-for-inskscape/

oder das Tabbed-Box-Maker Plugin:
https://github.com/hellerbarde/inkscape-boxmaker
usw. usw.
Zum Konvertieren von Dateien ist es wirklich super, da unheimlich viele Formate unterstützt werden.
Beruflich habe ich eher eine Vorliebe zu DXF oder DWG-Dateien....
Das obige Logo habe ich auch von SVG mit Inkscape in DXF umwandeln können und in Cut2D eingelesen.

Was macht Cut2D anders oder was könnte man machen.
Erstmal Inkscape, Vorgehensweise ist ja bekannt:
Bei Inkscape markiert man das Bild/Objekt und wandelt es in Pfade um, startet das Plugin gibt die Anzahl der Passes/Durchläufe ein,
ebenso ein paar andere Parameter, klickt auf anwenden, eine Gcode-Datei wird ausgegeben.
Ergebnis siehe oben.

Beispiel Cut2D:
erstmal ein neues Projekt anlegen
dort gibt man Materialgröße an, ebenso wo die Nullpunkte in X Y Z sind, mm /inch usw.


Im Tool-Editor ein neues Werkzeug angelegt:


nun eine zB DXF Datei importieren
Hier der Unterschied, man arbeitet mit Vektoren.
entweder alles markieren oder den gewünschten Vektor.
Tool auswählen, Cut-Depth eingeben
auf Calculate klicken.
hier habe ich mal den innerern Vektor markiert, der einmal abgefahren werden soll


Ergebnis:


hier den nächsten Vektor markiert, dieser soll aber 2x abgefahren werden:
Cut-Depth 1.00mm


Ergebnis:


nun die Buchstaben markiert, aber nun als Pocket-Toolpath.
das heißt, er füllt die Buchstaben aus:


Ergebnis:


nun den äußeren, aber der soll komplett ausgeschnitten werden.
Cut-Depth 3,00mm


Ergebnis:


zum Schluss alle Tool-Pfade markieren, Postprozessor auswählen und als Gcode speichern:


Im Repetier-Host sieht es dann so aus:


Ja ich weiß viele Klicks, mehr als beim Inkscape-Plugin.
aber ein ganz anderes Ergebnis.
Das ganze soll nur als Beispiel sein, das Laser Logo hat sich dazu angeboten.
Möglichkeiten gibt es noch viel mehr.
Jetzt muss es nur noch funktionieren.....

Grüße
Mirko
Re: Cut2D-Postprozessor für Lasercutter
February 22, 2016 02:51AM
Interessant! Mein Hauptproblem ist aktuell die Positionierung von Teilen wenn ich erst gravieren dann schneiden will. Graviert wird bei mir zeilenweise nach vorgegebenen Bitmap, zum schneiden verwende ich halt Inkscape. Momentan habe ich geschnittene Teile dann manuell ausgerichtet und dafür die Mitte des Garavierbilds angefahren, die Diode mit minimaler Leistung eingeschaltet so daß ich einen Punkt sehen kann. Nicht wirklich elegant. Aber Inkscape kann halt nicht gravieren...wie wird die Fläche vom pocket toolpath ausgefüllt? Zeilenweise? Ich arbeite mit dem Mac, das Laser Software Paket läuft in einer VM. Das ist auch etwas unbequem...


Deltadrucker, Tantillus Reborn by Toolson/Protoprinter, meine kommerzielle Webseite
VDX
Re: Cut2D-Postprozessor für Lasercutter
February 22, 2016 03:05AM
... ich graviere und schneide mit der selben Software durch Anpassen der Laserleistung über die jeweilige Pulszeit.

Ich erzeuge jeweils zwei Ausgabefiles mit demselben Nullpunkt, stelle die Leistung/Pulszeit auf 'gravieren' (etwa 0.5% am 10-Gang-Wendeltrimmer + Reset am Lasertreiber zum Übernehmen), lasere das erste File.

Dann lade ich das zweite File, stelle die Pulszeit auf etwa 40% (+Reset am Lasertreiber) damit's nicht so stark kokelt, und schneide die Teile aus ...


Viktor
--------
Aufruf zum Projekt "Müll-freie Meere" - [reprap.org] -- Deutsche Facebook-Gruppe - [www.facebook.com]

Call for the project "garbage-free seas" - [reprap.org]
Re: Cut2D-Postprozessor für Lasercutter
February 22, 2016 03:37AM
Hallo Viktor,
ja, wenn ich in Inkscape zwischen "schreiben" und schneiden wechlse, klappt das bei mir ja auch. Ich klicke die entsprechenden Vektoren an und generiere mit unterschiedlichen Leistungs-Parametern den Gcode - das klappt wunderbar. Wenn ich aber zB. einen Schriftzug mit Emblem s/w gravieren will, kann Inkscape das nicht mehr, ich kann halt keine schwarzen Flächen erzeugen...da hilf mir Laser Etch das ähnlich wie das Pic2Gcode zeilenweise mein Bild lasert...Und da habe ich mein Problem mit unterschiedlichem Nullpunkt weil die generierten Gcodes aus zwei unterschiedlichen Programmen kommen. Der Nullpunkt bei Laser Etch richtet sich nach der Grösse/Auflöung des verwendeten Bitmaps...


Deltadrucker, Tantillus Reborn by Toolson/Protoprinter, meine kommerzielle Webseite
VDX
Re: Cut2D-Postprozessor für Lasercutter
February 22, 2016 05:08AM
... mit Inkscape erzeuge ich mir nur die Konturen aus Bildvorlagen - die eigentlichen Laser-Files mache ich dann in anderen Programmen ... meist in IsyCAM (direkter NCP-Export) oder in einem Programm, das in der Lage ist, NCP oder G-Code oder HPGL-Files auszugeben, die ich ins CAM importieren kann.

Je nachdem, was ich für Vorlagen habe oder beim Lasern optimieren möchte, sind das manchmal also schon recht unterschiedliche "Wege zum Ziel" winking smiley


Viktor
--------
Aufruf zum Projekt "Müll-freie Meere" - [reprap.org] -- Deutsche Facebook-Gruppe - [www.facebook.com]

Call for the project "garbage-free seas" - [reprap.org]
Re: Cut2D-Postprozessor für Lasercutter
February 24, 2016 05:03PM
Hallo,

wie gesagt alles reine Theorie meinerseits.
Was ich persönlich praktisch finde ist die ist die Positionierung des Nullpunktes.
So wie ich es von der Fräse kenne.
Das ist ein Punkt der mich bei Inkscape ein wenig stört.
Dort kann man den Nullpunkt nicht verschieben. Habe zwar gegoogelt aber nichts gescheites dazu gefunden.
Oder ich bin zu blöd.

Handhaben möchte ich es so, vielleicht schon im Postprozessor gesehen:
an den Laserkopf soll noch ein kleiner Kreuzlinienlaser.
Ich weiß eigentlich doppeltgemoppelt, er soll nur zum ausrichten des Werkstückes dienen.
Mit einem Punkt habe ich nur einen Punkt, mit einem Kreuz kann man es schon etwas genauer in X & Y ausrichten
Mit diesem fahre ich den Werkstücknullpunkt an, den ich im Cut2d festgelegt habe, zumindest erstmal in X und Y.
Dann mittels Lehre wie bei @Viktor einer Lehre oder nach Erfahrungswerten auch in Z.
Dann einfach auf Start. Im Postprozessor ist der Startcode wie folgt:
- die aktuelle Position wird mittels G92 X0 Y0 Z0 genullt
- mit G0 Xxxx Yxxx werden die Versatzwerte des Kreuzlinienlasers angefahren
nun sollte die Laserdiode genau auf meinem Nullpunkt sein den ich in Cut2D festgelegt habe
- nun noch ein G92 X0 Y0 Z0, damit die aktuelle Position wieder genullt wird
Nach dieser Prozedur soll er mit dem Lasern anfangen.
Also wie im Prinzip bei einer CNC-Fräse....

Quote
.wie wird die Fläche vom pocket toolpath ausgefüllt? Zeilenweise?

hier mal ein Screenshot aus Cut2d:



das "a" ist 9x9mm groß. Man kann die Zeilenweise Abarbeitung der Pfade sehen.
Das nennt sich Raster. Als Winkel habe ich 0 eingeben. Möglich wären auch andere Winkel.
Die Anzahl der Pfade in horizontaler Richtung hängen natürlich von der Breite des Fräsers oder des Lasers ab.
Ich habe da mal 0.2mm eingeben. Mit 0.5mm sieht es dann so aus:



Eine andere Variante wäre diese hier, halte ich aber nicht für sinnvoll, und nennt sich Offset:



Du kannst mir ja gerne mal eine Datei zusenden.
Ich erzeuge den Gcode und Du kannst es mal Testen ob es funktioniert.
Bräuchte nur ein paar Parameter von Dir, wo zB. Dein Nullpunkt ist.

@Viktor
Du pulst ja den Laser, so wie ich es gelesen habe.
Wenn ich es richtig verstanden habe bekommt der Lasertreiber die Pulse vom Extruder-Stepper.
Wie machst Du das genau? Machst du dann quasi aus einem DXF-File eine STL-Datei die Du dann mit einem Slicer in einen Gcode umwandelst?
Entschuldige bitte wenn ich das so Laienhaft ausdrücke mit meinem Laienwissen.

Grüße

Mirko
VDX
Re: Cut2D-Postprozessor für Lasercutter
February 24, 2016 05:40PM
... bei meinem 'eigentlichen' Lasergravierer habe ich zum Pulsen die Schritt-Takte der X- und Y-Treiber rausgeführt und über einen Arduino Nano "verodert" und mit einem "Laser-ON"-Pin vom CNC-Controller verknüpft -- das ergibt dann zusammen das Puls-Signal für den jeweiligen Lasertreiber.

Wenn ich vom Controller aus "Laser-ON" auf HIGH setze, dann erzeugt jeder Schritt in X oder Y einen Laserpuls ... die sind je nach Leistungseistellung bei den blauen Laserdioden zwischen 4µs bis 400µs, was ich über einen 10Gang-Wendeltrimmer als Leistungsvorwahl zwischen 0% und 100% einstellen kann.

Fürs Lasern mit dem Faserlaser reduziere ich die Pulszeiten über einen ArduinoDue auf bis zu 500ns, mit einem BeagleBoneBlack-Lasercontroller auf bis zu 50ns - dafür kann ich dann die Laserleistung bis auf 120Watt pro Puls erhöhen, was deutlich mehr Effektivleistung ist, als mit einer blauen Diode, so daß ich damit auch Keramik und Metall direkt bearbeiten kann.

Alternativ habe ich noch ein paar andere Geräte mit verschiedenen Controller-Varianten, die ich je nach Bedarf gegeneinander austauschen kann.

Für den DIY-Bereich interessant wäre eventuell meine aktuelle Modifikation von Pronterface für die Entwicklung eines Inkjet-Pastedispensers, weil der praktisch genauso angesteuert wird, wie ein Lasergravierer - hier gebe ich dann die Pulse per E-Stepper-Takt mit frei einstellbaren "Pulsen pro Millimeter" aus, kann aber auch Einzelne 'Punkte' mit frei einstellbaren Pulsen pro Punkt ausgeben, was beim Lasern einem Durchbohren mit einer Puls-Sequenz entsprechen würde, beim Dispensen aber die Tropfengröße definiert oder bei einer 'thixotropen' Paste einen 'Turm' erzeugt.

Zum Positionieren und auch zum "manuellen Teachen" von Punkten/Pads, Konturen oder importieren Makros (G-Code- oder HPGL-Dateien) verwende ich eine kleine Mikroskop-Kamera mit einer Orts-Auflösung im Bereich von ein paar Hundertsteln ... ginge bei genügend Vergrößerung aber auch bis zu einem Mikrometer genau.

Den Offset zwischen Kamera und Werkzeug-Position (ein oder mehrere Dispenser, oder ein Laser) kann ich vorgeben, bin gerade dabei, das über einen Button 'automatisch' einstellbar zu machen -- Gerät Nullen, mit dem Dispenser einen Tropfen drucken oder mit dem Laser ein Loch brennen, mit der in XY versetzten Kamera drüberfahren und die jetzige Position als Werkzeug-Offset übernehmen.

Ich kann dann jederzeit zwischen Kamera und Werkzeug (oder mehreren Werkzeugen) wechseln, um entweder die aktuelle Geometrie zu dispensen/lasern, oder neue Konturen zu teachen oder Makro-Files einzulesen.

Die Konturen/Geometrien erstelle ich im 'Standard'-G-Code mit ein paar Anpassungen fürs nachträgliche Editieren.

Vorhandene G-Code-Dateien kann ich einlesen und in meine Variante konvertieren, ich kann aber auch Gerber-Files für Lötpad-Dispensen importieren, oder HPGL-Dateien, so daß ich die Files sowohl mit den typischen RepRap-Slicern erstellen kann (auch mehrere Ebenen für "3D-Druck"), als auch über jedes Programm, das in der Lage ist, HPGL oder G-Code zu exportieren ... DXF kommt demnächst vermutlich auch noch rein ...

Edited 1 time(s). Last edit at 02/24/2016 05:43PM by VDX.


Viktor
--------
Aufruf zum Projekt "Müll-freie Meere" - [reprap.org] -- Deutsche Facebook-Gruppe - [www.facebook.com]

Call for the project "garbage-free seas" - [reprap.org]
VDX
Re: Cut2D-Postprozessor für Lasercutter
February 25, 2016 04:57AM
... ich habe den letzten Post wegen einer ähnlich gelagerten Diskussion auch in "Peters CNC-Ecke" verlinkt - wer da einen account hat, könnte dort ja auch was dazu beitragen winking smiley


Viktor
--------
Aufruf zum Projekt "Müll-freie Meere" - [reprap.org] -- Deutsche Facebook-Gruppe - [www.facebook.com]

Call for the project "garbage-free seas" - [reprap.org]
Re: Cut2D-Postprozessor für Lasercutter
February 28, 2016 06:24PM
Hallo,

@Viktor
Danke für Deine ausführliche Antwort.
Dein Posting musste ich mir aber 4mal durchlesen.
Das lag aber nicht an Deiner Schreibweise...da fehlt mir einfach das entsprechende Wissen.
Aber im Forum von Peters CNC-Ecke habe ich einen interessanten Thread entdeckt.
So das ich mir nun das Ganze besser vorstellen kann bzw. ich es nun etwas besser verstehe.

grob gesagt:
Step-X UND LASER ON ODER Step-Y UND Laser ON ---> Wattuinos ---> 10Gang-Wendeltrimmer ---> Optokoppler ----> Lasertreiber ---> Laserdiode
Über die Pulsdauer in µs wird die Leistung des Lasers geregelt.
Damit erreicht man quasi einen gleichmäßigen Schnittverlauf.
Wenn zB. in Ecken abgebremst wird usw.
Laienhaft ausgedrückt.

Fertig zu kaufen gibt es das glaube ich nicht ???
Oder könnte das jemand für mich als Lötasgeniker zusammenlöten?

Grüße

Mirko
VDX
Re: Cut2D-Postprozessor für Lasercutter
February 28, 2016 06:46PM
Hi Mirko,

nein, fertig habe ich das so noch nicht gesehen.

Für mich selber habe ich das (damals noch ohne Wattuino) für meinen zweiten CO2-laserplotter etwa um 1992 herum das erste mal zusammengelötet.

Die letzten paar Jahre habe ich das in der damaligen Anstellung bei imes-icore (Isel) in kommerziellen Anlagen verbaut und mache das seit letztem Jahr wieder für meine aktuellen Job - also kann ich dir das auch nicht "einfach so zusammenlöten" eye rolling smiley

Hier und in der CNC-Ecke habe ich aber über die Zeit soviele Tips und Hinweise gegeben, daß man sich das relativ einfach auch selber aufbauen kann.

Irgendwann werden aber auch die Chinesen auf den Trichter kommen -- dann gibt's von denen eventuell auch eine billig-Controller-Variante zu kaufen ...


Viktor
--------
Aufruf zum Projekt "Müll-freie Meere" - [reprap.org] -- Deutsche Facebook-Gruppe - [www.facebook.com]

Call for the project "garbage-free seas" - [reprap.org]
Re: Cut2D-Postprozessor für Lasercutter
March 01, 2016 05:41PM
Hallo Viktor,

Danke Viktor für Deine Antwort.
Zwar nicht ganz das was ich erhofft habe smiling smiley, aber ich kann Dich verstehen.
Irgendwie habe ich das immer zwischen Deinen Zeilen lesen können , in den vielen Foren in denen Du unterwegs bist.
Ja Du hast schon viele Tips gegeben und ich hoffe es wird auch weiter so sein smileys with beer

Das mit den E-Stepper-Takt verstehe ich noch nicht so richtig.
Mal ganz dumm gefragt, sorry, woher bekommt der E-Stepper-Driver seinen Takt her?
Kann man den einfach abgreifen, also lt. pins.h zB. E0_STEP_PIN 26(Ramps) ?
Oder muss vorher erst was "irgendwie" und "irgendwas" in den Gcode damit der Extruder zB.E0 aktiv wird?
Ich weiß sau blöd beschrieben.

Grüße
Mirko
Re: Cut2D-Postprozessor für Lasercutter
March 01, 2016 11:44PM
Quote
okrim
Kann man den einfach abgreifen, also lt. pins.h zB. E0_STEP_PIN 26(Ramps) ?

Genau das. Normale Stepper-Treiber bekommen ja quasi auch nur einen Takt vorgegeben.
Und aus den vielen kurzen Signalen musst du was basteln mit dem dein Laser/Lasertreiber mit klarkommt.


Triffid Hunter's Calibration Guide --> X <-- Drill for new Monitor Most important Gcode.
VDX
Re: Cut2D-Postprozessor für Lasercutter
March 02, 2016 02:13AM
.... ja, ist einfach nur das "STEP"-Signal für den Extruder-Motor - der Digital-Pins geben beim Due bei HIGH 3.3V aus, die Lasertreiber brauchen aber 5V -- deswegen (und als Schutz) lasse ich die Pins über schnelle Optokoppler laufen und schalte noch einen 74HCT14 Schmitttrigger-Inverter dahinter, da ein Optokoppler normalerweise den Pegel invertiert ...


Viktor
--------
Aufruf zum Projekt "Müll-freie Meere" - [reprap.org] -- Deutsche Facebook-Gruppe - [www.facebook.com]

Call for the project "garbage-free seas" - [reprap.org]
Re: Cut2D-Postprozessor für Lasercutter
March 02, 2016 06:06PM
Halllo,

Danke für die Rückinfo.
Der Groschen rollt langsam aber fällt noch nicht ganz....

Also jetzt könnte man das E-Step-Signal in der pins.h auch auch auf einen ungenutzten Ausgang legen.
Wie zB. D8/D9/D10. Heizbett und Hottend benötige ich nicht....
Die haben Schraubklemmen, da muss ich nicht löten .....grinning smiley

Grüße

Mirko
VDX
Re: Cut2D-Postprozessor für Lasercutter
March 02, 2016 07:02PM
... ja kannst du machen - ich habe mir aber der Einfachheit halber kleine Lochraster-Platinchen aufgebaut, die direkt auf die Sockel für den Extruder-Treiber draufpassen ...


Viktor
--------
Aufruf zum Projekt "Müll-freie Meere" - [reprap.org] -- Deutsche Facebook-Gruppe - [www.facebook.com]

Call for the project "garbage-free seas" - [reprap.org]
Re: Cut2D-Postprozessor für Lasercutter
March 04, 2016 06:11PM
Hallo,

ich will mal kurz zusammenfassen welche Möglichkeiten ich hätte.
Variante 1 quasi Quick & dirty ist per PWM über D9.
Das Problem hierbei, der Laser ist nur über den PWM Ausgang des Lüfters gesteuert.
Es könnte also passieren das D9 zu langsam reagiert, dh. der Laser noch an ist wo er eigentlich schon aus sein sollte.
bzw. noch nicht an ist wo er schon an sein sollte.
Ich hoffe ich habe es so einigermaßen richtig formuliert.

Variante 2
man nutzt irgendein Step-Signal, entweder einfach das E-Step-Signal abgreifen oder X-Step und Y-Step, ggf. auch noch Z-Step.
Nun verknüpft man diese Signale mit dem Laser-ON-Signal und regelt die Pulslänge über ein Potentiometer usw.
Der Laser ist dann rechtzeitig an bzw. aus. bzw. wird wenn es in Richtung einer Ecke geht und der Carriage abgebremst wird
Entsprechend der Step-Pulse auch langsamer bzw. danach wieder schneller.
Ich hoffe ich habe es einigermaßen verständlich ausgedrückt.
(an den 3 Sätzen bastel ich schon 5 Minuten)


nachdem ich mir ein paar Beiträge hier und in Peters-CNC-Ecke durchgelesen
und Google gequält habe bis ich schon Sicherheitsabfragen mit unleserlichen Captcha´s bei Google eingeben muß.
Wieder eins vorweg ich kenne mich damit nicht aus. Das war das erste mal das ich sowas gemacht und mich damit beschäftigt habe.

herausgekommen ist dies hier:



Falls ich Fehler gemacht habe, so möge man mir bitte Verzeihen.grinning smiley
Naja im schlimmsten Fall raucht es kurz.....
Der Drehpott ist nicht direkt angeschlossen da er irgendwo an der Front eingebaut werden soll.
Das ganze hinter der Front einzubauen macht auch keinen Sinn, da ich dann mit einem langen Kabel erst vom Ramps/Rumba/Radds-Board erst zu Front müsste,
um dann wieder mit einem langen Kabel wieder zurück zum Lasertreiber usw.

Das nächste ist das Programm für den Arduino.
Mein letztes Programm habe ich Mitte/Ende der 80iger Jahre des letzen Jahrhunderts in Basic geschrieben auf einem ZX80-Verschnitt und nannte sich Z1013.
Also verzeiht mir bitte auch hier meine Unwissenheit.
Bis jetzt habe ich nur in der configuration.h rumdoktern müssen und false auf true gesetzt und umgekehrt....
Mein erster Versuch heute:



(die wahren Programmierer unter Euch werden aufschreien , das ich ein Klickie-Bunti-Programm benutzt habe)

Die Analog-Geschichte passt noch nicht , weiß ich (denke ich), damit muss ich mich noch beschäftigen.
Die dient ja dazu an den D6 wieder ein PWM-Signal zu schicken geregelt über den Potentiometer.
Oben ist die "ODER"-Geschichte.
Also wenn STEP-X UND LASER-ON ODER STEP-Y UND LASER-ON DANN D5 AN (LED) UND D6 AN (LASER)
D5 und D6 sind digitale Ausgänge mit PWM.
Evtl. könnte man noch hier das Z-STEP mit einbauen um evtl. den Laser bei Verfahrwegen in Z oder Zustellbewegungen auszuschalten.
bzw. sicherstellen das er AUS ist.

Wie gesagt blanke Theorie meinerseits und Halbwissen aus Foren und Google der letzten Tage.

Grüße
Mirko
VDX
Re: Cut2D-Postprozessor für Lasercutter
March 04, 2016 07:24PM
... die LED leuchtet, wenn du den Pin D5 auf LOW ziehst, der Laser is an, wenn Pin 6 auf HIGH ist (Optokoppler aus).

Den Pullup-Widerstand R2 solltest du auch auf 470 Ohm setzen ...


Viktor
--------
Aufruf zum Projekt "Müll-freie Meere" - [reprap.org] -- Deutsche Facebook-Gruppe - [www.facebook.com]

Call for the project "garbage-free seas" - [reprap.org]
Re: Cut2D-Postprozessor für Lasercutter
March 04, 2016 08:05PM
Du verwendest einen Optokoppler, stellst aber dann doch wieder eine Verbindung zu den 5V des Arduino her?! Wenn Du nur die Ports des Arduino schützen willst, reicht auch ein sog. "Angstwiderstand" winking smiley in Reihe in Verbindung mit den vorhandenen Z-Dioden im µController.
PS: Fürs erste Mal hast Du eagle aber schon ganz gut im Griff.
Sorry, only registered users may post in this forum.

Click here to login