// Test d'emboitements H_socle=2; // Hauteur du support H_objet=10; // Hauteur des objets Dmin=2; // Plus petit diamètre Dmax=10; // Plus grand diamètre L_murs=3; // Largeur des murs Garde=2; // Garde pour le socle ep=.1; // Epsilon use <../lib/m_objets.scad>; N=Dmax-Dmin+1; P_socle=2*Garde+2*L_murs+Dmax; Pas_socle=Dmax+2*L_murs+Garde; L_socle=(Dmax-Dmin+2)*Garde+2*(Dmax-Dmin+1)*L_murs+(Dmax+Dmin)*(Dmax-Dmin+1)/2; P1=-L_socle/2+Garde+Dmin/2+L_murs; // Mâles objet_parallelepipede(dx=L_socle, dy=P_socle, dz=H_socle, px=-L_socle/2, py=P_socle*.5, pz=0); for(i=[Dmin : Dmax]) objet_cylindre(h=H_objet, d=i, px=P1+(i-Dmin)*((2*Dmin+i-Dmin)/2+Garde+2*L_murs), py=P_socle, pz=H_socle, fn=72); // Femelles objet_parallelepipede(dx=L_socle, dy=P_socle, dz=H_socle, px=-L_socle/2, py=-P_socle*1.5, pz=0); for(i=[Dmin : Dmax]) difference() { objet_cylindre(h=H_objet, d=i+2*L_murs, px=P1+(i-Dmin)*((2*Dmin+i-Dmin)/2+Garde+2*L_murs), py=-P_socle, pz=H_socle, fn=72); objet_cylindre(h=H_objet, d=i, px=P1+(i-Dmin)*((2*Dmin+i-Dmin)/2+Garde+2*L_murs), py=-P_socle, pz=H_socle+ep, fn=72); }