Outils pour utilisateurs

Outils du site


supportcam

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

supportcam [2017/10/23 11:46] (Version actuelle)
bvandepo créée
Ligne 1: Ligne 1:
  
 +===Ficher scad décrivant les pièces===
 +
 +<file c support_akka_v2.scad>​
 +///////////////////////////////////////////////////////////////////////////​
 +//modèle support caméra pour AKKA
 +//B. Vandeportaele 2017
 +///////////////////////////////////////////////////////////////////////////​
 +
 +epaisseurbarre=10.2;​
 +largeurbarre=20.2;​
 +longueurbarre=310;​
 +epaisseurcamera=29;​
 +profondeurcamera=30;​
 +
 +///////////////////////////////////////////////////////////////////////////​
 + ​module barre(longueur,​amincicementtrou)
 +{        ​
 +    //​amincicementtrou=1;​ //diamètre diminué du trou sur la barre de fixation, mettre à 0 pour avoir le modèle de barre, et à u
 +difference(){  ​
 +scale([longueur+10,​largeurbarre+0.2,​epaisseurbarre])
 +    //10 ajoutés en x pour avoir la barre qui creuse le support inférieur des 2 cotés
 +    //0.2 ajouté en y pour jeu
 +    cube([1,​1,​1],​true); ​
 +    for (j=[-1,​1]){ ​
 +//  translate([j*((longueur/​2)-20),​0,​0]) ​
 +          translate([j*((longueur/​2)-20),​0,​0]) ​
 +#cylinder(h = 20, r = (6.25-amincicementtrou)/​2,​ center = true,​$fn=30);​
 +    }
 +    //​rotate(-90,​[0,​1,​0])
 +}
 +}
 +///////////////////////////////////////////////////////////////////////////​
 + ​module camera()
 +{
 +    longueurobjectif=48.7;​
 +    diametreobjectif=27.7;​
 +     ​union() {
 + ​translate([0,​30/​2 + longueurobjectif/​2,​0])
 +  rotate ([90,0,0]) cylinder (h = longueurobjectif,​ r=0.2+diametreobjectif/​2,​ center = true, $fn=120);
 +         //0.2 ajouté au rayon pour jeu
 +         ​cube([29+0.2,​30+0.2,​epaisseurcamera+0.2],​true); ​ //0.2 ajouté à chaque coté  pour jeu
 +         //​parallélépipède sous l'​objectif pour creuser la pièce supports
 +         ​translate([0,​30/​2 + 20/​2,​-diametreobjectif/​4])
 +         ​cube([diametreobjectif+0.2*2,​20,​diametreobjectif/​2+2+0.2*2],​true); ​
 +         
 + }
 +}
 +///////////////////////////////////////////////////////////////////////////​
 +module ​ trousfixation()
 +{   
 +   for (i=[-1,​1]){ ​
 +   for (j=[-1,​1]){ ​   ​
 +  translate([i*((epaisseurcamera/​2)+epaisseurboitier/​2),​j*((epaisseurcamera/​2)+epaisseurboitier/​2),​0]) ​                 ​
 +          cylinder (h = 80, r=3.6/2, center = true, $fn=60); //prévoir 0.5mm de jeu pour le diamètre du trou
 +   }
 +   }
 +}
 +///////////////////////////////////////////////////////////////////////////​
 +module ​ banc(longueur,​amincicementtrou)
 +{
 +    baseline=longueur-40;​
 +    barre(longueur,​amincicementtrou);​
 +  translate([0,​0,​epaisseurbarre/​2 + epaisseurcamera/​2 ]) 
 +             for (j=[-1,​1]){ ​
 +  translate([j*((baseline/​2)),​0,​0]) ​                 ​
 +         ​camera();​
 +             ​} ​   ​
 +     }
 +     
 +     ​epaisseurboitier=7;​
 +///////////////////////////////////////////////////////////////////////////​
 +module ​ supportsuperieur()
 +{   
 +difference(){ ​
 +cube([epaisseurcamera+2*epaisseurboitier,​profondeurcamera+2*epaisseurboitier,​epaisseurcamera+epaisseurboitier],​true);​
 +translate([((longueurbarre/​2)-20),​0,​-(epaisseurbarre/​2+epaisseurcamera/​2+epaisseurboitier/​2)]) ​
 +#​banc(longueurbarre,​1);​
 +    //trous pour connecteur à l'​arrière
 +  translate([0,​-20,​-4]) ​     ​
 +    #​cube([epaisseurcamera-2,​2*epaisseurboitier,​epaisseurcamera-1],​true);​
 +//trous sur les cotés pour ventilation
 +translate([0,​0,​-4]) ​     ​
 +    #​cube([epaisseurcamera++epaisseurboitier*2+1,​epaisseurcamera-1,​epaisseurcamera-1],​true);​
 +    ​
 +    #​trousfixation();​
 +    //​empreintes hexagonales pour écrous m3
 +       for (i=[-1,​1]){ ​
 +   for (j=[-1,​1]){ ​   ​
 +  translate([i*((epaisseurcamera/​2)+epaisseurboitier/​2),​j*((epaisseurcamera/​2)+epaisseurboitier/​2),​17]) ​                
 +       ​rotate ([0,0,-15])
 +          #cylinder (h = 3, r=6.4/2, center = true, $fn=6); //prévoir 0.5mm de jeu pour le diamètre du trou
 +   }
 + ​} ​  
 +
 +}
 +///////////////////////////////////////////////////////////////////////////  ​
 +module ​ supportinferieur()
 +{   
 +    jeu=2; //écart entre les 2 pièces du support
 +    amincicementtrou=1;​
 +difference(){ ​
 +    translate([0,​0,​-35/​2 -epaisseurbarre/​2-epaisseurboitier/​2-jeu])
 +cube([epaisseurcamera+2*epaisseurboitier,​profondeurcamera+2*epaisseurboitier,​epaisseurbarre+epaisseurboitier-jeu],​true);​
 +translate([((longueurbarre/​2)-20),​0,​-(epaisseurbarre/​2+epaisseurcamera/​2+epaisseurboitier/​2)]) ​
 +#​banc(longueurbarre,​amincicementtrou);​
 +    #​trousfixation();​
 +
 +}            ​
 +///////////////////////////////////////////////////////////////////////////​
 +
 +printerpart=0;//​default value for the constant printerpart,​ it can be changed through command line using -D
 +//​https://​en.wikibooks.org/​wiki/​OpenSCAD_User_Manual/​Using_OpenSCAD_in_a_command_line_environment
 +//use compile.sh to generate the stl files in stl/ subdirectory
 +type=printerpart; ​ //assign the constant value to a variable to be able to test it, even if the constant hasn't been defined in command line
 +//pour visualisation de l'​assemblage
 +if (type==0)
 + {
 +supportsuperieur();​
 +supportinferieur();​
 + }
 +//pour impression via script compile.sh
 +if (type==1)
 +rotate ([180,​0,​0]) ​   supportsuperieur();​
 +if (type==2)
 +translate([80,​0,​17]) ​ supportinferieur();​
 +
 +</​file>​
 +
 +
 +===Script shell pour générer les 2 fichiers stl à imprimer===
 +<file bash compile.sh>​
 +#!/bin/sh
 +mkdir -p stl
 +openscad -D printerpart=1 -o '​stl/​top.stl'​ support_akka_v2.scad
 +openscad -D printerpart=2 -o '​stl/​bottm.stl'​ support_akka_v2.scad
 +</​file>​
 +
 +===Résultat===
 +{{https://​homepages.laas.fr/​bvandepo/​files/​3D/​P71017-173341_crop_support_camera_akka.jpg}}
supportcam.txt · Dernière modification: 2017/10/23 11:46 par bvandepo