Lieber Besucher, herzlich willkommen bei: RCLine Forum. Falls dies Ihr erster Besuch auf dieser Seite ist, lesen Sie sich bitte die Hilfe durch. Dort wird Ihnen die Bedienung dieser Seite näher erläutert. Darüber hinaus sollten Sie sich registrieren, um alle Funktionen dieser Seite nutzen zu können. Benutzen Sie das Registrierungsformular, um sich zu registrieren oder informieren Sie sich ausführlich über den Registrierungsvorgang. Falls Sie sich bereits zu einem früheren Zeitpunkt registriert haben, können Sie sich hier anmelden.

1

Montag, 4. Oktober 2010, 21:11

Unterprogramme im G-Code

Hallo,

will eine einfache Kontur stirnfräsen (einen Nocken). Zustellen will ich insgesamt 11 mm - in 0.1 mm Increments. Mein CAM generiert mir ca. 500 Zeilen, die ich zudem noch sehr zeitintensiv (und fehleranfällig) nacharbeiten muss: 110 mal Fräser Stop und 110 mal rauf und runter - das kann's nicht sein.

Ich fahre lieber eine Strecke als Rampe und stelle dort das Zehntel zu. So kann ich pausenlos die Kontur umrunden. Man kann ja im G-Code mittels M99 / M98 auch Unterprogramme aufrufen. Ich fand bisher aber nichts, wie man eine Variable an ein Unterprogramm übergeben könnte.

Mit Hilfe von BASIC würde ich mein Problem so lösen:

Quellcode

1
2
3
4
5
6
7
8
9
10
11
FOR wert = -0.1 TO -11 STEP 0.1
  GOSUB kontur
NEXT wert
M30

kontur:
  G01 X11.625 Y28.867 Zwert
  G03 X11.625 Y-4.867 I-2.125 J-16.867
  G01 X35.25 Y-1.89
  G03 X35.25 Y25.89 I-1.75 J13.89
RETURN

Die erste Zeile im UP kontur: ist die Rampe und soll also heissen: G01 X11.625 Y28.867 Z-0.1
Das wären eben mal 10 Zeilen - statt 500 ...

Ist sowas im G-Code möglich ?

Wenn nicht, wie könnte man es anders elegant lösen (ohne zig hundert Zeilen) ?
Ich frage dies grundsätzlich, denn Probleme dieser Art habe ich ständig.

Gruss Gustav

Dieser Beitrag wurde bereits 4 mal editiert, zuletzt von »Faulpelz« (4. Oktober 2010, 21:15)


2

Dienstag, 5. Oktober 2010, 23:49

Hallo Gustav,

eventuell hilft dir G91 / G90 weiter - damit wird zwischen relativer bzw. absoluter Koordinatenangabe umgeschaltet.

Du hast also dein Unterprogramm und fügst am Ende das ein:
G91
G01 Z0.1
G90

Damit wird Z nicht wie gewohnt AUF 0,1mm gefahren, sondern UM 0,1mm. Danach wird mit G90 wieder zu absoluten Koordinaten umgeschaltet. Das Unterprogramm endet also mit jedem Aufruf 0,1mm tiefer - vorausgesetzt du hast zwischendrin nicht irgendwo einen anderen Z Befehl - der würde den Wert natürlich wieder überschreiben.

Das erspart die zwar nicht das Unterprogramm 110 mal aufzurufen - aber die Befehle dazu lassen sich ja Ratz-Fatz in Excel runterziehen und in die NC Datei einfügen.


Edit: die Befehle sollten natürlich an den Anfang des Unterprogramms - nicht wie gerade geschrieben danach...

Viele Grüße
Christian

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »BlueIceDragon« (5. Oktober 2010, 23:52)


3

Mittwoch, 6. Oktober 2010, 02:52

Hallo Christian,

Vielen Dank für den Tipp mit G91/G90.

Ich muss das Unterprogramm nicht 110 mal aufrufen, sondern kann ja bei G98 den Parameter L110 vergeben.

Ich möchte aber im Unterprogramm eine Rampe fahren: G01 X11.625 Y28.867 Z-0.1 und bei jedem Durchlauf die Rampe um 0.1 mm tiefer haben. Dazu muss der neue Wert für Z in einer Zeile mit den anderen beiden Werten für X und Y stehen.

Hier bin ich noch nicht dahinter gekommen, wie ich das anstelle.

Gruss Gustav

4

Mittwoch, 6. Oktober 2010, 08:16

Hallo Gustav

solche Anforderungen löse ich immer mit DeskProto. Dabei handelt es sich um ein CAM-Programm, das du kostenlos als Demoversion (30 Tage) runterladen kannst.

Nach dem Importieren einer Kontur (2D) oder eines Körpers (3D) generiert DeskProto ein NC-Programm. Einstellbar sind dabei die Bearbeitungsparameter und Zustellschritte.

Allerdings löst DP die Aufgabe nicht mit Subroutinen und Sprünge sondern generiert jede Koordinate - somit wird das zwar ein umfangreiches NC-Programm, war aber bei mir bisher immer fehlerfrei.

Hab aber nochmal kurz nach G-Codes geschaut. G65 ruft Macros auf - wäre vermutlich der passende Befehl. Übersicht findest du hier:

http://www.cnc-club.de/hurco/ultimax_4/g-codes/g-codes.htm

Grüße Knut

Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von »Airborne63« (6. Oktober 2010, 08:24)


5

Mittwoch, 6. Oktober 2010, 10:43

Hallo Christian,

G65 wird von meinem Mach3 nicht unterstützt.

> Nach dem Importieren einer Kontur (2D) oder eines Körpers (3D) generiert DeskProto ein NC-Programm.
> Einstellbar sind dabei die Bearbeitungsparameter und Zustellschritte.
Das kann mein CAM (ohne 30 Tage) auch. Nur wie schon in meinem ersten Beitrag beschrieben, erzeugt mein CAM viel Unsinn, den ich manuell entfernen darf. Denn: keiner macht mit seinem Auto immer nach 100 Meter eine Vollbremsung, stellt den Motor ab, steigt aus, steigt wieder ein, startet neu und beschleunigt wieder ...

Ferner möchte ich nicht in einem Punkt zustellen, sondern die Zustellung eben als Rampe fahren.
Damit kommt meine Maschine viel besser zurecht.

Gruss Gustav

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »Faulpelz« (6. Oktober 2010, 10:44)


6

Mittwoch, 6. Oktober 2010, 14:35

Hallo Gustav,

das Rampenförmige eintauchen werde ich voraussichtlich in der nächsten Version meiner Estlcam 2,5D CAM Software unterstützen (eine Vorabversion dürfte die nächsten Tage fertig werden). Wenn du möchtest kannst du mir mal eine Email an christian@epp-versand.de senden - ich schicke dir dann eine Testversion zu sobald sie fertig ist.

Viele Grüße
Christian