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.
PXL_20231109_141555314.jpg