Commit 66f315b4 authored by Frederic GOUALARD's avatar Frederic GOUALARD 💬

Ajout proposition design.

parent 25267df1
/*
Cree XLamp XP-ED Royal Blue + 10mm x 10mm Pad
https://www.lumitronix.com/fr_fr/cree-xp-e2-smd-led-bleu-royal-avec-platine-10x10mm-550mw-68181.html
Illumination (solid angle of the cone in steradian):
100%: 30°
90%: 50°
80%: 55°
60%: 65°
50%: 70°
*/
eps=0.05;
/*
cree_xp_e2([light, sr, l])
light: if true, draw an illumination cone
sr: solid angle of the illumination cone
l: height of the illumination cone
*/
module cree_xp_e2(light=false,sr=50,l=30) {
translate([-3.45/2,-3.45/2,0]) color("LimeGreen") cube([3.45,3.45,0.73]);
intersection() {
translate([-1.53,-1.53,.58]) cube([1.53*2,1.53*2,1.53]);
translate([0,0,.58]) color("HoneyDew") sphere(r=1.53,$fn=20);
}
if (light) {
#translate([0,0,0.58]) cylinder(h=l,r1=1.45,r2=l*tan(sr));
}
}
module pcb_cree() {
// Sizes of the pcb only guessed for now as they are not specified fully
// on the abovementioned page.
difference() {
translate([-10/2,-10/2,0]) color("DimGray") cube([10,10,2]);
translate([-(5-1.2),-(5-1.2),-eps/2]) cylinder(d=1.5,h=4.1-eps,$fn=20);
translate([5-1.2,5-1.2,-eps/2]) cylinder(d=1.5,h=4.1-eps,$fn=20);
}
// Pads
translate([-(5-.2),-3.5/2,1.9]) color("Silver") cube([2,3.5,.2]);
translate([(5-.2-2),-3.5/2,1.9]) color("Silver") cube([2,3.5,.2]);
}
module cree_and_pcb(light=false,sr=50,l=30) {
pcb_cree();
translate([0,0,2]) cree_xp_e2(light,sr,l);
}
cree_and_pcb(light=true);
/*
Modélisation d'un pilulier de 50x21 mm
*/
module bouchon() {
color("RosyBrown") cylinder(d=23,h=12);
}
module pilulier() {
color("HoneyDew") cylinder(d=21,h=50);
}
pilulier();
module pilulier_bouchon() {
pilulier();
translate([0,0,40]) bouchon();
}
pilulier_bouchon();
use <pilulier.scad>;
use <cree_xp_e2.scad>;
// Number of test tubes
ntt = 8;
// Diameter of the tank
tkdiam = 150;
/*
Holder to keep test tubes in place.
*/
module holder(d=tkdiam,dcc=tkdiam/3, h) {
difference() {
cylinder(d=d,h);
for (i=[1:ntt]) {
rotate([0,0,i*(360/ntt)]) translate([dcc,0,-.25]) pilulier();
}
}
}
// Holder for the bottom of the tank
module holder_low() {
translate([0,0,3]) holder();
difference() {
cylinder(d=180,h=3);
translate([0,0,-.25]) cylinder(d=175,h=3.5);
}
}
rotate([0,0,360/(2*ntt)]) {
for (i=[1:ntt]) {
rotate([0,0,i*(360/ntt)]) translate([55,0,0]) pilulier_bouchon();
}
}
module cuve(d=180) {
difference() {
cylinder(d=d,h=60);
translate([0,0,-2.5]) cylinder(d=d-5,h=65);
}
}
cuve(d=150);
lr = 30;
pl = 30;
rotate([0,0,0]) {
translate([-lr/2,-lr/2,0]) cube([lr,lr,2*lr]);
translate([0,-lr/2,pl]) rotate([90,0,0]) cree_and_pcb(light=true,sr=55,l=35);
translate([lr/2,0,pl]) rotate([90,0,90]) cree_and_pcb(light=true,sr=55,l=35);
translate([0,lr/2,pl]) rotate([-90,0,0]) cree_and_pcb(light=true,sr=55,l=35);
translate([-lr/2,0,pl]) rotate([90,0,0]) rotate([0,-90,0]) cree_and_pcb(light=true,sr=55,l=35);
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment