// Test d'emboitements version carrés H_socle=2; // Hauteur du support H_objet=10; // Hauteur des objets Dmin=2; // Plus petit côté Dmax=10; // Plus grand côté 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_parallelepipede(dx=i, dy=i, dz=H_objet, px=P1+(i-Dmin)*((2*Dmin+i-Dmin)/2+Garde+2*L_murs)-i/2, py=P_socle-i/2, pz=H_socle); // 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_parallelepipede(dx=i+2*L_murs, dy=i+2*L_murs, dz=H_objet, px=P1+(i-Dmin)*((2*Dmin+i-Dmin)/2+Garde+2*L_murs)-i/2-L_murs, py=-P_socle-i/2-L_murs, pz=H_socle); objet_parallelepipede(dx=i, dy=i, dz=H_objet, px=P1+(i-Dmin)*((2*Dmin+i-Dmin)/2+Garde+2*L_murs)-i/2, py=-P_socle-i/2, pz=H_socle+ep); }