Skip to main content

Sanjay APAVOU

18/10/23 

Première séance prototypage et initiation avec d'un logiciel de code en 3D openSCAD et ideaMAKER pour imprimer nos objets

26/10/2023

Voici les deux objets que j'ai imprimé en 3D 

Le premier étant une gourde cylindrique avec le bas de la gourde plus fin que le haut. L'intérieur étant creuser avec la fonction translate. 

De plus j'ai rajouté un bouchon sphérique a l'intérieur d'un cylindre pour fermer cette gourde grâce a la fonction union puis translate pour visualiser si le bouchon correspondait bien au diamètre de la gourde. Cependant, j'aurais pu agrandir le trou dans la gourde pour améliorer sa contenance.

image.png

Le deuxième objet que j'ai choisi de faire était a la base une bague en forme d'hélice double brin d'ADN cependant je n'ai pas réussi a faire la bague alors je me suis contenté de faire uniquement la double hélice d'ADN sur un support, plus un objet de décoration qu'une bague… Je me suis inspiré d'un code qui existait déjà que j'ai modifié pour ajouter le socle et faire les brins de manière plus réaliste. Cependant lors de l'impression, beaucoup de support était nécessaire pour que l'objet s'imprime correctement. Peut être qu'en utilisant un support issu de matériaux solvable en solution cela aurait été plus simple pour retirer les support.

image.png

Code ADN : 
// VARIABLES
// hauteur helix
helix_height=150;
// Degrés de rotation
twist_amount=360.0;
/* bras */
//  Distance du centre aux bras
arm_distance=23;
// Épaisseur des bras
arm_thickness=15;
// Largeur des bras
arm_width=.35;
// Angle pour décaler un bras afin qu'ils ne soient pas alignés.
arm_offset=45;
/* Poutres transversales */
// Hauteur de la poutre
beam_height=3;
// Largeur de la poutre
beam_width=6;
// Arrondi de la poutre
beam_roundness=1.5;
// Nombre de poutres
num_beams=10.0;
/* Base */
// Hauteur de la base
base_height=5;
// Rayon de la base
base_radius=37;
// Ratio du rayon supérieur au bas de la base
base_taper=.95;
module roundedcube(xx, yy, height, radius) {
difference(){
    cube([xx,yy,height]);
    difference(){
        translate([-.5,-.5,-.2])
        cube([radius+.5,radius+.5,height+.5]);
        translate([radius,radius,height/2])
        cylinder(height,radius,radius,true);
    }
    translate([xx,0,0])
    rotate(90)
    difference(){
        translate([-.5,-.5,-.2])
        cube([radius+.5,radius+.5,height+.5]);
        translate([radius,radius,height/2])
        cylinder(height,radius,radius,true);
    }
    translate([xx,yy,0])
    rotate(180)
    difference(){
        translate([-.5,-.5,-.2])
        cube([radius+.5,radius+.5,height+.5]);
        translate([radius,radius,height/2])
        cylinder(height,radius,radius,true);
    }
    translate([0,yy,0])
    rotate(270)
    difference(){
        translate([-.5,-.5,-.2])
        cube([radius+.5,radius+.5,height+.5]);
        translate([radius,radius,height/2])
        cylinder(height,radius,radius,true);
    }
}
}
// CALCULATIONS
beam_length=arm_distance*2-arm_thickness*.5;
beam_twist=twist_amount/(num_beams+1.0);
beam_delta=helix_height/(num_beams+1.0);
beam_offset=arm_offset*.5;
module arm_footprint(helix_r=50
,arm_r=10
) {
  skinny_arm = arm_r * arm_width;
  union() {
    translate([ -helix_r + skinny_arm * .5,0]) 
  square([skinny_arm,arm_r],center=true);
    rotate([0,0,arm_offset])
      translate([ helix_r - skinny_arm * .5,0]) 
    square([skinny_arm,arm_r],center=true);
  }
}
module helix_coil(helix_r=100
, arm_r=10
, helix_h=100
) {
  linear_extrude(height=helix_h, convexity=10, twist=-twist_amount, slices=500) 
arm_footprint(helix_r=helix_r
,arm_r=arm_r
);
}
// BASE
linear_extrude(height=base_height, scale=base_taper)    circle(r=base_radius, $fn=400 );
// ARMS
translate([0, 0, base_height])
  helix_coil(helix_h=helix_height
,arm_r=arm_thickness
,helix_r=arm_distance
);
// BEAMS
translate([0, 0, base_height])
 for ( i = [1:1:num_beams]) 
  rotate([0,0,beam_twist*i])
    translate([-.5*beam_length,
            -.5*beam_width,
            .5*beam_height + beam_delta*i])
        rotate([0,90,beam_offset]) //beam
        roundedcube(beam_height,beam_width,beam_length,beam_roundness);
//rotate([0,0,-45])
//translate([100,0,0])
//cube([5,50,5], center=true);

27/10/2023 : 
Il nous a été demandé d'améliorer nos objets en utilisant différentes techniques présenté en cours notamment en utilisant deux filaments par exemple.
Je pense modifier le code de la gourde pour la rendre plus profonde et faire le bouchon d'une autre couleur que la boule.
Pour l'ADN je pense utiliser la technique des supports soluble
Enfin il nous a été demandé de faire un troisième objet dans lequel nous devions mettre un objet dedans en arrêtant l'impression.

07/11/2023 : 
Test de la sphère dans une sphère :
En codant une simple sphère sur open scad, et en la vidant de son remplissage sur idea maker nous avons réussit a imprimer uniquement la coque de la sphère. Nous avons a la suite réimprimer la même sphère avec un,PLA transparent en y plaçant notre première petite sphère. Nous avons fait cela car nous voulions voir si la technique était possible avec une sphère de taille plus importante mais aussi pour tester le PLA transparent. Ici nous avons une sphère de 5cm de diamètre avec une sphère de 2cm de diamètre en jaune a l'intérieur.
PXL_20231109_141555314.jpg
 10/11/2023 : 
Nous avons réitérer le test de la sphère mais cette fois ci de manière plus complexe en y insérant des trous pour visualiser davantage l'objet a l'intérieur mais toujours avec un pla transparent. Voici le code que nous avons utilisé :
$fn=100; // Augmenter le nombre de faces pour une sphère plus lisse

d=5;
a=5;
H=0;
R=40;
N=90;


difference()    {

difference() {
    sphere(r=R-a/2);
    
    for (i=[1:1:N]) {
        rotate([0,0,i*360/N]) translate([(R-a/2),0,H+a/2])
        cube([100,a-4,a], center=true);
    }
};

    sphere(r=(R-a/2)-2);};

PXL_20231114_180212039.jpgimage.png

Voici la boule imprimer avec des morceaux de pla bleu dedans ainsi qu'une visualisation 3D avec idea maker.

Pour mettre les morceaux de pla nous avons juste mis l'impression sur pause.

A la suite nous avons en groupe imprimer 4 fois la même boule en y introduisant chacun un objet différent. Pour ma part j'ai choisi d'y introduire un renne jaune fluo pour qu'il soit visible a l'intérieur. Cependant je lui ai enlevé les pattes après l'impression sans faire exprès car l'ayant imprimer en petit elles étaient un peu fragile. Nous avons eu beaucoup de chances car l'imprimante c'est mis en pause seul a quasiment 3 quart de hauteur en raison de l'absence de fil ce qui nous a permis de mettre nos objets et de relancer.

image.pngPHOTO-2023-11-16-11-46-30.jpeg

07/12/2023 : 

En collaboration avec Ryan nous avons fait  un Arduino avec 3 leds qui clignotes en utilisant le code suivant :

void setup() {
   pinMode(12, OUTPUT);
   pinMode(11, OUTPUT);
   pinMode(8, OUTPUT);
}

void loop() {
   digitalWrite(12, HIGH);
   digitalWrite(11, LOW);
   digitalWrite(8, LOW);
   delay(500);

   digitalWrite(12, LOW);
   digitalWrite(11, HIGH);
   digitalWrite(8, LOW);
   delay(500);

   digitalWrite(12, LOW);
   digitalWrite(11, LOW);
   digitalWrite(8, HIGH);
   delay(500);
}

Merci Ryan pour le débug