MPCNC: Power Supply Brick Mount

A laptop-style power brick supplies 24 V for the MPCNC’s stepper motors, but I didn’t want it wandering around on the Basement Laboratory floor and getting in trouble, so a pair of brackets seemed in order:

Power Supply Brick Mount - trial fit
Power Supply Brick Mount – trial fit

They build flat on their backs to avoid support material:

Power Supply Brick Mount - Slic3r
Power Supply Brick Mount – Slic3r

The nicely rounded corners produce a very thin line of plastic on the first layer, so the model now has thicker base plates to improve the situation. A set of mouse ears would keep the tips pasted to the glass.

The OpenSCAD source code as a GitHub Gist:

// Power Supply Brick brackets
// Ed Nisley KE4ZNU 2018-02-26
Layout = "Show";
//-- Extrusion parameters
ThreadThick = 0.25;
ThreadWidth = 0.4;
HoleWindage = 0.3; // enlarge hole dia by this amount
function IntegerMultiple(Size,Unit) = Unit * ceil(Size / Unit);
Protrusion = 0.1; // make holes look good and joints intersect properly
//-- Useful sizes
inch = 25.4;
Tap10_32 = 0.159 * inch;
Clear10_32 = 0.190 * inch;
Head10_32 = 0.373 * inch;
Head10_32Thick = 0.110 * inch;
Nut10_32Dia = 0.433 * inch;
Nut10_32Thick = 0.130 * inch;
ID = 0;
OD = 1;
LENGTH = 2;
//-- Bracket Dimensions
Brick = [170.0,66.0,40.0]; // overall size, add details in module
Socket = [30.0,24.0]; // IEC power socket
Cable = [6.0,15.0]; // DC output cable ID=wire OD=strain relief
WallThick = 3.0; // default wall thickness
BaseThick = 4.0;
Screw = [5.1,10.0,3.0]; // screw size, more-or-less 10-32, OD & LENGTH for head
NumSides = 3*4;
//----------------------
// Useful routines
module PolyCyl(Dia,Height,ForceSides=0) { // based on nophead's polyholes
Sides = (ForceSides != 0) ? ForceSides : (ceil(Dia) + 2);
FixDia = Dia / cos(180/Sides);
cylinder(r=(FixDia + HoleWindage)/2,
h=Height,
$fn=Sides);
}
//----------------------
// Models
module BrickMount(End="Both") {
difference() {
union() {
hull() // main block
for (i=[-1,1], j=[-1,1], k=[0,1])
translate([i*(Brick.x/2 + WallThick - WallThick),
j*(Brick.y/2 + WallThick - WallThick),
k*(Brick.z + WallThick - WallThick)])
sphere(r=WallThick,$fn=NumSides);
hull() // screw flanges
for (i=[-1,1], j=[-1,1])
translate([i*(Brick.x/2 + WallThick - BaseThick),
j*(Brick.y/2 + WallThick + 2*Screw[OD] - BaseThick),
0])
sphere(r=BaseThick,$fn=NumSides);
}
for (i=[-1,1], j=[-1,1]) // remove screw holes
translate([i*(Brick.x/2 + WallThick - Screw[OD]),
j*(Brick.y/2 + WallThick + Screw[OD]),
-Protrusion])
rotate(180/6)
PolyCyl(Screw[ID],2*WallThick,6);
translate([0,0,Brick.z/2]) // remove center part to leave ends
cube([(Brick.x + 2*WallThick - 4*Screw[OD]),2*Brick.y,2*Brick.z],center=true);
if (End == "Socket")
translate([Brick.x/2,0,Brick.z/2]) // remove cable end to leave socket
cube([(Brick.x + 2*WallThick - 4*Screw[OD]),2*Brick.y,2*Brick.z],center=true);
if (End == "Cable")
translate([-Brick.x/2,0,Brick.z/2]) // remove socket end to leave cable
cube([(Brick.x + 2*WallThick - 4*Screw[OD]),2*Brick.y,2*Brick.z],center=true);
translate([0,0,Brick.z/2 - Protrusion/2]) // remove power supply brick from interior
cube(Brick + [0,0,Protrusion],center=true);
translate([0,0,-Brick.z]) // remove below XY plane
cube(2*Brick,center=true);
translate([0,0,Brick.z/2]) // remove AC socket
rotate([0,-90,0])
rotate(90)
linear_extrude(height=Brick.x,convexity=2)
square(Socket,center=true);
translate([0,0,Brick.z/2]) // remove DC cable
rotate([0,90,0])
rotate(180/8)
PolyCyl(Cable[OD],Brick.x,8);
translate([Brick.x/2,0,Brick.z/4 - Protrusion/2]) // ... and wire slot
cube([Brick.x,Cable[ID],Brick.z/2 + Protrusion],center=true);
}
}
//----------------------
// Build it
if (Layout == "Show")
BrickMount("Both");
if (Layout == "Build") {
translate([5,0,Brick.x/2 + WallThick])
rotate([0,90,0])
BrickMount("Cable");
translate([-5,0,Brick.x/2 + WallThick])
rotate([0,-90,0])
BrickMount("Socket");
}

One thought on “MPCNC: Power Supply Brick Mount

Comments are closed.