
Customizable Pencil Holder
thingiverse
Here is the customizable version of the Pencil Holder I made yesterday. Now all nice and pretty like. Plus well customizable so you can make your own for your dorm, office, or any other place. How I Designed This First, let's take a look at how I designed this pencil holder. I wanted to create something that was both functional and stylish, so I started by defining the variables that would control its shape and size. Code Explanation: Take a look at the two images above and the code below to see how it all works. A quick note before I begin - thanks for the whiteboards in the college lobbies! They're so much nicer than just using a sheet of paper. My first step was to define what variables were required, so every element could be altered in the customizer. Besides allowing the clip to mount horizontally, that might come later. To know what those variables are, I referred to the dimensions I used when I first created this in inventor. There's the width of the rail, how tall/deep you want the slot to be, how much room you want to allot for the ledge, and more. Here is the code: module TraceOutline(){ difference() { union() { linear_extrude(slotLength){ square(size = [railWidth+2clipThickness, clipThickness]); square(size = [clipThickness, slotHeight+2clipThickness]); translate([railWidth+clipThickness, 0]){ square(size = [clipThickness, slotHeight+2clipThickness]); } translate([railWidth+clipThickness, slotHeight+clipThickness]){ square(size = [ledgeWidth+2clipThickness, clipThickness]); } translate([railWidth+ledgeWidth+clipThickness2, slotHeight-ledgeHeight+clipThickness]){ square(size = [clipThickness,railWidth+2clipThickness]); } } if(includeDefaultFillets){ addDefaultFillets(); } } if(includeDefaultFillets){ scale([1,1,1.0001]){ translate([0,0,-.00001]){ cutDefaultFillets(); } } } } } module addDefaultFillets(){ roundCorners(center = [1.5clipThickness + railWidth + ledgeWidth, slotHeight + .5clipThickness], bottomLeft = true, radi = clipThickness/2+.0001); roundCorners(center = [2.5clipThickness + railWidth, slotHeight + .5clipThickness], bottomRight = true, radi = clipThickness/2+.0001); } module cutDefaultFillets(){ roundCorners(center = [2.5clipThickness + railWidth + ledgeWidth, slotHeight - ledgeHeight + 1.5clipThickness], topLeft = true, topRight = true, radi = clipThickness/2+.0001); roundCorners(center = [2.5clipThickness + railWidth + ledgeWidth, slotHeight + 1.5clipThickness], bottomLeft = true, radi = clipThickness/2+.0001); roundCorners(center = [1.5clipThickness + railWidth, slotHeight + 1.5clipThickness], bottomRight = true, radi = clipThickness/2+.0001); roundCorners(center = [.5clipThickness, slotHeight + 1.5clipThickness], bottomLeft = true, bottomRight = true, radi = clipThickness/2+.0001); } module roundCorners(center = [0,0], topLeft = false, topRight = false, bottomLeft = false, bottomRight = false, radi = .125){ translate([center[0], center[1], 0]){ difference(){ union(){ if(topLeft){ rotate([0,0,270]){ cube([radi,radi,slotLength]); } } if(topRight){ rotate([0,0,180]){ cube([radi,radi,slotLength]); } } if(bottomLeft){ rotate([0,0,0]){ cube([radi,radi,slotLength]); } } if(bottomRight){ rotate([0,0,90]){ cube([radi,radi,slotLength]); } } } translate([0,0,-.00001]){ cylinder(r=radi, h = slotLength+.0001, $fn=resoultion); } } } }
With this file you will be able to print Customizable Pencil Holder with your 3D printer. Click on the button and save the file on your computer to work, edit or customize your design. You can also find more 3D designs for printers on Customizable Pencil Holder.