Donc, j'ai code avec le gcode
L'installation de base dans mon appart est un bloc dans quoi vient se clipser une prise téléphonique cigogne en T. Après un bricolage qui est un bon début voici ce que j'obtient. Vous pouvez voir que c'est du RJ11 stable mais qui peut être plus joli.
Je me lance donc dans l'impression d'un bloc-clips qui serait devant le RJ11 et un peu plus esthétique. La première idée est de faire un carré tout simple et épais disons de 3mm. Et voici le résultat que précède une petite coupe.
Le visuel est bon mais le tout n'est pas assez costaud à mon gout. Et je me décide pour faire un cadre qui renforce le carré
Le fait est que pour imprimer au dos du carré je suis obligé de le faire en deux temps 1) retourner le carré 2) caler le carré. Je calle le carré dans un socket que j'ai imprimé exprès pour et que voici.
Ci-dessous est l'impression du cadre de renfort sur le dos du carré callé dans le socket ou moule.
Ce qui suit est le code en C de génération des instructions moteur 3D pour une des trois partie que vous - devinerez. Il y a deux fonctions que je définis par move_X et move_Z. Avec ces deux fonctions, j'en définis une troisième qui est level_up. La fonction move_X déplace la tête d'impression en profondeur. La fonction move_Z, pareil, mais déplacement en horizontal. Et pour finir, la fonction level_up utilise la fonction de déplacement en hauteur pour l'épaisseur de la pièce à imprimer. Les instructions de calibrage, préchauffage et chauffage moteur 3D sont au début de la fonction d'entrée main.
#include <stdio.h>
#include <math.h>
void
move_X(float destination, float hole)
{
static float position_X = 0.00;
float count = 0.00;
int count_E = 0;
if (destination > 0) {
for (; count <= destination; count += hole, position_X += hole, count_E++) {
if (count_E == 0)
;
// printf("G1 F100 E0.5\n");
else if (count_E % 14 == 0)
printf("G1 F100 E0.5\n");
printf("G1 F600 X%.2f\n", position_X);
}
} else {
for (; count >= destination; count -= hole, position_X -= hole, count_E++) {
if (count_E == 0)
;
// printf("G1 F100 E0.5\n");
else if (count_E % 14 == 0)
printf("G1 F100 E0.5\n");
printf("G1 F600 X-%.2f\n", position_X);
}
}
}
void
move_Z(float destination, float hole)
{
float count = 0.00;
static float position_Z = 0.00;
int count_E = 0;
if (destination > 0) {
for (; count <= destination; count += hole, position_Z += hole, count_E++) {
if (count_E == 0)
printf("G1 F100 E0.5\n");
else if (count_E % 8 == 0)
printf("G1 F100 E0.5\n");
printf("G1 F100 Z%.2f\n", position_Z);
}
} else if (destination < 0){
for (; count >= destination; count -= hole, position_Z -= hole, count_E++) {
if (count_E == 0)
printf("G1 F100 E0.5\n");
else if (count_E % 8 == 0)
printf("G1 F100 E0.5\n");
printf("G1 F100 Z-%.2f\n", position_Z);
}
}
}
void level_up(void) {
static float position_Y = 0.00;
int count;
for(count = 0; count < 1; position_Y += 0.10, count++)
printf("G1 F100 Y%.2f\n", position_Y);
}
int
main(int argc, char *argv[])
{
int thickness = 1;
// printf("M104 S210\nM106 S210\nM109 S210\nM82\nG92 E0\nG91 Y0.00 Z0.00 X0.00\n");
for (; thickness < 57; thickness++) {
move_X(3.20, 0.1);
move_Z(0.18, 0.01);
move_X(-3.20, 0.1);
move_Z(-0.18, 0.01);
level_up();
}
return 1;
}
Je redirige la sortie du programme vers un fichier dagoma0.g que je déplace sur ma carte SD. Après je rentre ma carte dans le module carte SD de l'imprimante. Et l'imprimante commence son travail.
Tout chaud imprimé sur le plateau de l'imprimante, vous pouvez voir le scotch 3M qui est sur la face arrière du carré. Mais comme je clips le résultat par l'avant en glissant le cadre dans le bloc de base, le scotch ne se verra pas.
Une fois l'impression terminée, je perce un trou au centre du bloc carré renforcé par le cadre et je meule une fente jusqu'à bordure. Ensuite, c'est en trois temps, je coule le fil dans la fente et le glisse jusqu'au centre et pour finir je clipse le résultat dans son emplacement.