Étape 14 : Travailler à une impression 3D
La RepRap accumule des objets 3D avec le plastique fondu. Chaque couche est prévue comme une maille en plastique. Il n’y a softwar/firmware disponible pour générer ce maillage pour n’importe quel objet 3D. Mais je suis intéressé à faire un programme qui permet d’imprimer les formes directement à partir de traitement.
Je commence par modifier l’esquisse de balle qui rebondit pour dessiner un maillage qui couvrira une forme 2D.
La prochaine étape consistera à tourné la maille 90deg et répéter (pour imprimer le calque suivant).
Voici ce que j’ai jusqu’ici-c’est seulement dans le traitement et n’inclut pas une ligne avec l’Arduino.
Traitement / / /
/**
* traces balle en arrière à travers la fenêtre
*/
int taille = 10 ; Largeur de la forme
flotteur xpos, ypos ; Position de départ de la forme
flotteur xspeed = 3 ; Vitesse de la forme
float yspeed = 0; / / Vitesse de la forme
int xdirection = 1 ; Gauche ou droite
int ydirection = 1 ; Haut en bas
void setup()
{
taille (200, 200) ;
noStroke() ;
frameRate(30) ;
Smooth() ;
Définir la position de départ de la forme
PosX = 0 ;
YPos = 0 ;
Background(102) ;
}
void draw()
{
Background(102) ;
Mise à jour la position de la forme
PosX = xpos + (xspeed * xdirection) ;
YPos = ypos + (yspeed * ydirection) ;
changer de direction lorsque la balle touche le bord - dessiner un carré
commence à gauche et se déplace vers la droite
déplacer vers le bas de 10 étapes
Si (xpos > largeur taille & & Posy == 0) {//down
ydirection = 1 ;
yspeed = 2 ;
XSpeed = 0 ;
}
inversion de direction jusqu'à ce qu’il frappe le bord X 0 X
Si (xpos > largeur taille & & Posy == 20) {}
xdirection = -1 ;
yspeed = 0 ;
XSpeed = 2 ;
}
déplacer vers le bas de 10 étapes
Si (xpos < 0 & & Posy == 20) {//down
ydirection = 1 ;
yspeed = 2 ;
XSpeed = 0 ;
}
inverse X direction jusqu'à ce qu’il hiths le 200 X edge
Si (xpos < 0 & & Posy == 40) {}
xdirection = 1 ;
yspeed = 0 ;
XSpeed = 2 ;
}
déplacer vers le bas de 10 étapes
Si (xpos > largeur taille & & Posy == 40) {//down
ydirection = 1 ;
yspeed = 2 ;
XSpeed = 0 ;
}
inversion de direction jusqu'à ce qu’il frappe le bord X 0 X
Si (xpos > largeur taille & & Posy == 60) {}
xdirection = -1 ;
yspeed = 0 ;
XSpeed = 2 ;
}
déplacer vers le bas de 10 étapes
Si (xpos < 0 & & Posy == 60) {//down
ydirection = 1 ;
yspeed = 2 ;
XSpeed = 0 ;
}
inversion de direction jusqu'à ce qu’il frappe le bord X 200 X
Si (xpos < 0 & & Posy == 80) {}
xdirection = 1 ;
yspeed = 0 ;
XSpeed = 2 ;
}
déplacer vers le bas de 10 étapes
Si (xpos > largeur taille & & Posy == 80) {//down
ydirection = 1 ;
yspeed = 2 ;
XSpeed = 0 ;
}
inversion de direction jusqu'à ce qu’il frappe le bord X 0 X
Si (xpos > largeur taille & & Posy == 100) {}
xdirection = -1 ;
yspeed = 0 ;
XSpeed = 2 ;
}
déplacer vers le bas de 10 étapes
Si (xpos < 0 & & Posy == 100) {//down
ydirection = 1 ;
yspeed = 2 ;
XSpeed = 0 ;
}
inverse X direction jusqu'à ce qu’il hiths le 200 X edge
Si (xpos < 0 & & Posy == 120) {//down
xdirection = 1 ;
yspeed = 0 ;
XSpeed = 2 ;
}
déplacer vers le bas de 10 étapes
Si (xpos > largeur taille & & Posy == 120) {}
ydirection = 1 ;
yspeed = 2 ;
XSpeed = 0 ;
}
la direction opposée jusqu'à ce qu’il frappe le bord X 0
Si (xpos > largeur taille & & Posy == 140) {}
xdirection =-1 ;
yspeed = 0 ;
XSpeed = 2 ;
}
déplacer vers le bas de 10 étapes
Si (xpos < 0 & & Posy == 140) {//down
ydirection = 1 ;
yspeed = 2 ;
XSpeed = 0 ;
}
inverse X direction jusqu'à ce qu’il hiths le 200 X edge
Si (xpos < 0 & & Posy == 160) {//down
xdirection = 1 ;
yspeed = 0 ;
XSpeed = 2 ;
}
déplacer vers le bas de 10 étapes
Si (xpos > largeur taille & & Posy == 160) {}
ydirection = 1 ;
yspeed = 2 ;
XSpeed = 0 ;
}
la direction opposée jusqu'à ce qu’il frappe le bord X 200
Si (xpos > largeur taille & & Posy == 180) {}
xdirection =-1 ;
yspeed = 0 ;
XSpeed = 2 ;
}
déplacer vers le bas de 10 étapes
Si (xpos > 0 & & Posy == 180) {}
ydirection = 1 ;
yspeed = 2 ;
XSpeed = 0 ;
}
la direction opposée jusqu'à ce qu’il frappe le bord 200 x
Si (xpos > 0 & & Posy == 200) {}
xdirection = 1 ;
yspeed = 0 ;
XSpeed = 2 ;
}
Dessinez la forme
ellipse (xpos + taille/2, ypos + taille/2, taille, taille) ;
}