In another exciting adventure in the life of a 3D printer today I designed and built another device. (OK, “exciting” might be over egging the pudding a tiny bit)
I have mentioned elsewhere that I got a design from Thingiverse to make a set of rollers to use a larger spool of filament than my printer will normally take:
Here is it in use:
When I tested the rollers and they worked perfectly, the only fly in the ointment was initially getting the spool to sit in both rollers as they tended to move about independently. I also read that they had difficulties when the spool was nearly empty - ie very light.
I decided to design a holder for them which would keep them parallel and the correct distance apart no matter what. So once more it was into OpenScad to design something suitable.
It also had to have some way for changing the design to allow for different width of spool (of which there seem to be two). This is what I came up with:
It took a couple of hours to print but the original pieces fitted perfectly and made the whole thing so much more stable. Even better it was just a matter of dropping the spool onto them
I printed out another for the other size of reel.
BTW the writing is just showing off
It would be very easy to fix to the bench if necessary adding screw holes is dead easy but Blutack or double sided tape would be fine too.
Here is the OpenScad code if you are interested in trying it yourself:
//Spool Holder Stand
// Variables******************
Sphdwd=14.2; //Holder width
Relwd=55; //distance between spool sides
//61 or 55 mm
Sphdlen=128; //length of spool holder
Const=15; //Constant for Cubes
Blkht=10; //Height of Block
Thns=2; //Thickness of sides and stand
// End Variables***************
Endpiece();
rotate([0,0,180])
translate([-(Relwd+Sphdwd+Const),-(Sphdlen+Const),0])
Endpiece();
//Side Pieces
cube([Thns,(Const)+Sphdlen,Blkht]);
translate([Relwd+Sphdwd+Const,0,0])
cube([Thns,(Const)+Sphdlen,Blkht]);
//Centre brace
translate([((Relwd+Sphdwd+Const)/2)-(Blkht/2),0,Thns])
rotate([0,90,0])
cube([Thns,(Const)+Sphdlen,Blkht]);
//Add descriptive Text
if (Relwd==61)
{
translate([(Relwd+Sphdwd+Const)/2,2,Blkht])
linear_extrude(Thns)
text("61 mm",halign="center",size=8);
}
if (Relwd==55)
{
translate([(Relwd+Sphdwd+Const)/2,2,Blkht])
linear_extrude(Thns)
text("55 mm",halign="center",size=8);
}
//Basic shape module
module Endpiece()
{
difference()
{
translate([0,0,0])
cube([Relwd+Sphdwd+Const,Const,Blkht]);
translate([Const/2,Const/2,Thns])
cube([Sphdwd,Const,Blkht]);
translate([Relwd+(Const/2),Const/2,Thns])
cube([Sphdwd,Const,Blkht]);
}
}
As you can see I used a lot of variables but the only one that needs changing for different spool sizes is this one:
Relwd=55; //distance between spool sides
//61 or 55 mm
BTW normally the 0.5kg spool fits inside the printer case (I believe it is to reduce the footprint of the printer) but the 1kg spools are too big and too wide.