Ich teste QCAM gerade mit ner Drahterodiermaschine.
Soweit läuft das auch gut.
Den Postprozessor auf CamExporterV2-Basis hab ich mir schon gestrickt.
Ich hab aber ein paar Fragen.
Kann ich einem Werkzeugweg irgendwie einen Startpunkt (Startloch) zuweisen ?
Ist es möglich den CAMExporterV2 im Postprozessor-Skript ein zweites mal Aufrufen zu lassen mit umgekehrter Werkzeugweg-Richtung?
Oder ist es am Ende einfacher WriteFile abzufangen und da etwas zu bauen ?
Gruß Dennis
			
									
									
						EDM
					Forum rules
			
Immer Betriebssystem und QCAD/CAM Version angeben.
Verwendeten Postprozessor angeben.
Zeichnungsdateien und Bildschirmfotos beifügen.
Eine Frage pro Topic.
		
		
	Immer Betriebssystem und QCAD/CAM Version angeben.
Verwendeten Postprozessor angeben.
Zeichnungsdateien und Bildschirmfotos beifügen.
Eine Frage pro Topic.
- 
				CVH
 - Premier Member
 - Posts: 4959
 - Joined: Wed Sep 27, 2017 4:17 pm
 
Re: EDM
Hallo und willkommen im QCAD-Forum.
Bei CNC-Maschinen übersetzt ein Postprozessor lediglich Bewegungsanweisungen in das native Format der Steuerung.
Dies kann ein spezifischer G-Code-Dialekt sein oder auch etwas, das überhaupt nichts mit G-Code zu tun hat.
Ein Postprozessor erstellt den Pfad nicht und kann ihn auch nicht umkehren.
Für einfache Werkzeugwege mag es gut funktionieren.
QCAD/CAM ist derzeit nicht gut für Drahterodieren geeignet.
Erodieren mit einem Stab ist vergleichbar mit Fräsen.
Erodieren mit einem Draht ist eher vergleichbar mit einem Laser, der immer eingeschaltet ist.
Es ist nicht möglich, den Draht zurückzuziehen (in Z) oder auszuschalten (On/Off).
Der Einstiegspfad beginnt typischerweise am Ursprung.
Normalerweise eine G0-Bewegung, eine schnelle Bewegung zum Beginn der Aktion.
Das würde Ihren Draht zerstören ...
Ich glaube, Sie können die Start- oder Ausgangsposition im CAM-Konfigurationsdialog angeben.
Wahrscheinlich für die Position vor allen ersten Werkzeugwegen.
Sie könnten „Traverse“ in eine normale Bewegung (G1) statt einer schnellen Bewegung (G0) übersetzen. (this.rapidMove)
Der inverse Pfad wäre ein zusätzlicher Werkzeugpfad in die entgegengesetzte Richtung.
Wir können für eine Polylinie festlegen, dass der Pfad am Anfang der Polylinie beginnen soll.
Dann wird die Polylinie umgekehrt, bevor der sekundäre Pfad generiert wird.
Deaktivieren Sie die automatische Neugenerierung von Werkzeugpfaden.
Oder verwenden Sie zwei Polylinien als Quelle, eine in Vorwärts- und eine in Rückwärtsrichtung.
Diese sehen natürlich identisch aus und werden übereinander angezeigt.
Grüßen,
CVH
			
									
									
						Bei CNC-Maschinen übersetzt ein Postprozessor lediglich Bewegungsanweisungen in das native Format der Steuerung.
Dies kann ein spezifischer G-Code-Dialekt sein oder auch etwas, das überhaupt nichts mit G-Code zu tun hat.
Ein Postprozessor erstellt den Pfad nicht und kann ihn auch nicht umkehren.
Für einfache Werkzeugwege mag es gut funktionieren.
QCAD/CAM ist derzeit nicht gut für Drahterodieren geeignet.
Erodieren mit einem Stab ist vergleichbar mit Fräsen.
Erodieren mit einem Draht ist eher vergleichbar mit einem Laser, der immer eingeschaltet ist.
Es ist nicht möglich, den Draht zurückzuziehen (in Z) oder auszuschalten (On/Off).
Der Einstiegspfad beginnt typischerweise am Ursprung.
Normalerweise eine G0-Bewegung, eine schnelle Bewegung zum Beginn der Aktion.
Das würde Ihren Draht zerstören ...
Ich glaube, Sie können die Start- oder Ausgangsposition im CAM-Konfigurationsdialog angeben.
Wahrscheinlich für die Position vor allen ersten Werkzeugwegen.
Sie könnten „Traverse“ in eine normale Bewegung (G1) statt einer schnellen Bewegung (G0) übersetzen. (this.rapidMove)
Der inverse Pfad wäre ein zusätzlicher Werkzeugpfad in die entgegengesetzte Richtung.
Wir können für eine Polylinie festlegen, dass der Pfad am Anfang der Polylinie beginnen soll.
Dann wird die Polylinie umgekehrt, bevor der sekundäre Pfad generiert wird.
Deaktivieren Sie die automatische Neugenerierung von Werkzeugpfaden.
Oder verwenden Sie zwei Polylinien als Quelle, eine in Vorwärts- und eine in Rückwärtsrichtung.
Diese sehen natürlich identisch aus und werden übereinander angezeigt.
Grüßen,
CVH
- 
				dennis0815
 - Newbie Member
 - Posts: 4
 - Joined: Sat Oct 11, 2025 10:10 pm
 
Re: EDM
Hi CVH,
ich fange exportPoint von CamExporterV2 ab.
MitsubishiMM.prototype.exportPoint = function(point) {
var t=point.getPosition();
var x=t.getX();
var y=t.getY();
debugger;
// write block strings:
//CamExporterV2.prototype.exportPoint.call(this, point);
};
Da Bohrungen bei einer Drahterodiermaschine keinen Sinn machen (höchstens Startlöcher) kann ich damit meine Start/Zwischenpunkte definieren.
Für das Umdrehen der Kontur habe ich auch schon eine Idee.
Ich schaue mir die Funktion exportCamEntity() von CamExporterV2 momentan an.
Prinzipiell ist es nicht schwierig den Pfad auf einem Stack zu Sammeln und dann Rückwärts auszugeben.
Sonst funktioniert es soweit schon wunderbar.
N1000 (Profil 1)
G41 Y-31.5 M84
G3 X3.2 Y-30.5 I0 J1.
G1 Y-23.015
G2 X5.7 Y-20.515 I2.5 J0
G1 X7.5
G2 X31.55 Y-30.025 I0 J-2.5
G1 X45.15
G2 X29.05 Y-38.475 I-2.5 J0
G1 X7.5
G2 X3.2 Y-42.985 I0. J2.5
G1 Y-35.5
G3 X2.2 Y-34.5 I-1. J0
G40 Y-35.5
G23
N1100 (Profil 2)
G42 Y-29.5 M84
G2 X3.2 Y-30.5 I0 J-1.
G1 Y-35.5
G2 X2.2 Y-36.5 I-1. J0
G40 Y-35.5
G23
			
									
									
						ich fange exportPoint von CamExporterV2 ab.
MitsubishiMM.prototype.exportPoint = function(point) {
var t=point.getPosition();
var x=t.getX();
var y=t.getY();
debugger;
// write block strings:
//CamExporterV2.prototype.exportPoint.call(this, point);
};
Da Bohrungen bei einer Drahterodiermaschine keinen Sinn machen (höchstens Startlöcher) kann ich damit meine Start/Zwischenpunkte definieren.
Für das Umdrehen der Kontur habe ich auch schon eine Idee.
Ich schaue mir die Funktion exportCamEntity() von CamExporterV2 momentan an.
Prinzipiell ist es nicht schwierig den Pfad auf einem Stack zu Sammeln und dann Rückwärts auszugeben.
Sonst funktioniert es soweit schon wunderbar.
N1000 (Profil 1)
G41 Y-31.5 M84
G3 X3.2 Y-30.5 I0 J1.
G1 Y-23.015
G2 X5.7 Y-20.515 I2.5 J0
G1 X7.5
G2 X31.55 Y-30.025 I0 J-2.5
G1 X45.15
G2 X29.05 Y-38.475 I-2.5 J0
G1 X7.5
G2 X3.2 Y-42.985 I0. J2.5
G1 Y-35.5
G3 X2.2 Y-34.5 I-1. J0
G40 Y-35.5
G23
N1100 (Profil 2)
G42 Y-29.5 M84
G2 X3.2 Y-30.5 I0 J-1.
G1 Y-35.5
G2 X2.2 Y-36.5 I-1. J0
G40 Y-35.5
G23
- 
				CVH
 - Premier Member
 - Posts: 4959
 - Joined: Wed Sep 27, 2017 4:17 pm
 
Re: EDM
Hallo,
Bitte fügen Sie den Code in ein Codefeld ein.
Bearbeiten Sie Ihren Beitrag, wählen Sie einen Codeabschnitt aus und klicken Sie auf die Schaltfläche [</>] über dem Textfeld.
exportPoint oder ein Loch bohren, ist mit Drahterodieren tatsächlich eher unmöglich.
Ich habe Probleme, die G-Code-Sequenz zu verstehen.
Als normaler GCode interpretiert sieht es so aus:
Zumindest handelt es sich hierbei um einen Offset zu einer Kontur mit G41 (Kompensation des linken Fräserradius).
Der Versatzradius ist auf CAM-Ebene bekannt, aber nicht im G-Code definiert.
Soweit ich weiß: M84 setzt die Bearbeitung auf EIN.
Mit der Zeilennummerierung stimmt etwas nicht ... N1000, N1100.
Jedes Profil endet mit G23 (Soweit ich weiß: Soft Limits deaktiviert).
Ein G22 tritt jedoch nicht auf.
Es ist bereits unmöglich, dass der G-Code-Importer vier unterbrochene und nicht verbundene Pfade anzeigt.
 
G1/2/3-Bewegungsanweisungen beginnen immer von der zuletzt erreichten Position.
Beunruhigt ...
Grüßen,
CVH
			
									
									
						Bitte fügen Sie den Code in ein Codefeld ein.
Bearbeiten Sie Ihren Beitrag, wählen Sie einen Codeabschnitt aus und klicken Sie auf die Schaltfläche [</>] über dem Textfeld.
exportPoint oder ein Loch bohren, ist mit Drahterodieren tatsächlich eher unmöglich.
Ich habe Probleme, die G-Code-Sequenz zu verstehen.
Als normaler GCode interpretiert sieht es so aus:
Zumindest handelt es sich hierbei um einen Offset zu einer Kontur mit G41 (Kompensation des linken Fräserradius).
Der Versatzradius ist auf CAM-Ebene bekannt, aber nicht im G-Code definiert.
Soweit ich weiß: M84 setzt die Bearbeitung auf EIN.
Mit der Zeilennummerierung stimmt etwas nicht ... N1000, N1100.
Jedes Profil endet mit G23 (Soweit ich weiß: Soft Limits deaktiviert).
Ein G22 tritt jedoch nicht auf.
Es ist bereits unmöglich, dass der G-Code-Importer vier unterbrochene und nicht verbundene Pfade anzeigt.
G1/2/3-Bewegungsanweisungen beginnen immer von der zuletzt erreichten Position.
Beunruhigt ...
Grüßen,
CVH
- 
				dennis0815
 - Newbie Member
 - Posts: 4
 - Joined: Sat Oct 11, 2025 10:10 pm
 
Re: EDM
Sorry, da waren noch paar unsinnige Optimierungen. Da sind dann wichtige G1-Befehle rausgefallen.
G23 ist Unterprogrammende bei Mitsubishi
Die Zeilennummern werden nur als Sprungpunkte benutzt G22 L1 H1000 um sich "selbst" aufzurufen.
G41 ist generell ein G41+G1
Da ich gestern auch endlich den Script-Debugger entdeckt habe gehts jetzt auch etwas schneller voran.
Gruß Dennis
			
									
									
						G23 ist Unterprogrammende bei Mitsubishi
Die Zeilennummern werden nur als Sprungpunkte benutzt G22 L1 H1000 um sich "selbst" aufzurufen.
G41 ist generell ein G41+G1
Da ich gestern auch endlich den Script-Debugger entdeckt habe gehts jetzt auch etwas schneller voran.
Code: Select all
G90 G54
G0 X2.7 Y-30.5
EH701 FH731 H1
G22 L1 H1000
EH702 FH732 H2
G22 L1 H1100
M02
N1000 (Profil 1)
G41 Y-31. M84
G3 X3.2 Y-30.5 I0 J0.5
G1 Y-23.015
G2 X5.7 Y-20.515 I2.5 J0
G1 X7.5
Y-27.525
X29.05
G2 X31.55 Y-30.025 I0 J-2.5
G1 X45.15
Y-35.975
X31.55
G2 X29.05 Y-38.475 I-2.5 J0
G1 X7.5
Y-45.485
X5.7
G2 X3.2 Y-42.985 I0. J2.5
G1 Y-35.5
G3 X2.7 Y-35. I-0.5 J0
G40 Y-35.5
G23
- 
				CVH
 - Premier Member
 - Posts: 4959
 - Joined: Wed Sep 27, 2017 4:17 pm
 
Re: EDM
G41 ist tatsächlich eine lineare Kompensation entlang einer geraden Bewegung (G1).
G41 = G41 + (G1)
Meine CNC würde bei G41 vor einer G2/3-Bewegung einen Fehler ausgeben.
Zum Beispiel G41 vor einem kreisförmigen Anlauf.
Eine lineare Kompensation eines Bogens ist nicht kreisförmig und im Allgemeinen kann eine CNC damit nicht umgehen.
Aber bei Ihrer Ein- und Ausstiegsbewegung läuft etwas schief.
G41-Vergütung erklärt:
Der rote und der grüne Pfad sind die programmierten Pfade:
Der gepunktete Pfad in Cyan ist der tatsächliche Pfad des Werkzeugzentrums R=1 (Fräser, Bohrer, Draht usw.).
Stellen Sie sich das Werkzeug bei (5, 3) vor und bewegen Sie es in Richtung (10, 4) ...
... Es sollte klar sein, dass es unterhalb des programmierten Einfahrwegs (5, 3) - (10, 3) schneidet.
Eine G0-Bewegung sollte immer außerhalb des Materials durchgeführt werden.
Die Kompensationsbewegung muss so definiert sein, dass sie Ihr Teil nicht unbeabsichtigt falsch schneidet.
Grüß,
CVH
			
									
									
						G41 = G41 + (G1)
Meine CNC würde bei G41 vor einer G2/3-Bewegung einen Fehler ausgeben.
Zum Beispiel G41 vor einem kreisförmigen Anlauf.
Eine lineare Kompensation eines Bogens ist nicht kreisförmig und im Allgemeinen kann eine CNC damit nicht umgehen.
Aber bei Ihrer Ein- und Ausstiegsbewegung läuft etwas schief.
G41-Vergütung erklärt:
Der rote und der grüne Pfad sind die programmierten Pfade:
Code: Select all
G0 X5 Y3
G41 X10 Y3
G1 X## Y3Stellen Sie sich das Werkzeug bei (5, 3) vor und bewegen Sie es in Richtung (10, 4) ...
... Es sollte klar sein, dass es unterhalb des programmierten Einfahrwegs (5, 3) - (10, 3) schneidet.
Eine G0-Bewegung sollte immer außerhalb des Materials durchgeführt werden.
Die Kompensationsbewegung muss so definiert sein, dass sie Ihr Teil nicht unbeabsichtigt falsch schneidet.
Grüß,
CVH
- 
				dennis0815
 - Newbie Member
 - Posts: 4
 - Joined: Sat Oct 11, 2025 10:10 pm
 
Re: EDM
So eine Drahterodiermaschine ist nur bedingt wie eine Fräsmaschine zu verstehen.
Zwar hatte meine alte Fanuc theoretisch ein Fräsmaschinenchassis, aber die Programmierung war angepasst.
Ähnlich verhält sich das bei meiner aktuellen Mitsubishi.
Es existiert ein unterer Kopf mit X & Y Achse, ein oberer Kopf mit U & V-Achse für Winkelschnitt und natürlich eine Z-Achse.
Die wird aber üblicherweise während dem Erodieren nicht bewegt.
Der Draht (aktuell Messing) selbst hat auch nur einen Durchmesser von 0,2 mm.
Bei G41/G42 ist die wichtigste Bedingung, daß ausreichend Verfahrweg für das Auffahren auf die Kontur vorhanden ist.
Die Maschine lässt es sogar zu während der Verfahrbewegung die Offsetwerte zu ändern und passt dann den Abstand dynamisch an.
Im Nachhinein kommt auch noch der A-Befehl hinzu für Auslenkung des Drahtes für Winkelschneiden oder die Programmierung einer oberen und unteren Kontur für komplexere Winkelgeometrien.
Da muss man auch darauf achten, daß es ausreichend Verfahrweg für die Auslenkung bei G41 gibt, sonst gibt es einen Einschnitt beim Auffahren.
Ich schau mal ob an der Maschine ein paar Screenshots mache um das zu Verbildlichen.
Was ich noch beim Profilwerkzeugweg vermisse ist ein negatives überlappen. Also ein Steg. Das ist aber weniger wichtig. Einzelkonturen sind schnell erzeugt.
Die meisten genauen Teile werden mit Pendelwerkzeugwegen und unterschiedlichen Offsets/Technologien gefahren in mehreren Schnitten um die Parallelität und Oberflächengüte zu erreichen. Da bin ich aber schon an einer Lösung dran.
Gruß Dennis
P.S.:Können wir uns nicht duzen ?
			
									
									
						Zwar hatte meine alte Fanuc theoretisch ein Fräsmaschinenchassis, aber die Programmierung war angepasst.
Ähnlich verhält sich das bei meiner aktuellen Mitsubishi.
Es existiert ein unterer Kopf mit X & Y Achse, ein oberer Kopf mit U & V-Achse für Winkelschnitt und natürlich eine Z-Achse.
Die wird aber üblicherweise während dem Erodieren nicht bewegt.
Der Draht (aktuell Messing) selbst hat auch nur einen Durchmesser von 0,2 mm.
Bei G41/G42 ist die wichtigste Bedingung, daß ausreichend Verfahrweg für das Auffahren auf die Kontur vorhanden ist.
Die Maschine lässt es sogar zu während der Verfahrbewegung die Offsetwerte zu ändern und passt dann den Abstand dynamisch an.
Im Nachhinein kommt auch noch der A-Befehl hinzu für Auslenkung des Drahtes für Winkelschneiden oder die Programmierung einer oberen und unteren Kontur für komplexere Winkelgeometrien.
Da muss man auch darauf achten, daß es ausreichend Verfahrweg für die Auslenkung bei G41 gibt, sonst gibt es einen Einschnitt beim Auffahren.
Ich schau mal ob an der Maschine ein paar Screenshots mache um das zu Verbildlichen.
Was ich noch beim Profilwerkzeugweg vermisse ist ein negatives überlappen. Also ein Steg. Das ist aber weniger wichtig. Einzelkonturen sind schnell erzeugt.
Die meisten genauen Teile werden mit Pendelwerkzeugwegen und unterschiedlichen Offsets/Technologien gefahren in mehreren Schnitten um die Parallelität und Oberflächengüte zu erreichen. Da bin ich aber schon an einer Lösung dran.
Gruß Dennis
P.S.:Können wir uns nicht duzen ?
- 
				CVH
 - Premier Member
 - Posts: 4959
 - Joined: Wed Sep 27, 2017 4:17 pm
 
Re: EDM
Genau das sehe ich im G-Code nicht.dennis0815 wrote: ↑Wed Oct 29, 2025 10:22 pmDa muss man auch darauf achten, daß es ausreichend Verfahrweg für die Auslenkung bei G41 gibt, sonst gibt es einen Einschnitt beim Auffahren.
Es gab eine G0-Bewegung von der Startposition (0,0; 0,0) nach (2,7; -30,5),
Gefolgt von einer Kompensationsbewegung in Richtung (2,7; -31) ...
... Diese würde bei (2,77844645; -30,89223227) enden, da sie sich als dritte Bewegung einem Kreisbogen annähert.
Es scheint, dass meine Vermutung bezüglich des Drahtdurchmessers richtig war.
In diesem Maßstab ist es schwierig, die Korrektheit des Werkzeugwegs zu überprüfen.
Ich bin mir ziemlich sicher, dass G40/41/42 identisch behandelt werden.
Warum das Rad neu erfinden?
Ich wüsste nicht, wie man mit einem Drahterodiergerät eine Stützbrücke herstellt ...
... Die Maschine kann den Schneidevorgang für einen kleinen Abschnitt des Pfades nicht stoppen.
Tut mir leid, meine Antworten sind so weit mit Google Translate übersetzt.
Bis zu einem Punkt, an dem sie sich für mich richtig anhören ...
... Kein Meister der deutschen Syntax
Grüß,
CVH