| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192 |
- $fs = 0.4;
- /* Simple part to provide parametric shim to match increased thicknes of
- glass bed added to FlashForge Creator X, and PowerSpec re-branded 3dX
- NOTE: The development of this shim included learning openscad. This
- was built by accretion; no beautiful code here!
- 1. We define a cylinder and clip it to make a retaining bracket,
- along with a square section extending to the back of the printer.
- This is offset to the 'left' in the x-axis.
- 2. We define a crossbar to extend along the back of the plate.
- 3. We define another retaining bracket, offset to the 'right' on the
- x-axis and flipped to point the other direction.
- 4. These parts are unioned together to make the complete shim
- */
- // Change this height parameter to accomodate different glass thickness
- // I used 5.5mm for my 3.2mm glass, to give leeway for bed leveling
- height = 7.0;
- // thickness is a general sizing parameter, used to keep the brackets
- // trim and elegant
- thickness = 2;
- // On my printer, the z-axis stabilizing rods are 20.9mm diameter
- postdiameter = 20.9;
- squaredimension = 15;
- cutback = thickness * 2;
- // cubesize is used to clip a cylinder that is used as the retaining
- // 'ring' around the z-azis stabilizing rods
- cubesize = postdiameter + thickness + 5;
- // we need to reach the limit switch. This is parameterized for tinkering
- distance2back = 18;
- // The two z-axis stabilizing rods are 10cm apart
- center2centerwidth = 100;
- /* one side cylinder and square extension to back of plate */
- translate([-50,0,0]) {
- difference() {
- union() {
- cylinder(h=height, r=postdiameter/2 + thickness, center=true);
-
- translate([thickness * 2,0,-(height/2)])
- {
- cube ([postdiameter/2 - thickness,distance2back, height]);
- } // end of translate
- } // end of union
- cylinder(h=height+1, r=postdiameter/2, center=true);
- translate([-(cubesize-cutback),-cubesize/2,-(height *1.5)])
- {
- cube(cubesize,cubesize,height+5);
- } // end of translate
- } // end of difference
- } // end of translate
- /* cross bar */
- translate([-(center2centerwidth/2 - thickness * 2),distance2back - squaredimension / 2,-(height / 2)]) {
- cube([center2centerwidth - (thickness * 4),squaredimension,height]);
- } // end of translate of cross-bar
- /* cylinder and square extension, flipped for other side */
- translate([50,0,0]) {
- rotate([0,180,0]) {
- difference() {
- union() {
- cylinder(h=height, r=postdiameter/2 + thickness, center=true);
-
- translate([thickness * 2,0,-(height/2)])
- {
- cube ([postdiameter/2 - thickness,distance2back, height]);
- } // end of translate
- } // end of union
- cylinder(h=height+1, r=postdiameter/2, center=true);
- translate([-(cubesize-cutback),-cubesize/2,-(height *1.5)])
- {
- cube(cubesize,cubesize,height+5);
- } // end of translate
- } // end of difference
- } // end of rotate
- } // end of translate
- // } end of union
|