$fn=100;//Univerzální model držáku ventilátoru//Parametry ventilátoruroztec_mezi_srouby=20;vzdalenost_stredu_sroubu_od_okraje=4;//Parametry úchytu ventilátorusirka_uchytu=10;//Parametr šroubu uchytného u ventilátoruvyska_hlavy_sroubu=5;prumer_sroubu=3.2;//Roztec der v ALbaseroztec=10.16;prumer_otvoru=3.2;sila_materialu=1.8;vzdalenost_od_okraje=5;pocet_der_x=2;pocet_der_y=4;difference(){union(){//spodní dílcube([roztec*(pocet_der_x-1)+2*vzdalenost_od_okraje,roztec*(pocet_der_y-1)+2*vzdalenost_od_okraje,sila_materialu],center=true);//uchyt na ventilátortranslate([(pocet_der_x-1)*roztec/2+vzdalenost_od_okraje, roztec_mezi_srouby/2-sirka_uchytu/2, sila_materialu/2])rotate([0, -90, 0])cube([vzdalenost_stredu_sroubu_od_okraje+vyska_hlavy_sroubu+prumer_sroubu,sirka_uchytu,sila_materialu],center=false);//uchyt 2translate([(pocet_der_x-1)*roztec/2+vzdalenost_od_okraje, -roztec_mezi_srouby/2-sirka_uchytu/2, sila_materialu/2])rotate([0, -90, 0])cube([vzdalenost_stredu_sroubu_od_okraje+vyska_hlavy_sroubu+prumer_sroubu,sirka_uchytu,sila_materialu],center=false);//podpera 1translate([0, roztec_mezi_srouby/2-sila_materialu/2, sila_materialu/2])rotate([-90, -90, 0])linear_extrude (height = sila_materialu, convexity = 10)polygon(points=[[0,0],[0, (pocet_der_x-1)*roztec/2+vzdalenost_od_okraje],[vyska_hlavy_sroubu,(pocet_der_x-1)*roztec/2+vzdalenost_od_okraje],[0,0]]);//podpera 2translate([0, -roztec_mezi_srouby/2-sila_materialu/2, sila_materialu/2])rotate([-90, -90, 0])linear_extrude (height = sila_materialu, convexity = 10)polygon(points=[[0,0],[0, (pocet_der_x-1)*roztec/2+vzdalenost_od_okraje],[vyska_hlavy_sroubu,(pocet_der_x-1)*roztec/2+vzdalenost_od_okraje],[0,0]]);}//otvory na šrouby v držákutranslate([(pocet_der_x-1)*roztec/2+vzdalenost_od_okraje-sila_materialu/2, roztec_mezi_srouby/2, sila_materialu/2+vyska_hlavy_sroubu+vzdalenost_stredu_sroubu_od_okraje])rotate([0, -90, 0])cylinder(h=sila_materialu+0.2, r=prumer_sroubu/2, center=true);translate([(pocet_der_x-1)*roztec/2+vzdalenost_od_okraje-sila_materialu/2, -roztec_mezi_srouby/2, sila_materialu/2+vyska_hlavy_sroubu+vzdalenost_stredu_sroubu_od_okraje])rotate([0, -90, 0])cylinder(h=sila_materialu+0.2, r=prumer_sroubu/2, center=true);//otvory na šrouby ve spodní částitranslate([(pocet_der_x-1)*roztec/2, (pocet_der_y-1)*roztec/2, 0])cylinder(h=sila_materialu+0.2, r=prumer_otvoru/2, center=true);translate([-(pocet_der_x-1)*roztec/2, (pocet_der_y-1)*roztec/2, 0])cylinder(h=sila_materialu+0.2, r=prumer_otvoru/2, center=true);translate([(pocet_der_x-1)*roztec/2, -(pocet_der_y-1)*roztec/2, 0])cylinder(h=sila_materialu+0.2, r=prumer_otvoru/2, center=true);translate([-(pocet_der_x-1)*roztec/2, -(pocet_der_y-1)*roztec/2, 0])cylinder(h=sila_materialu+0.2, r=prumer_otvoru/2, center=true);}