Styra en RepStrap bearbetning (14 / 25 steg)
Steg 14: Arbetar mot en 3D utskrift
RepRap bygger upp 3D-objekt med smält plast. Varje lager fastställs som ett plastnät. Det finns softwar/firmware tillgänglig att generera denna mesh för alla 3D-objekt. Men jag är intresserad av att göra ett program som ut formerna direkt från bearbetning.
Jag börjar med modifiying studsande boll skissen för att rita ett nät som kommer att täcka en 2D-form.
Nästa steg blir att roteras mesh 90deg och upprepa (att skriva ut nästa lager).
Här är vad jag har hittills - detta är bara i bearbetning och inkluderar inte några communitation med Arduino.
Bearbetning / / /
/**
* boll spår fram och tillbaka över fönstret
*/
int storlek = 10; Formens bredd
float xpos, ypos; Startpositionen för formen
flyta xspeed = 3; Hastigheten på formen
flyta yspeed = 0; / / hastighet av formen
int xdirection = 1; Vänster eller höger
int ydirection = 1; Uppifrån och ned
void setup()
{
storlek (200, 200);
noStroke();
frameRate(30);
Smooth();
Ange startpositionen för formen
Xpos = 0;
ypos = 0;
Background(102);
}
void draw()
{
Background(102);
Uppdatera placeringen av formen
Xpos = xpos + (xspeed * xdirection);
ypos = ypos + (yspeed * ydirection);
ändra riktning när bollen träffar kanten - Rita en kvadrat
börjar på vänster och går mot höger
flytta ner 10 steg
om (xpos > bredden-storleken & & ypos == 0) {//down
ydirection = 1;
yspeed = 2;
xspeed = 0;
}
omvänd X riktning tills det träffar 0 X kanten
om (xpos > bredden-storleken & & ypos == 20) {
xdirection = -1;
yspeed = 0;
xspeed = 2;
}
flytta ner 10 steg
om (xpos < 0 & & ypos == 20) {//down
ydirection = 1;
yspeed = 2;
xspeed = 0;
}
omvänd X riktning tills det hiths 200 X kant
om (xpos < 0 & & ypos == 40) {
xdirection = 1;
yspeed = 0;
xspeed = 2;
}
flytta ner 10 steg
om (xpos > bredden-storleken & & ypos == 40) {//down
ydirection = 1;
yspeed = 2;
xspeed = 0;
}
omvänd X riktning tills det träffar 0 X kanten
om (xpos > bredden-storleken & & ypos == 60) {
xdirection = -1;
yspeed = 0;
xspeed = 2;
}
flytta ner 10 steg
om (xpos < 0 & & ypos == 60) {//down
ydirection = 1;
yspeed = 2;
xspeed = 0;
}
omvänd X riktning tills det träffar 200 X kanten
om (xpos < 0 & & ypos == 80) {
xdirection = 1;
yspeed = 0;
xspeed = 2;
}
flytta ner 10 steg
om (xpos > bredden-storleken & & ypos == 80) {//down
ydirection = 1;
yspeed = 2;
xspeed = 0;
}
omvänd X riktning tills det träffar 0 X kanten
om (xpos > bredden-storleken & & ypos == 100) {
xdirection = -1;
yspeed = 0;
xspeed = 2;
}
flytta ner 10 steg
om (xpos < 0 & & ypos == 100) {//down
ydirection = 1;
yspeed = 2;
xspeed = 0;
}
omvänd X riktning tills det hiths 200 X kant
om (xpos < 0 & & ypos == 120) {//down
xdirection = 1;
yspeed = 0;
xspeed = 2;
}
flytta ner 10 steg
om (xpos > bredden-storleken & & ypos == 120) {
ydirection = 1;
yspeed = 2;
xspeed = 0;
}
omvänd riktning tills det träffar 0 X kanten
om (xpos > bredden-storleken & & ypos == 140) {
xdirection =-1;
yspeed = 0;
xspeed = 2;
}
flytta ner 10 steg
om (xpos < 0 & & ypos == 140) {//down
ydirection = 1;
yspeed = 2;
xspeed = 0;
}
omvänd X riktning tills det hiths 200 X kant
om (xpos < 0 & & ypos == 160) {//down
xdirection = 1;
yspeed = 0;
xspeed = 2;
}
flytta ner 10 steg
om (xpos > bredden-storleken & & ypos == 160) {
ydirection = 1;
yspeed = 2;
xspeed = 0;
}
omvänd riktning tills det träffar 200 X kanten
om (xpos > bredden-storleken & & ypos == 180) {
xdirection =-1;
yspeed = 0;
xspeed = 2;
}
flytta ner 10 steg
om (xpos > 0 & & ypos == 180) {
ydirection = 1;
yspeed = 2;
xspeed = 0;
}
omvänd riktning tills det träffar 200 x kanten
om (xpos > 0 & & ypos == 200) {
xdirection = 1;
yspeed = 0;
xspeed = 2;
}
Dra formen
ellips (xpos + storlek/2, ypos + storlek/2, storlek, storlek);
}