Outils pour utilisateurs

Outils du site


outilsit:fablab:laser:supportamachins

Ceci est une ancienne révision du document !


``` /* Mon super générateur de support à machins CC-BY-SA 2.0 Belgique - Marc Vanlindt (marc@vanlindt.be)


Carte de visite : 85*55 Magazine : 210*297

*/ ——————————————— Vue =“3D”;[2D,3D] Ecart_des_bord =0;[0:20] /*[ Forme générale ]*/ Epaisseur du matériau Epaisseur =4.5; Ecart pour faciliter l'insertion Ecart =0.2; Largeur = 90 ; Hauteur_arriere = 45 ; Hauteur_avant = 15 ; Profondeur = 30 ; /*[ Inclinaisons ]*/ Inclinaison_avant = 10; [-90:90] Inclinaison_arriere = 10; [0:90] Support=true; /*[ Côtés ]*/ Forme =“2”;[1,2] Objet =“Carré”;[Cercle, Carré] Modif_taille_objet =1; Qualite_si_cercle =8; Arrondir =20; Epaissir =0; Qualite_arrondi =32; ———————————————

if(Vue==“3D”) {

  vue3D();

} if(Vue==“2D”) {

  vue2D();

}

module vue2D() {

  translate([-Epaisseur-Epaissir-1,0])
  cote();    
  translate([Epaisseur+Epaissir+1,0])
  mirror() cote();    
  translate([0,Profondeur+Epaisseur+Epaissir+Profondeur+Profondeur])
  bas();    
  
  translate([0,Profondeur+Epaisseur+Epaissir+Profondeur+Profondeur/2+Hauteur_avant/2+5+Profondeur])
  avant();
  translate([0,Profondeur+Epaisseur+Epaissir+Profondeur+Profondeur/2+Hauteur_avant+5+Hauteur_arriere/2+5+Profondeur])
  arriere();      

}

module cote() {

  difference()
  {
      if(Forme=="1"){cote1();}
      if(Forme=="2"){cote2();}
  
      cote_devant2();
      cote_haut2();
      cote_bas2();
  }

}

————————————————- module cote2() { offset(Epaissir,$fn=Qualite_arrondi) offset(-Arrondir,$fn=Qualite_arrondi) offset(Arrondir,$fn=Qualite_arrondi) chull(){ translate([-Epaisseur,-Profondeur/2]) rotate([0,0,90+Inclinaison_avant]) translate([-Epaisseur/2,Epaisseur/2]) translate([0,Hauteur_avant-Epaisseur,0]) offset(Modif_taille_objet) monobjet2(); translate([-Epaisseur,-Profondeur/2]) rotate([0,0,90+Inclinaison_avant]) translate([-Epaisseur/2,Epaisseur/2]) offset(Modif_taille_objet) monobjet2(); translate([-Epaisseur/2,-Profondeur/2+Epaisseur/2]) offset(Modif_taille_objet) monobjet2(); translate([-Epaisseur/2,Profondeur/2-Epaisseur/2]) offset(Modif_taille_objet) monobjet2(); translate([-Epaisseur,Profondeur/2]) rotate([0,0,180-Inclinaison_arriere]) translate([Epaisseur/2,-Epaisseur/2]) offset(Modif_taille_objet) monobjet2(); translate([-Epaisseur,Profondeur/2]) rotate([0,0,180-Inclinaison_arriere]) translate([Epaisseur/2,-Epaisseur/2]) translate([Hauteur_arriere-Epaisseur,0]) offset(Modif_taille_objet) monobjet2(); translate([-Epaisseur,Profondeur/2]) rotate([0,0,180-Inclinaison_arriere]) translate([Epaisseur/2,-Epaisseur/2]) offset(Modif_taille_objet) monobjet2(); translate([-Epaisseur,Profondeur/2]) rotate([0,0,180-Inclinaison_arriere]) translate([Epaisseur/2,-Epaisseur/2]) translate([Hauteur_arriere-Epaisseur,0]) offset(Modif_taille_objet) monobjet2(); } } ————————————————-

module cote1() {

  offset(Epaissir,$fn=Qualite_arrondi)
  offset(-Arrondir,$fn=Qualite_arrondi)
  offset(Arrondir,$fn=Qualite_arrondi)
  {
      hull()
      {
          translate([-Epaisseur/2,Profondeur/2+Epaisseur/2-sin(Inclinaison_arriere)*Epaisseur/2])
          monobjet();
          if(Support==true)
          {
              translate([-Epaisseur/2,Profondeur/2+Epaisseur/2+sin(Inclinaison_arriere)*Hauteur_arriere-sin(Inclinaison_arriere)*Epaisseur/2])
              monobjet();
          }
          translate([-Epaisseur/2,Profondeur/2+Epaisseur/2-sin(Inclinaison_arriere)*Epaisseur/2])
          rotate([0,0,-180-Inclinaison_arriere])
          translate([Hauteur_arriere,0,0])
          monobjet();
      }
      hull(){
          translate([-Epaisseur/2,-Profondeur/2-Epaisseur/2+sin(Inclinaison_avant)*Epaisseur/2])
          monobjet();
          translate([-Epaisseur/2,Profondeur/2+Epaisseur/2-sin(Inclinaison_arriere)*Epaisseur/2])
          monobjet();
      }
      hull(){
          translate([-Epaisseur/2,-Profondeur/2-Epaisseur/2+sin(Inclinaison_avant)*Epaisseur/2])
          monobjet();
          translate([-Epaisseur/2,-Profondeur/2-Epaisseur/2+sin(Inclinaison_avant)*Epaisseur/2])
          rotate([0,0,-180+Inclinaison_avant])
          translate([Hauteur_avant,0,0])
          monobjet();
      }
  }

}

module monobjet() {

  if(Objet=="Cercle")
  {
      circle(Epaisseur/2+Modif_taille_objet/2,$fn=Qualite_si_cercle);
  }
  if(Objet=="Carré")
  {
      square(Epaisseur+Modif_taille_objet,center=true);
  }

} module monobjet2() {

  if(Objet=="Cercle")
  {
      circle(Epaisseur/2,$fn=Qualite_si_cercle);
  }
  if(Objet=="Carré")
  {
      square(Epaisseur,center=true);
  }

}

module cote_haut2() {

  translate([-Epaisseur,Profondeur/2,0])
  rotate([0,0,90-Inclinaison_arriere])
  translate([Epaisseur/2,Hauteur_arriere/2])
  square([Epaisseur+Ecart,Hauteur_arriere/2+Ecart],center=true);

}

module cote_devant2() {

  translate([-Epaisseur,-Profondeur/2,0])
  rotate([0,0,90+Inclinaison_avant])
  translate([-Epaisseur/2,Hauteur_avant/2])
  square([Epaisseur+Ecart,Hauteur_avant/2+Ecart],center=true);

}

module cote_bas2() {

  translate([-Epaisseur/2,0])
  square([Epaisseur+Ecart,Profondeur/2+Ecart],center=true);

}

module cote_haut() {

  translate([-Epaisseur,Profondeur/2,0])
  rotate([0,0,90-Inclinaison_arriere])
  translate([Epaisseur/2,Hauteur_arriere/2])
  square([Epaisseur,Hauteur_arriere],center=true);

}

module cote_devant() {

  translate([-Epaisseur,-Profondeur/2,0])
  rotate([0,0,90+Inclinaison_avant])
  translate([-Epaisseur/2,Hauteur_avant/2])
  square([Epaisseur,Hauteur_avant],center=true);

}

module cote_bas() {

  translate([-Epaisseur/2,0])
  square([Epaisseur,Profondeur],center=true);

}

module vue3D(){

  translate([0,Profondeur/2,Epaisseur])
  rotate([-90-Inclinaison_arriere,0,0])
  translate([0,-Hauteur_arriere/2,0])
  linear_extrude(Epaisseur)
  arriere();
  translate([0,-Profondeur/2,Epaisseur])
  rotate([90+Inclinaison_avant,0,0])
  translate([0,Hauteur_avant/2,0])
  linear_extrude(Epaisseur)
  avant();
  linear_extrude(Epaisseur)
  bas();
  color("red")
  translate([Largeur/2+Ecart_des_bord,0,0])
  rotate([90,90,90])
  linear_extrude(Epaisseur)
  cote();
  color("green")
  translate([-Largeur/2-Epaisseur-Ecart_des_bord,0,0])
  rotate([90,90,90])
  linear_extrude(Epaisseur)
  cote();

}

module bas() {

  square([Largeur, Profondeur],center=true);
  square([Largeur+Epaisseur*2, Profondeur/2],center=true);

}

module avant() {

  square([Largeur, Hauteur_avant],center=true);
  square([Largeur+Epaisseur*2, Hauteur_avant/2],center=true);

} module arriere() {

  square([Largeur, Hauteur_arriere],center=true);
  square([Largeur+Epaisseur*2, Hauteur_arriere/2],center=true);

}

module chull(m){

for(i=[0:$children-2]){
  hull(){
    children(m==true?0:i);
    children(i+1);
  }
}

} ```

outilsit/fablab/laser/supportamachins.1643652413.txt.gz · Dernière modification: 2022/01/31 19:06 de vanlindtmarc