30 walll = basel + webt + (pad ? padl : -0.1);
32 webw = min(basew, pad ? padw : padt);
34 module slothole(sz, slot, thick, csunk=true, slop=holeslop) {
36 for (y = [-slot/2,slot/2]) {
37 translate([0,y,-0.15])
38 cylinder(r1=sz/2 + slop,
39 r2=sz/2 + (csunk ? thick : 0) + slop,
47 translate([0, -basew, 0])
48 cube([basel, basew, baset]);
50 translate([basel/2, -(basew+wallt)/2, 0])
51 slothole(baseholesz, baseholeslot, baset, slop=baseholeslop);
55 translate([0.1, 0.3, 0.1])
57 linear_extrude(height=wallt){
59 [0, wallh/2 + wallholesz/2 + wallt + wallt],
62 [walll, wallh - padt - padt],
67 translate([basel/2, 0, wallholeh])
69 slothole(wallholesz, wallholeslot, wallt, csunk=false);
72 translate([basel-0.01, 0, 0]) {
74 linear_extrude(height=webt+0.02) {
85 translate([basel+webt, -padw, wallh-padt]) {
87 cube([padl, padw, padt]);
88 translate([padl/2, padw/2, -1])
89 cylinder(r=padholesz/2 + holeslop, h=padt+2);
95 module BracketR(){ ////toplevel
96 rotate([-90,0,0]) Bracket();
99 module BracketL(){ ////toplevel
100 mirror([1,0,0]) BracketR();
108 protlidt = protwallt;
112 module RearCableProtector(){
113 for (x = [-protwallt, protinnerw]) {
114 translate([x, 0, 0]) {
115 cube([protwallt, protd, protinnerh+protlidt]);
118 translate([-(protwallt-0.1), 0, protinnerh])
119 cube([protinnerw + (protwallt-0.1)*2, protd, protlidt]);
121 translate([(lr ? -(protwingw + protwallt) : protinnerw), 0, 0]) {
124 cube([protwingw, protwingd, protbaset]);
125 translate([protwingw/2, protwingd/2, 0])
126 rotate([0,0, lr ? 45 : -45])
127 slothole(baseholesz, baseholeslot, baset, slop=baseholeslop);
133 module RearCableProtectorT(){ ////toplevel
134 rotate([90,0,0]) RearCableProtector();
137 module Kit(){ ////toplevel
138 for (y=[0, -wallh-5]) {
140 translate([5,0,0]) BracketR();
148 //RearCableProtectorT();