Pointy ThingThis is a quick and dirty pointy thing I whipped out to impale some styrofoam half globes in front of some LED lights to disperse the light some:
// A little clip to slide on the aluminum blocks holding the LED lights and
// provide a pointy bit that can impale half a styrofoam sphere to diffuse
// the light.
blockthick=6.31; // thickness of aluminum block
blockwide=25.45; // width of aluminum block
clipwidth=4; // how wide an area to clip
clipextra=3; // how much extra space over clip
clipthick=1.5; // how thick are clip walls
cliptab=2.5; // how much of block to grab with tabs
pointlen=6; // how long is the pointy bit
pointbase=1.8; // point base radius
pointtip=0.5; // point tip radius
fudge=0.01;
// A half cone that will serve as the pointy bit to impale the styrofoam
//
module pointy_bit() {
difference() {
rotate([0,90,0])
cylinder(r1=pointbase, r2=pointtip, h=pointlen, $fn=16);
translate([-1,-pointlen, -pointlen*2])
cube([pointlen*2, pointlen*2, pointlen*2]);
}
}
// The top part of the clip with the pointy bit sticking out of it
//
module topwall() {
union() {
translate([0,-(blockwide+2*clipthick)/2,0])
cube([clipthick,blockwide+2*clipthick,clipwidth]);
translate([clipthick-fudge,0,0])
pointy_bit();
}
}
// The top part with the extra spacers added to clear the screw heads
//
module topspace() {
union() {
translate([clipextra-fudge,0,0])
topwall();
translate([0,-(blockwide+2*clipthick)/2,0])
cube([clipextra,clipthick,clipwidth]);
translate([0,blockwide/2,0])
cube([clipextra,clipthick,clipwidth]);
}
}
// All the above stuff with the top tabs to grab the block added
//
module toptab() {
union() {
translate([clipthick-fudge,0,0])
topspace();
translate([0,-(blockwide+2*clipthick)/2,0])
cube([clipthick,clipthick+cliptab,clipwidth]);
translate([0,blockwide/2 - cliptab,0])
cube([clipthick,clipthick+cliptab,clipwidth]);
}
}
// Now add the spacers for the thickness of the block
//
module blockspace() {
union() {
translate([blockthick-fudge,0,0])
toptab();
translate([0,-(blockwide+2*clipthick)/2,0])
cube([blockthick,clipthick,clipwidth]);
translate([0,blockwide/2,0])
cube([blockthick,clipthick,clipwidth]);
}
}
// Finally stick on the bottom tabs
//
module bottomtab() {
union() {
translate([clipthick-fudge,0,0])
blockspace();
translate([0,-(blockwide+2*clipthick)/2,0])
cube([clipthick,clipthick+cliptab,clipwidth]);
translate([0,blockwide/2 - cliptab,0])
cube([clipthick,clipthick+cliptab,clipwidth]);
}
}
bottomtab();
Printed one to test the fit, then printed 3 more:
Here's how it clips on to the aluminum blocks I'm using as heat sinks for the LEDs:
Here's how the styrofoam gets impaled:
And here are the lights illuminating my 3D scanner turntable:
Go back to my main Solidoodle page. |