- Added first draft of housing
This commit is contained in:
183
Housing/RP2350_MIDI_Lighter_Definition.scad
Normal file
183
Housing/RP2350_MIDI_Lighter_Definition.scad
Normal file
@@ -0,0 +1,183 @@
|
||||
PCB_T = 1.6;
|
||||
PCB_W = 58;
|
||||
PCB_H = 74;
|
||||
|
||||
eps = 0.001;
|
||||
|
||||
Cover_O = 2.5; // O = Overhang
|
||||
Cover_T_T = 2.0; // T_T = Top Thickness
|
||||
Cover_B_T = 3.0; // B_T = Bottom Thickness
|
||||
Wall_PCB_GAP = 0.25;
|
||||
|
||||
|
||||
Drill_M3 = 3.5;
|
||||
Ring_M3_H = 2;
|
||||
|
||||
Screw_Ring_M3_Outer_Diameter = 7.5;
|
||||
Screw_Ring_M3_Inner_Diameter = 5.5;
|
||||
|
||||
Spacer_Top_Height = 10;
|
||||
Spacer_Bot_Height = 5;
|
||||
|
||||
Wall_T_H = Spacer_Top_Height + PCB_T/2; // T_H = Wall Top Height
|
||||
Wall_B_H = Spacer_Bot_Height + PCB_T/2; // B_H = Wall Bottom Height
|
||||
|
||||
Mounting_Holes = [
|
||||
[ 4.0, 70.0, 0],
|
||||
[45.0, 70.0, 0],
|
||||
[42.0, 46.5, 0],
|
||||
[ 4.0, 21.0, 0],
|
||||
[48.0, 23.5, 0]
|
||||
];
|
||||
|
||||
Cable_Relief_Holder = [
|
||||
[10.5, 60.0, 0],
|
||||
[27.0, 60.0, 0]
|
||||
];
|
||||
|
||||
MIDI_Plugs = [
|
||||
[11.5, 13.335, 0],
|
||||
[46.5, 13.335, 0]
|
||||
];
|
||||
|
||||
SSD1306 = [15.875, 53.34 , 0];
|
||||
GC9A01A = [20.320, 20.32 , 0];
|
||||
Rotary_Encoder = [48.895, 36.830, 0];
|
||||
Power_Plug = [49.530, 64.770, 0];
|
||||
Button = [59.055, 23.495, 0];
|
||||
|
||||
|
||||
Screw_Area_Cutout_Widths = [
|
||||
9,
|
||||
12,
|
||||
9,
|
||||
9
|
||||
];
|
||||
|
||||
Screw_Area_Cutout_Offsets = [
|
||||
+Screw_Area_Cutout_Widths[0]/2 - Mounting_Holes[0][0] - Cover_O,
|
||||
-Screw_Area_Cutout_Widths[1]/2 + PCB_W - Mounting_Holes[1][0] + Cover_O,
|
||||
+Screw_Area_Cutout_Widths[2]/2 - Mounting_Holes[2][0] - Cover_O,
|
||||
-Screw_Area_Cutout_Widths[3]/2 + PCB_W - Mounting_Holes[3][0] + Cover_O
|
||||
];
|
||||
|
||||
|
||||
|
||||
|
||||
module Screw_Drill(drill)
|
||||
{
|
||||
translate([0,0,-50])
|
||||
cylinder(h=100, d=drill, center=false, $fn=100);
|
||||
}
|
||||
|
||||
module Screw_Ring_M3(height)
|
||||
{
|
||||
translate([0, 0, height/2])
|
||||
difference()
|
||||
{
|
||||
cylinder(h=1*height, d=Screw_Ring_M3_Outer_Diameter, center=true, $fn=100);
|
||||
cylinder(h=2*height, d=Screw_Ring_M3_Inner_Diameter, center=true, $fn=100);
|
||||
}
|
||||
}
|
||||
|
||||
module SSD1306_Cutout()
|
||||
{
|
||||
// Screw positions relative to the Display
|
||||
// See http://www.lcdwiki.com/File:MC096-015.jpg
|
||||
SSD1306_Screws = [
|
||||
[+27.3/2-2, 2 ,0],
|
||||
[-27.3/2+2, 2 ,0],
|
||||
[+27.3/2-2, 27.8-2 ,0],
|
||||
[-27.3/2+2, 27.8-2 ,0]
|
||||
];
|
||||
|
||||
mirror([0,1,0])
|
||||
translate([0,-2.54/2,0])
|
||||
{
|
||||
for (i = [0:3])
|
||||
{
|
||||
translate(SSD1306_Screws[i]) Screw_Drill(2.5);
|
||||
}
|
||||
|
||||
translate([0, 1.5 ,0]) cube([4*2.54 , 2.54 , 20], center=true);
|
||||
translate([0,14.27,0]) cube([27 , 20 , 20], center=true);
|
||||
translate([0,25.77-0.01,0]) cube([14 , 3 , 20], center=true);
|
||||
}
|
||||
}
|
||||
|
||||
module GC9A01A_Cutout(thickness)
|
||||
{
|
||||
Screw_Holes = [
|
||||
[+15, +06.2, 0],
|
||||
[-15, +06.2, 0],
|
||||
[+15, +36.2, 0],
|
||||
[-15, +36.2, 0]
|
||||
];
|
||||
|
||||
cube([20, 2, thickness], center=true);
|
||||
|
||||
hull()
|
||||
{
|
||||
translate([0, 21.1, 0])
|
||||
cylinder(d=36.0, h=thickness, center=true, $fn = $preview ? 32 : 100);
|
||||
|
||||
translate([0, 42.0, 0])
|
||||
cube([13, 0.1, thickness], center=true);
|
||||
}
|
||||
|
||||
for (i = Screw_Holes) {
|
||||
translate(i)
|
||||
cylinder(r=1.27, h=thickness, center=true, $fn = $preview ? 32 : 100);
|
||||
}
|
||||
}
|
||||
|
||||
module GC9A01A_Cover_Cutout(thickness)
|
||||
{
|
||||
Screw_Holes = [
|
||||
[+15, +06.2, 0],
|
||||
[-15, +06.2, 0],
|
||||
[+15, +36.2, 0],
|
||||
[-15, +36.2, 0]
|
||||
];
|
||||
|
||||
translate([0, 21.1, 0])
|
||||
cylinder(d=36.0, h=thickness, center=true, $fn = $preview ? 32 : 100);
|
||||
|
||||
for (i = Screw_Holes) {
|
||||
translate(i)
|
||||
cylinder(r=1.27, h=thickness, center=true, $fn = $preview ? 32 : 100);
|
||||
}
|
||||
}
|
||||
|
||||
module GC9A01A_Cover_Plate(thickness, scale_factor)
|
||||
{
|
||||
Circle_Cutout_D = Screw_Ring_M3_Outer_Diameter*1.1/scale_factor;
|
||||
|
||||
translate([0, 0, thickness/2])
|
||||
difference()
|
||||
{
|
||||
translate([ 0, 20.5, 0]) roundedBox([40*scale_factor, 44*scale_factor, thickness], 3, true, $fn = $preview ? 32 : 100);
|
||||
translate([22, 26, 0]) cylinder(d=Circle_Cutout_D, h=3*thickness, center=true, $fn = $preview ? 32 : 100);
|
||||
|
||||
translate([-16.5, 0.5, 0]) {
|
||||
cylinder(d=Circle_Cutout_D, h=3*thickness, center=true, $fn = $preview ? 32 : 100);
|
||||
translate([-Circle_Cutout_D/4, 0, 0]) cube([Circle_Cutout_D/2, Circle_Cutout_D, 3*thickness], center=true);
|
||||
translate([0, -Circle_Cutout_D/4, 0])cube([Circle_Cutout_D, Circle_Cutout_D/2, 3*thickness], center=true);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
module Screw_Area_Cutout(width, offset, thickness)
|
||||
{
|
||||
translate([offset, 0, thickness/2 + 0.1])
|
||||
cube([width, 5, thickness + 0.1], center=true);
|
||||
}
|
||||
|
||||
module Screw_Area_Stripe(offset, thickness, scale_y, scale_z)
|
||||
{
|
||||
Width = PCB_W + Cover_O + eps;
|
||||
|
||||
translate([PCB_W/2, offset, thickness/2 + 0.1])
|
||||
scale([1, scale_y, scale_z])
|
||||
cube([Width, 10, thickness + 0.1], center=true);
|
||||
}
|
||||
Reference in New Issue
Block a user