$fn=40; // model faces resolution.RJ12_otvor_velikost_x=12.85;RJ12_otvor_velikost_y=2*18.4;RJ12_otvor_sila_materialu=3.8;RJ12_vzdalenost_od_okraje=5;RJ12_sire_konektoru=15;RJ12_rozestup_mezi_konektory=3.5;sila_materialu=1.2;roztec_der=10.16;pocet_der_v_ose_y=2;pocet_der_v_ose_x=6;snizeni_rozmeru_desky=0.254;RJ_pocet_konektoru=2;prumer_sroubu=3.2;//konektor();drzak();module drzak(){for(a = [0 : 1 : RJ_pocet_konektoru-1]){translate([a*(RJ12_sire_konektoru+RJ12_rozestup_mezi_konektory)+roztec_der-snizeni_rozmeru_desky,0,0])konektor();}deska();}module konektor(){//bocní vyztuhytranslate([sila_materialu/2,0,0])rotate ([0,-90,0])linear_extrude (height = sila_materialu, convexity = 10)polygon(points=[[sila_materialu,RJ12_vzdalenost_od_okraje+RJ12_otvor_sila_materialu],[RJ12_otvor_velikost_y+sila_materialu, RJ12_vzdalenost_od_okraje+RJ12_otvor_sila_materialu],[sila_materialu,roztec_der*pocet_der_v_ose_y-2*snizeni_rozmeru_desky],[sila_materialu,roztec_der*pocet_der_v_ose_y-2*snizeni_rozmeru_desky]]);translate([RJ12_sire_konektoru+RJ12_rozestup_mezi_konektory+sila_materialu/2,0,0])rotate ([0,-90,0])linear_extrude (height = sila_materialu, convexity = 10)polygon(points=[[sila_materialu,RJ12_vzdalenost_od_okraje+RJ12_otvor_sila_materialu],[RJ12_otvor_velikost_y+sila_materialu, RJ12_vzdalenost_od_okraje+RJ12_otvor_sila_materialu],[sila_materialu,roztec_der*pocet_der_v_ose_y-2*snizeni_rozmeru_desky],[sila_materialu,roztec_der*pocet_der_v_ose_y-2*snizeni_rozmeru_desky]]);translate([0,0,0])difference () {cube([RJ12_sire_konektoru+RJ12_rozestup_mezi_konektory,roztec_der*pocet_der_v_ose_y-2*snizeni_rozmeru_desky,sila_materialu+RJ12_otvor_velikost_y]);//tvorba odstupu konektoru od okraje deskytranslate([-0.005,-0.005,sila_materialu])cube([RJ12_sire_konektoru+RJ12_rozestup_mezi_konektory+0.01,RJ12_vzdalenost_od_okraje+0.005,RJ12_otvor_velikost_y+0.01]);translate([(RJ12_sire_konektoru+RJ12_rozestup_mezi_konektory-RJ12_otvor_velikost_x)/2,0,sila_materialu])//otvor na konektorcube([RJ12_otvor_velikost_x,roztec_der*pocet_der_v_ose_y-2*snizeni_rozmeru_desky+0.01,sila_materialu+RJ12_otvor_velikost_y+0.01]);//odstarněni materialu za drzakemtranslate([-0.005,RJ12_otvor_sila_materialu+RJ12_vzdalenost_od_okraje,sila_materialu])cube([RJ12_sire_konektoru+RJ12_rozestup_mezi_konektory+0.01,roztec_der*pocet_der_v_ose_y-2*snizeni_rozmeru_desky,sila_materialu+RJ12_otvor_velikost_y]);}}module deska(){difference () {//základní materiálcube([roztec_der*pocet_der_v_ose_x-2*snizeni_rozmeru_desky,roztec_der*pocet_der_v_ose_y-2*snizeni_rozmeru_desky,sila_materialu]);//otvory na šroubytranslate([roztec_der/2-snizeni_rozmeru_desky,roztec_der/2-snizeni_rozmeru_desky,-0.005])cylinder(h=sila_materialu+0.01, r=prumer_sroubu/2, center=false);translate([(pocet_der_v_ose_x-1)*roztec_der+roztec_der/2-snizeni_rozmeru_desky,roztec_der/2-snizeni_rozmeru_desky,-0.005])cylinder(h=sila_materialu+0.01, r=prumer_sroubu/2, center=false);translate([roztec_der/2-snizeni_rozmeru_desky,(pocet_der_v_ose_y-1)*roztec_der+roztec_der/2-snizeni_rozmeru_desky,-0.005])cylinder(h=sila_materialu+0.01, r=prumer_sroubu/2, center=false);translate([(pocet_der_v_ose_x-1)*roztec_der+roztec_der/2-snizeni_rozmeru_desky,(pocet_der_v_ose_y-1)*roztec_der+roztec_der/2-snizeni_rozmeru_desky,-0.005])cylinder(h=sila_materialu+0.01, r=prumer_sroubu/2, center=false);}}