I started to build my Prusa i3 printer a few years ago, from scratch, buying pieces and pieces on eBay and Amazon. It took me one year and a half to build it, and here it was ! After some days spent on calibration, I started to print some designs I found on the Internet, until my plastic filament spool got jammed because I did not have a spool holder.
Looking for the best spool holder
After having spent many hours on Thingiverse, I was not satisfied as every spool holder I found requires some screws or some weird assembly. This is why I decided to create my own that does not need screws and will be easy to assemble. I drew some designs on a piece of paper, and quickly came to this solution:

This spool holder works thanks to the gravity and a few 608ZZ bearings (I had many of them because this kind of bearings are sold by 10 whereas my printer only required 3 of them). The design is damned simple: a circular plate is placed on 3 bearings, hold by a single piece of printed plastic with absolutely no screws or weird assembly ! A circular ring is placed on the plate and maintained in position with 4 notches, allowing various spool diameter to be put on this holder.
Allright, I got the idea, but how the hell do I create the 3D model for all these parts ? It was the start of my journey in this happy world of designing 3D parts.
Coding rather than drawing
Many people uses Sketchup or any similar software (really good CAD softwares anyway), but I thought it would be interesting to dive into OpenSCAD, an opensource 3D part designing software. This software is like no other: you don't draw your part, you program it !
I created my first SCAD program and design all the parts I needed. Here is the source code of the plate as an example:
/**
* Spool support.
*/
/* Import stand.scad for config values. */
use <stand.scad>
plate_bottom_radius = 38.2;
plate_height = 7;
plate_top_radius = plate_height*tan(45)+plate_bottom_radius;
module spool_support(spool_diam=52){
difference(){
difference(){
union(){
cylinder(h=plate_height, r2=plate_top_radius,r1=plate_bottom_radius, $fn=200);
translate([0,0,6]) cylinder(h=1, r1=plate_top_radius+10.0, r2=plate_top_radius+10.0, $fn=200);
}
translate([0,0,-0.2]) cylinder(h=plate_height+1, r1=19, r2=19, $fn=200);
translate([0,0,-0.2]) cylinder(h=plate_height-1.3, r1=plate_bottom_radius-2, r2=plate_bottom_radius-2, $fn=200);
for (i=[0,90,180,270]) {
rotate([0,0,i]) translate([spool_diam/2 - 2.5,0,5.4]) cylinder(h=2, r1=1.6, r2=1.7, $fn=200);
}
};
cube([90,90,7], true);
}
}
spool_support(spool_diam=52.8);
By using OpenSCAD, I was able to automate some tasks and create a quite complex design by simply doing math and code :).
Final design of my spool holder
After some tests and improvements, here is the final design I came with:

And a picture of this spool holder I'm currently using with my 3D printer:

Want to print it ? It is available from Thingiverse: http://www.thingiverse.com/thing:1269036
If you want to learn more about OpenSCAD, the online documentation is pretty amazing ! (These guys create gears and much more complex designs by only coding !!)
Cool spool holder! Great it's working out for you. It's always satisfying when your project works the way you want it to go.
OpenSCAD sounds cool - I think I heard about it from one of my group mates before of a similar concept where you code rather than by drawings, but, man, I must visualise what I'm doing with my project. I currently use Fusion 360 with my projects - free for start-ups and enthusiasts (for now at least!).
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
I have to admit it sounds a bit weird to "code" a 3d part, but it is really powerful. From a person like me who learned C, it's easy to conceptualize a part as a flexible module you can call in a bigger project, like we usually build a complex program in C.
The OpenSCAD editor allows real-time visualization of what you're doing/coding, so it is not so hard to see where you're going while coding.
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
Congratulations @virtualabs! You have completed some achievement on Steemit and have been rewarded with new badge(s) :
Click on any badge to view your own Board of Honnor on SteemitBoard.
For more information about SteemitBoard, click here
If you no longer want to receive notifications, reply to this comment with the word
STOP
If you want to support the SteemitBoard project, your upvote for this notification is welcome!
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
Congratulations @virtualabs! You received a personal award!
You can view your badges on your Steem Board and compare to others on the Steem Ranking
Do not miss the last post from @steemitboard:
Vote for @Steemitboard as a witness to get one more award and increased upvotes!
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit