Toolbox Interactiondesign


Toolbox

G-Code | 06 Quadrate im Raster | Eigene Funktion

/*
 Experiment 06
 Quadrate im Raster fraesen: 
 eigene, allgemeingueltige Funktion nutzen
 christine goutrie 2013-06-19
 */

PrintWriter output;

int kante=10;    // Kantenlaenge des Quadrats

void setup() {
  background(255);
  stroke(0);
  strokeWeight(1);
  size(200, 200);
  noFill();
  output = createWriter("rects.ngc");
  output.println("%");
  output.println("G 54");
}

void draw() {
  // doppelte for Schleifen für das Raster
  for (int i=30; i<=width-40; i+=25) {
    for (int j=30; j<=height-40; j+=25) {
      rect(i, j, kante, kante);
      // Fraesbefehle fuer EIN Quadrat in
      // eigener Funktion definiert
      fraeseRect(i,j,kante,-3.0);
    }
  }
}

void fraeseRect(int x, int y, int k, float t) {
    // x, y Position
    // k Kantenlaenge
    // t Tiefe ins Material
    output.println("G0 X"+(x)+" Y"+(y));
    output.println("G1 Z "+(t)+" F300");
    output.println("G1 X"+(x+k)+" Y"+(y));
    output.println("G1 X"+(x+k)+" Y"+(y+k));
    output.println("G1 X"+(x)+" Y"+(y+k));
    output.println("G1 X"+(x)+" Y"+(y));
    output.println("G0 Z2");
}

void mousePressed() {
  output.println("G01 Z3");
  output.println("M 02");
  output.println("%");
  output.flush(); 
  output.close(); 
  exit();
}

Dieses Experiment zeigt, wie Quadrate im Raster gefräst werden können. Das Übersetzen des einfachen rect Befehls für das Zeichnen auf der Bühne in Fräsbefehle ist umfangreicher und umfasst insgesamt 6 Befehle.
Um den Code innerhalb der for Schleifen übersichtlicher zu halten und vor allem auch, um die Funktionalität wiederverwendbar zu gestalten, empfiehlt es sich, eine eigene Funktion einzuführen, um ein Quadrat analog zum rect Befehl zu fräsen. Diese Funktion enthält genau die gleichen Parameter wie der rect Befehl und zusätzlich noch die Tiefe, mit der gefräst werden soll.

%
G 54
G0 X30 Y30
G1 Z -3.0 F300
G1 X40 Y30
G1 X40 Y40
G1 X30 Y40
G1 X30 Y30
G0 Z2
G0 X30 Y55
G1 Z -3.0 F300
G1 X40 Y55
G1 X40 Y65
G1 X30 Y65
G1 X30 Y55
G0 Z2
...
G0 Z2
G0 X30 Y155
G1 Z -3.0 F300
G1 X40 Y155
G1 X40 Y165
G1 X30 Y165
G1 X30 Y155
G0 Z2
...
G0 Z2
G0 X155 Y155
G1 Z -3.0 F300
G1 X165 Y155
G1 X165 Y165
G1 X155 Y165
G1 X155 Y155
G0 Z2
G01 Z3
M 02
%

voilá: die erzeugte Fräsdatei, um die in Processing erzeugten Quadrate im Raster zu fräsen.

ACHTUNG
Während Processing in Pixeln rechnet, rechnet die G-Codes in mm; deshalb wird 1px in 1mm übersetzt.

22.02.2013 | cgoutrie |