106 lines
2.6 KiB
OpenSCAD
106 lines
2.6 KiB
OpenSCAD
$fn = 100;
|
|
|
|
w_board = 14;
|
|
d_board = 12.75;
|
|
h_board = 3.20;
|
|
|
|
pad = 0.2;
|
|
pad_top = 0.0;
|
|
|
|
w_pad = w_board + pad;
|
|
d_pad = d_board + pad;
|
|
h_pad = h_board + pad;
|
|
|
|
wall = 1;
|
|
|
|
w_wall = w_pad + (wall * 2);
|
|
d_wall = d_pad + (wall * 2);
|
|
h_wall = h_pad + (wall * 2);
|
|
|
|
|
|
w_usbm = 8.1;
|
|
h_usbm = 2.4;
|
|
|
|
w_usbm_pad = w_usbm + pad;
|
|
h_usbm_pad = h_usbm + pad;
|
|
|
|
w_usbf = 8.9;
|
|
h_usbf = 3.2;
|
|
|
|
w_usbf_pad = w_usbf + pad;
|
|
h_usbf_pad = h_usbf + pad;
|
|
|
|
r_usb_corner = 1.5;
|
|
|
|
d_corner = 1.5;
|
|
|
|
text_depth = 0.2;
|
|
|
|
e = 0.01;
|
|
|
|
|
|
difference() {
|
|
outer();
|
|
|
|
translate([wall, wall, wall])
|
|
cube([w_pad, d_pad, h_pad + pad_top]);
|
|
|
|
|
|
|
|
translate([(w_wall - w_usbm_pad) / 2 + r_usb_corner, 0, (h_wall - h_usbf_pad) / 2])
|
|
cube([w_usbm_pad - (r_usb_corner * 2), wall + e, h_usbf_pad]);
|
|
|
|
translate([(w_wall - w_usbm_pad) / 2, 0, (h_wall - h_usbf_pad) / 2 + r_usb_corner])
|
|
cube([w_usbm_pad, wall + e, h_usbf_pad - r_usb_corner]);
|
|
|
|
translate([(w_wall - w_usbm_pad) / 2 + r_usb_corner, wall + e, (h_wall - h_usbf_pad) / 2 + r_usb_corner])
|
|
rotate([90, 0, 0])
|
|
cylinder(h=(wall + e), r=r_usb_corner);
|
|
|
|
translate([(w_wall - w_usbm_pad) / 2 + w_usbm_pad - r_usb_corner, wall + e, (h_wall - h_usbf_pad) / 2 + r_usb_corner])
|
|
rotate([90, 0, 0])
|
|
cylinder(h=(wall + e), r=r_usb_corner);
|
|
|
|
|
|
|
|
|
|
translate([(w_wall - w_usbf_pad) / 2 + r_usb_corner, d_wall - wall - e, (h_wall - h_usbf_pad) / 2])
|
|
cube([w_usbf_pad - (r_usb_corner * 2), wall + e, h_usbf_pad]);
|
|
|
|
translate([(w_wall - w_usbf_pad) / 2, d_wall - wall - e, (h_wall - h_usbf_pad) / 2 + r_usb_corner])
|
|
cube([w_usbf_pad, wall + e, h_usbf_pad - r_usb_corner]);
|
|
|
|
translate([(w_wall - w_usbf_pad) / 2 + r_usb_corner, d_wall, (h_wall - h_usbf_pad) / 2 + r_usb_corner])
|
|
rotate([90, 0, 0])
|
|
cylinder(h=(wall + e), r=r_usb_corner);
|
|
|
|
translate([(w_wall - w_usbf_pad) / 2 + w_usbf_pad - r_usb_corner, d_wall, (h_wall - h_usbf_pad) / 2 + r_usb_corner])
|
|
rotate([90, 0, 0])
|
|
cylinder(h=(wall + e), r=r_usb_corner);
|
|
|
|
translate([1.5, 11.5, 0])
|
|
linear_extrude(height=text_depth)
|
|
mirror([0, 1, 0])
|
|
text(text="RF", size=8, font="JetBrains Mono");
|
|
|
|
translate([1.5, 3.5, h_wall - text_depth])
|
|
linear_extrude(height=text_depth)
|
|
text(text="RF", size=8, font="JetBrains Mono");
|
|
}
|
|
|
|
|
|
module outer() {
|
|
hull()
|
|
{
|
|
for (x = [0, w_wall - d_corner]) {
|
|
for (y = [0, d_wall - d_corner]) {
|
|
for (z = [0, h_wall + pad_top - d_corner]) {
|
|
translate([x, y, z])
|
|
translate([d_corner / 2, d_corner / 2, d_corner / 2])
|
|
sphere(d=d_corner);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|