Merged Harry Binnema's improvements
parent
e206e24791
commit
271a8d1ee0
Binary file not shown.
|
@ -1,113 +1,119 @@
|
||||||
/* Derived by Carlosgs from:
|
/* Derived by Carlosgs from:
|
||||||
* http://www.thingiverse.com/thing:12789
|
* http://www.thingiverse.com/thing:12789
|
||||||
* An extruder gear set for the TechZone Huxley,
|
* An extruder gear set for the TechZone Huxley,
|
||||||
* featuring Herringbone teeth.
|
* featuring Herringbone teeth.
|
||||||
* You will have to recalibrate your E_STEPS_PER_MM in
|
* You will have to recalibrate your E_STEPS_PER_MM in
|
||||||
* your firmware (ratio changing from original techzone
|
* your firmware (ratio changing from original techzone
|
||||||
* lasercut gears).
|
* lasercut gears).
|
||||||
* This use 2 modules from the MCAD library that you can
|
* This use 2 modules from the MCAD library that you can
|
||||||
* get from https://github.com/elmom/MCAD.
|
* get from https://github.com/elmom/MCAD.
|
||||||
*
|
*
|
||||||
* Part - the motor gear mount hub with set screw hole -
|
* Part - the motor gear mount hub with set screw hole -
|
||||||
* derived from http://www.thingiverse.com/thing:3104
|
* derived from http://www.thingiverse.com/thing:3104
|
||||||
* (thanks GilesBathgate) which is under GPL CC license.
|
* (thanks GilesBathgate) which is under GPL CC license.
|
||||||
*
|
*
|
||||||
* Copyright (C) 2011 Guy 'DeuxVis' P.
|
* Copyright (C) 2011 Guy 'DeuxVis' P.
|
||||||
*
|
*
|
||||||
* This program is free software; you can redistribute it and/or
|
* August 2013 added 2 extra setscrews to ensure centered usage.
|
||||||
* modify it under the terms of the GNU General Public License
|
* by Harry Binnema.
|
||||||
* as published by the Free Software Foundation; either version 2
|
*
|
||||||
* of the License, or (at your option) any later version.
|
* This program is free software; you can redistribute it and/or
|
||||||
*
|
* modify it under the terms of the GNU General Public License
|
||||||
* This program is distributed in the hope that it will be useful,
|
* as published by the Free Software Foundation; either version 2
|
||||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
* of the License, or (at your option) any later version.
|
||||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
*
|
||||||
* GNU General Public License for more details.
|
* This program is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
* You should have received a copy of the GNU General Public License
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
* along with this program; if not, write to the Free Software
|
* GNU General Public License for more details.
|
||||||
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
|
||||||
* --
|
* You should have received a copy of the GNU General Public License
|
||||||
* DeuxVis - device@ymail.com */
|
* along with this program; if not, write to the Free Software
|
||||||
|
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
||||||
include <MCAD/teardrop.scad>
|
* --
|
||||||
include <MCAD/involute_gears.scad>
|
* DeuxVis - device@ymail.com */
|
||||||
|
|
||||||
motor_shaft_diameter=5.4;
|
include <MCAD/teardrop.scad>
|
||||||
BigGear_N_Teeth = 21; // 24
|
include <MCAD/involute_gears.scad>
|
||||||
|
|
||||||
nholes = 9; // 7
|
motor_shaft_diameter=5.4;
|
||||||
holes_diam = 6;
|
BigGear_N_Teeth = 21; // 24
|
||||||
hole_distance_from_center = 13.5-4.5+holes_diam/2;
|
|
||||||
|
nholes = 9; // 7
|
||||||
/* Herringbone gear module, adapted from MCAD/involute_gears */
|
holes_diam = 6;
|
||||||
module herringbone_gear( teeth=12, circles=0, shaft=5 ) {
|
hole_distance_from_center = 13.5-4.5+holes_diam/2;
|
||||||
twist=200;
|
|
||||||
height=10;
|
/* Herringbone gear module, adapted from MCAD/involute_gears */
|
||||||
pressure_angle=30;
|
module herringbone_gear( teeth=12, circles=0, shaft=5 ) {
|
||||||
|
twist=200;
|
||||||
gear(
|
height=10;
|
||||||
number_of_teeth=teeth,
|
pressure_angle=30;
|
||||||
circular_pitch=320,
|
|
||||||
pressure_angle=pressure_angle,
|
gear(
|
||||||
clearance = 0.2,
|
number_of_teeth=teeth,
|
||||||
gear_thickness = height/2,
|
circular_pitch=320,
|
||||||
rim_thickness = height/2,
|
pressure_angle=pressure_angle,
|
||||||
rim_width = 1,
|
clearance = 0.2,
|
||||||
hub_thickness = height/2,
|
gear_thickness = height/2,
|
||||||
hub_diameter=1,
|
rim_thickness = height/2,
|
||||||
bore_diameter=shaft,
|
rim_width = 1,
|
||||||
circles=circles,
|
hub_thickness = height/2,
|
||||||
twist=twist/teeth
|
hub_diameter=1,
|
||||||
);
|
bore_diameter=shaft,
|
||||||
|
circles=circles,
|
||||||
mirror( [0,0,1] )
|
twist=twist/teeth
|
||||||
gear(
|
);
|
||||||
number_of_teeth=teeth,
|
|
||||||
circular_pitch=320,
|
mirror( [0,0,1] )
|
||||||
pressure_angle=pressure_angle,
|
gear(
|
||||||
clearance = 0.2,
|
number_of_teeth=teeth,
|
||||||
gear_thickness = height/2,
|
circular_pitch=320,
|
||||||
rim_thickness = height/2,
|
pressure_angle=pressure_angle,
|
||||||
rim_width = 1,
|
clearance = 0.2,
|
||||||
hub_thickness = height/2,
|
gear_thickness = height/2,
|
||||||
hub_diameter=1,
|
rim_thickness = height/2,
|
||||||
bore_diameter=shaft,
|
rim_width = 1,
|
||||||
circles=circles,
|
hub_thickness = height/2,
|
||||||
twist=twist/teeth
|
hub_diameter=1,
|
||||||
);
|
bore_diameter=shaft,
|
||||||
}
|
circles=circles,
|
||||||
|
twist=twist/teeth
|
||||||
// Motor gear
|
);
|
||||||
union() difference() {
|
}
|
||||||
union() {
|
|
||||||
|
// Motor gear
|
||||||
//gear
|
union() difference() {
|
||||||
herringbone_gear( teeth=BigGear_N_Teeth );
|
union() {
|
||||||
|
|
||||||
translate( [0, 0, 12] ) mirror( [0, 0, 1] ) difference() {
|
//gear
|
||||||
//shaft
|
herringbone_gear( teeth=BigGear_N_Teeth );
|
||||||
cylinder( r=9, h=15, $fn=40 );
|
|
||||||
|
translate( [0, 0, 12] ) mirror( [0, 0, 1] ) difference() {
|
||||||
//captive nut and grub holes
|
//shaft
|
||||||
translate( [0, 20, 3.5] ) rotate( [90, 0, 0] ) union() {
|
cylinder( r=9, h=15, $fn=40 );
|
||||||
//enterance
|
//adapted to include 3 captive nuts for symmetrical positioning
|
||||||
translate( [0, -3, 14.5] ) cube( [6, 6, 2.6], center=true );
|
//adpted bij HJ Binnema on August 26 2013.
|
||||||
//nut
|
for (i= [0:2]){
|
||||||
translate( [0, 0, 13.3] ) rotate( [0, 0, 30] )
|
rotate([0,0,i*120]){
|
||||||
cylinder( r=6/2+0.5, h=2.6, $fn=6 );
|
//captive nut and grub holes
|
||||||
//grub hole
|
translate( [0, 20, 3.5] ) rotate( [90, 0, 0] ) union() {
|
||||||
translate( [0, 0, 9] ) cylinder( r=3.2/2, h=10, $fn=6 );
|
//enterance
|
||||||
}
|
translate( [0, -3, 14.5] ) cube( [6, 6, 2.6], center=true );
|
||||||
}
|
//nut
|
||||||
}
|
translate( [0, 0, 13.3] ) rotate( [0, 0, 30] )
|
||||||
|
cylinder( r=6/2+0.5, h=2.6, $fn=6 );
|
||||||
//holes to save plastic
|
//grub hole
|
||||||
for(i=[0:nholes-1])
|
translate( [0, 0, 9] ) cylinder( r=3.2/2, h=10, $fn=6 );
|
||||||
rotate( [0, 0, i*360/(nholes)+45], $fn=20 )
|
}}}
|
||||||
translate( [hole_distance_from_center, 0] )
|
}
|
||||||
cylinder( r=holes_diam/2, h=11, center=true, $fn=30 );
|
}
|
||||||
|
|
||||||
//shaft hole
|
//holes to save plastic
|
||||||
translate( [0, 0, -6] ) cylinder( r=motor_shaft_diameter/2, h=20, $fn=30 );
|
for(i=[0:nholes-1])
|
||||||
}
|
rotate( [0, 0, i*360/(nholes)+45], $fn=20 )
|
||||||
|
translate( [hole_distance_from_center, 0] )
|
||||||
|
cylinder( r=holes_diam/2, h=11, center=true, $fn=30 );
|
||||||
|
|
||||||
|
//shaft hole
|
||||||
|
translate( [0, 0, -6] ) cylinder( r=motor_shaft_diameter/2, h=20, $fn=30 );
|
||||||
|
}
|
||||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -3,5 +3,5 @@ Hardware for Cyclone-PCB-Factory
|
||||||
|
|
||||||
**Development** version of the hardware
|
**Development** version of the hardware
|
||||||
|
|
||||||
_Designs present in this folder may not be consistent_
|
_Designs present in this folder may not be consistent_
|
||||||
|
|
||||||
|
|
|
@ -1,13 +1,20 @@
|
||||||
// Cyclone PCB Factory: a 3D printable CNC machine for PCB manufacture
|
// Cyclone PCB Factory: a 3D printable CNC machine for PCB manufacture
|
||||||
// Created by Carlosgs (http://carlosgs.es)
|
// Created by Carlosgs (http://carlosgs.es)
|
||||||
// License: Attribution - Share Alike - Creative Commons (http://creativecommons.org/licenses/by-sa/3.0/)
|
// License: Attribution - Share Alike - Creative Commons (http://creativecommons.org/licenses/by-sa/3.0/)
|
||||||
|
/*
|
||||||
|
* August 2013 changes to design top-part mounting screw at same side as bottom-part.
|
||||||
|
* also started introduced 2nd spindle diameter for a-symmetrical spindles. this is not working yet.
|
||||||
|
* by Harry Binnema.
|
||||||
|
*/
|
||||||
|
|
||||||
use <../libs/obiscad/bcube.scad>
|
use <../libs/obiscad/bcube.scad>
|
||||||
use <../libs/build_plate.scad>
|
use <../libs/build_plate.scad>
|
||||||
use <../libs/Write/Write.scad>
|
use <../libs/Write/Write.scad>
|
||||||
|
|
||||||
|
spindle_motor_diam_top = 26*2;
|
||||||
spindle_motor_diam = 26*2;
|
spindle_motor_diam = 26*2;
|
||||||
spindle_holder_thickness = 7;
|
spindle_holder_thickness = 8;
|
||||||
|
spindle_holder_distance = 46;
|
||||||
|
|
||||||
bottom_thickness = 4;
|
bottom_thickness = 4;
|
||||||
base_width = 20;
|
base_width = 20;
|
||||||
|
@ -29,7 +36,7 @@ M8_rod_diameter = 8.2;
|
||||||
|
|
||||||
axis_distance = 21;
|
axis_distance = 21;
|
||||||
|
|
||||||
wall_thickness = 8;
|
wall_thickness = 9;
|
||||||
wall_height = motor_width;
|
wall_height = motor_width;
|
||||||
wall_width = 54;
|
wall_width = 54;
|
||||||
|
|
||||||
|
@ -58,22 +65,28 @@ module dummySpindle() {
|
||||||
}
|
}
|
||||||
|
|
||||||
// Derived from Spindle mount for ShapeOko by Misan (http://www.thingiverse.com/thing:26740)
|
// Derived from Spindle mount for ShapeOko by Misan (http://www.thingiverse.com/thing:26740)
|
||||||
module spindle_holder_holes(length=50,showSpindle=true) {
|
module spindle_holder_holes(length,spindiam, basediam,top_part) {
|
||||||
$fn=6;
|
$fn=6;
|
||||||
|
|
||||||
translate([20,8,-0.05]) cylinder(r=base_screw_diameter/2,h=length+2,$fn=60);
|
translate([20,8,-0.05]) cylinder(r=basediam/2,h=length+2,$fn=60);
|
||||||
translate([-20,8,-0.05]) cylinder(r=base_screw_diameter/2,h=length+2,$fn=60);
|
translate([-20,8,-0.05]) cylinder(r=basediam/2,h=length+2,$fn=60);
|
||||||
|
if (top_part){
|
||||||
translate([0,38,0]) rotate([0,0,180]) {
|
translate([0,38,0]) rotate([0,0,0]) {
|
||||||
|
translate([0,0,-0.05]) cylinder(r=spindiam/2,h=length+2,$fn=60);
|
||||||
translate([0,0,-0.05]) cylinder(r=spindle_motor_diam/2,h=length+2,$fn=60);
|
translate([0,-3,-0.01]) cube([90,3,length+2]);
|
||||||
|
translate ([spindiam/2+15,15,length/2]) rotate([90,0,0]) cylinder(r=2,h=30);
|
||||||
translate([0,0,-0.01]) cube([90,3,length+2]);
|
translate ([spindiam/2+15,-10.5,length/2]) rotate([90,0,0]) cylinder(r=3.5,h=4,$fn=6);
|
||||||
|
}
|
||||||
translate ([36,20,length/2]) rotate([90,0,0]) cylinder(r=2,h=30);
|
}
|
||||||
translate ([36,14,length/2]) rotate([90,0,0]) cylinder(r=3.5,h=4,$fn=6);
|
else
|
||||||
|
{
|
||||||
}
|
translate([0,38,0]) rotate([0,0,180]) {
|
||||||
|
translate([0,0,-0.05]) cylinder(r=spindiam/2,h=length+2,$fn=60);
|
||||||
|
translate([0,0,-0.01]) cube([90,3,length+2]);
|
||||||
|
translate ([spindiam/2+15,20,length/2]) rotate([90,0,0]) cylinder(r=2,h=30);
|
||||||
|
translate ([spindiam/2+15,15,length/2]) rotate([90,0,0]) cylinder(r=3.5,h=4,$fn=6);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -161,28 +174,35 @@ module Z_solid_body(top_part=true) {
|
||||||
cylinder(r=3+LM8UU_dia/2,h=wall_thickness,$fn=50);
|
cylinder(r=3+LM8UU_dia/2,h=wall_thickness,$fn=50);
|
||||||
}
|
}
|
||||||
|
|
||||||
// For the screw of the spindle holder
|
// For the claw of the spindle holder
|
||||||
|
if(top_part){
|
||||||
translate([wall_height/2,wall_width-4,0])
|
translate([wall_height/2,wall_width-4,0])
|
||||||
translate([0,38,0]) {
|
translate([0,38,0]) {
|
||||||
rotate([0,0,180]) {
|
rotate([0,0,0]) {
|
||||||
translate([28,-7,0]) cube([15,20,wall_thickness]);
|
translate([spindle_motor_diam/2,-12.5,0]) cube([25,20,wall_thickness]);
|
||||||
|
|
||||||
// Write text in the front
|
// Write text in the front
|
||||||
color([0.5,0.5,0.5])
|
color([0.5,0.5,0.5])
|
||||||
if(top_part)
|
rotate([0,0,180]) scale([-1,1,-textHscale])
|
||||||
scale([-1,1,-textHscale])
|
|
||||||
writecylinder("CYCLONE",[0,0,-wall_thickness/(2*textHscale)],spindle_motor_diam/2+spindle_holder_thickness,0,font="orbitron.dxf",space=1.1,h=wall_thickness,t=textThickness,center=true,ccw=true);
|
writecylinder("CYCLONE",[0,0,-wall_thickness/(2*textHscale)],spindle_motor_diam/2+spindle_holder_thickness,0,font="orbitron.dxf",space=1.1,h=wall_thickness,t=textThickness,center=true,ccw=true);
|
||||||
else
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
translate([wall_height/2,wall_width-4,0])
|
||||||
|
translate([0,38,0]) {
|
||||||
|
|
||||||
|
rotate([0,0,180]) {
|
||||||
|
translate([spindle_motor_diam/2,-7,0]) cube([25,20,wall_thickness]);
|
||||||
|
color([0.2,0.2,0.5])
|
||||||
scale([1,1,textHscale])
|
scale([1,1,textHscale])
|
||||||
writecylinder("PCB Factory",[0,0,wall_thickness/(2*textHscale)+1],spindle_motor_diam/2+spindle_holder_thickness,0,font="orbitron.dxf",space=1.1,h=wall_thickness-2,t=textThickness,center=true,ccw=true);
|
writecylinder("PCB Factory",[0,0,wall_thickness/(2*textHscale)+1],spindle_motor_diam/2+spindle_holder_thickness,0,font="orbitron.dxf",space=1.1,h=wall_thickness-2,t=textThickness,center=true,ccw=true);
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
//for display only, doesn't contribute to final object
|
//for display only, doesn't contribute to final object
|
||||||
build_plate(3,200,200);
|
//build_plate(3,200,200);
|
||||||
|
|
||||||
module Z_carriage(showSpindle=false,top_part=true) {
|
module Z_carriage(showSpindle=false,top_part=true) {
|
||||||
|
|
||||||
|
@ -192,7 +212,7 @@ module Z_carriage(showSpindle=false,top_part=true) {
|
||||||
Z_solid_body(top_part);
|
Z_solid_body(top_part);
|
||||||
if(top_part) motor_stand_holes_Z();
|
if(top_part) motor_stand_holes_Z();
|
||||||
translate([wall_height/2,wall_width-4,0])
|
translate([wall_height/2,wall_width-4,0])
|
||||||
spindle_holder_holes(wall_thickness,showSpindle);
|
spindle_holder_holes(wall_thickness,spindle_motor_diam,base_screw_diameter,top_part);
|
||||||
translate([wall_height/2-Z_smooth_rods_sep/2,Z_threaded_pos,0])
|
translate([wall_height/2-Z_smooth_rods_sep/2,Z_threaded_pos,0])
|
||||||
linearBearingHolderZ(wall_thickness);
|
linearBearingHolderZ(wall_thickness);
|
||||||
translate([wall_height/2+Z_smooth_rods_sep/2,Z_threaded_pos,0])
|
translate([wall_height/2+Z_smooth_rods_sep/2,Z_threaded_pos,0])
|
||||||
|
@ -218,14 +238,14 @@ module Z_carriage(showSpindle=false,top_part=true) {
|
||||||
|
|
||||||
module Z_carriage_assembled() {
|
module Z_carriage_assembled() {
|
||||||
Z_carriage(showSpindle=true,top_part=false);
|
Z_carriage(showSpindle=true,top_part=false);
|
||||||
translate([0,0,3+23*2]) rotate([180,0,0]) Z_carriage(showSpindle=false,top_part=true);
|
translate([0,0,3+spindle_holder_distance]) rotate([180,0,0]) Z_carriage(showSpindle=false,top_part=true);
|
||||||
}
|
}
|
||||||
|
|
||||||
//Z_carriage(top_part=true);
|
//Z_carriage(top_part=true);
|
||||||
Z_carriage(top_part=false);
|
//Z_carriage(top_part=false);
|
||||||
|
|
||||||
|
|
||||||
//Z_carriage_assembled();
|
Z_carriage_assembled();
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -1,104 +1,114 @@
|
||||||
/* Derived by Carlosgs from:
|
/* Derived by Carlosgs from:
|
||||||
* http://www.thingiverse.com/thing:12789
|
* http://www.thingiverse.com/thing:12789
|
||||||
* An extruder gear set for the TechZone Huxley,
|
* An extruder gear set for the TechZone Huxley,
|
||||||
* featuring Herringbone teeth.
|
* featuring Herringbone teeth.
|
||||||
* You will have to recalibrate your E_STEPS_PER_MM in
|
* You will have to recalibrate your E_STEPS_PER_MM in
|
||||||
* your firmware (ratio changing from original techzone
|
* your firmware (ratio changing from original techzone
|
||||||
* lasercut gears).
|
* lasercut gears).
|
||||||
* This use 2 modules from the MCAD library that you can
|
* This use 2 modules from the MCAD library that you can
|
||||||
* get from https://github.com/elmom/MCAD.
|
* get from https://github.com/elmom/MCAD.
|
||||||
*
|
*
|
||||||
* Part - the motor gear mount hub with set screw hole -
|
* Part - the motor gear mount hub with set screw hole -
|
||||||
* derived from http://www.thingiverse.com/thing:3104
|
* derived from http://www.thingiverse.com/thing:3104
|
||||||
* (thanks GilesBathgate) which is under GPL CC license.
|
* (thanks GilesBathgate) which is under GPL CC license.
|
||||||
*
|
*
|
||||||
* Copyright (C) 2011 Guy 'DeuxVis' P.
|
* August 2013 added 2 extra setscrews to ensure centered usage.
|
||||||
*
|
* by Harry Binnema.
|
||||||
* This program is free software; you can redistribute it and/or
|
*
|
||||||
* modify it under the terms of the GNU General Public License
|
* Copyright (C) 2011 Guy 'DeuxVis' P.
|
||||||
* as published by the Free Software Foundation; either version 2
|
*
|
||||||
* of the License, or (at your option) any later version.
|
* This program is free software; you can redistribute it and/or
|
||||||
*
|
* modify it under the terms of the GNU General Public License
|
||||||
* This program is distributed in the hope that it will be useful,
|
* as published by the Free Software Foundation; either version 2
|
||||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
* of the License, or (at your option) any later version.
|
||||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
*
|
||||||
* GNU General Public License for more details.
|
* This program is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
* You should have received a copy of the GNU General Public License
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
* along with this program; if not, write to the Free Software
|
* GNU General Public License for more details.
|
||||||
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
|
||||||
* --
|
* You should have received a copy of the GNU General Public License
|
||||||
* DeuxVis - device@ymail.com */
|
* along with this program; if not, write to the Free Software
|
||||||
|
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
||||||
include <MCAD/teardrop.scad>
|
* --
|
||||||
include <MCAD/involute_gears.scad>
|
* DeuxVis - device@ymail.com */
|
||||||
|
|
||||||
motor_shaft_diameter=5.4;
|
include <MCAD/teardrop.scad>
|
||||||
|
include <MCAD/involute_gears.scad>
|
||||||
nholes = 7;
|
|
||||||
|
motor_shaft_diameter=5.4;
|
||||||
/* Herringbone gear module, adapted from MCAD/involute_gears */
|
pos=15.4; //position hole for grubnut
|
||||||
module herringbone_gear( teeth=12, circles=0, shaft=5 ) {
|
nholes = 7;
|
||||||
twist=200;
|
shaft_diam=10;
|
||||||
height=10;
|
shaft_height=7;
|
||||||
pressure_angle=30;
|
|
||||||
|
/* Herringbone gear module, adapted from MCAD/involute_gears */
|
||||||
gear(
|
module herringbone_gear( teeth=12, circles=0, shaft=5 ) {
|
||||||
number_of_teeth=teeth,
|
twist=200;
|
||||||
circular_pitch=320,
|
height=10;
|
||||||
pressure_angle=pressure_angle,
|
pressure_angle=30;
|
||||||
clearance = 0.2,
|
|
||||||
gear_thickness = height/2,
|
gear(
|
||||||
rim_thickness = height/2,
|
number_of_teeth=teeth,
|
||||||
rim_width = 1,
|
circular_pitch=320,
|
||||||
hub_thickness = height/2,
|
pressure_angle=pressure_angle,
|
||||||
hub_diameter=1,
|
clearance = 0.2,
|
||||||
bore_diameter=shaft,
|
gear_thickness = height/2,
|
||||||
circles=circles,
|
rim_thickness = height/2,
|
||||||
twist=twist/teeth
|
rim_width = 1,
|
||||||
);
|
hub_thickness = height/2,
|
||||||
|
hub_diameter=1,
|
||||||
mirror( [0,0,1] )
|
bore_diameter=shaft,
|
||||||
gear(
|
circles=circles,
|
||||||
number_of_teeth=teeth,
|
twist=twist/teeth
|
||||||
circular_pitch=320,
|
);
|
||||||
pressure_angle=pressure_angle,
|
|
||||||
clearance = 0.2,
|
mirror( [0,0,1] )
|
||||||
gear_thickness = height/2,
|
gear(
|
||||||
rim_thickness = height/2,
|
number_of_teeth=teeth,
|
||||||
rim_width = 1,
|
circular_pitch=320,
|
||||||
hub_thickness = height/2,
|
pressure_angle=pressure_angle,
|
||||||
hub_diameter=1,
|
clearance = 0.2,
|
||||||
bore_diameter=shaft,
|
gear_thickness = height/2,
|
||||||
circles=circles,
|
rim_thickness = height/2,
|
||||||
twist=twist/teeth
|
rim_width = 1,
|
||||||
);
|
hub_thickness = height/2,
|
||||||
}
|
hub_diameter=1,
|
||||||
|
bore_diameter=shaft,
|
||||||
// Motor gear
|
circles=circles,
|
||||||
rotate([180,0,0]) union() difference() {
|
twist=twist/teeth
|
||||||
union() {
|
);
|
||||||
|
}
|
||||||
//gear
|
|
||||||
herringbone_gear( teeth=8 );
|
// Motor gear
|
||||||
|
rotate([180,0,0]) union() difference() {
|
||||||
translate( [0, 0, 12] ) mirror( [0, 0, 1] ) difference() {
|
union() {
|
||||||
//shaft
|
|
||||||
cylinder( r=9, h=7, $fn=40 );
|
//gear
|
||||||
|
herringbone_gear( teeth=8 );
|
||||||
//captive nut and grub holes
|
|
||||||
translate( [0, 20, 3.5] ) rotate( [90, 0, 0] ) union() {
|
translate( [0, 0, 12] ) mirror( [0, 0, 1] ) difference() {
|
||||||
//enterance
|
//shaft
|
||||||
translate( [0, -3, 14.5] ) cube( [6, 6, 2.6], center=true );
|
cylinder( r=shaft_diam, h=shaft_height, $fn=40 );
|
||||||
//nut
|
|
||||||
translate( [0, 0, 13.3] ) rotate( [0, 0, 30] )
|
//captive nut and grub holes
|
||||||
cylinder( r=6/2+0.5, h=2.6, $fn=6 );
|
for (i=[0:2]){ //3 symmetric grubscrews
|
||||||
//grub hole
|
|
||||||
translate( [0, 0, 9] ) cylinder( r=1.5, h=10, $fn=20 );
|
rotate([0,0,i*120]){
|
||||||
}
|
translate( [0, 20, 3.5] ) rotate( [90, 0, 0] ) union() {
|
||||||
}
|
//entrance for nut
|
||||||
}
|
translate( [0, -4.4, pos] ) cube( [5.9, 5.8, 2.45], center=true );
|
||||||
|
//nut hole
|
||||||
//shaft hole
|
translate( [0, 0, pos-1.2] ) rotate( [0, 0, 30] )
|
||||||
translate( [0, 0, -6] ) cylinder( r=motor_shaft_diameter/2, h=20, $fn=30 );
|
cylinder( r=6/2+0.2, h=2.6, $fn=6 );
|
||||||
}
|
//grub screw hole
|
||||||
|
translate( [0, 0, 9] ) cylinder( r=1.5, h=10, $fn=20 );
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
//shaft hole
|
||||||
|
translate( [0, 0, -6] ) cylinder( r=motor_shaft_diameter/2, h=20, $fn=30 );
|
||||||
|
}
|
||||||
|
|
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
Binary file not shown.
|
@ -1,113 +1,119 @@
|
||||||
/* Derived by Carlosgs from:
|
/* Derived by Carlosgs from:
|
||||||
* http://www.thingiverse.com/thing:12789
|
* http://www.thingiverse.com/thing:12789
|
||||||
* An extruder gear set for the TechZone Huxley,
|
* An extruder gear set for the TechZone Huxley,
|
||||||
* featuring Herringbone teeth.
|
* featuring Herringbone teeth.
|
||||||
* You will have to recalibrate your E_STEPS_PER_MM in
|
* You will have to recalibrate your E_STEPS_PER_MM in
|
||||||
* your firmware (ratio changing from original techzone
|
* your firmware (ratio changing from original techzone
|
||||||
* lasercut gears).
|
* lasercut gears).
|
||||||
* This use 2 modules from the MCAD library that you can
|
* This use 2 modules from the MCAD library that you can
|
||||||
* get from https://github.com/elmom/MCAD.
|
* get from https://github.com/elmom/MCAD.
|
||||||
*
|
*
|
||||||
* Part - the motor gear mount hub with set screw hole -
|
* Part - the motor gear mount hub with set screw hole -
|
||||||
* derived from http://www.thingiverse.com/thing:3104
|
* derived from http://www.thingiverse.com/thing:3104
|
||||||
* (thanks GilesBathgate) which is under GPL CC license.
|
* (thanks GilesBathgate) which is under GPL CC license.
|
||||||
*
|
*
|
||||||
* Copyright (C) 2011 Guy 'DeuxVis' P.
|
* Copyright (C) 2011 Guy 'DeuxVis' P.
|
||||||
*
|
*
|
||||||
* This program is free software; you can redistribute it and/or
|
* August 2013 added 2 extra setscrews to ensure centered usage.
|
||||||
* modify it under the terms of the GNU General Public License
|
* by Harry Binnema.
|
||||||
* as published by the Free Software Foundation; either version 2
|
*
|
||||||
* of the License, or (at your option) any later version.
|
* This program is free software; you can redistribute it and/or
|
||||||
*
|
* modify it under the terms of the GNU General Public License
|
||||||
* This program is distributed in the hope that it will be useful,
|
* as published by the Free Software Foundation; either version 2
|
||||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
* of the License, or (at your option) any later version.
|
||||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
*
|
||||||
* GNU General Public License for more details.
|
* This program is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
* You should have received a copy of the GNU General Public License
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
* along with this program; if not, write to the Free Software
|
* GNU General Public License for more details.
|
||||||
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
|
||||||
* --
|
* You should have received a copy of the GNU General Public License
|
||||||
* DeuxVis - device@ymail.com */
|
* along with this program; if not, write to the Free Software
|
||||||
|
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
||||||
include <MCAD/teardrop.scad>
|
* --
|
||||||
include <MCAD/involute_gears.scad>
|
* DeuxVis - device@ymail.com */
|
||||||
|
|
||||||
motor_shaft_diameter=5.4;
|
include <MCAD/teardrop.scad>
|
||||||
BigGear_N_Teeth = 21; // 24
|
include <MCAD/involute_gears.scad>
|
||||||
|
|
||||||
nholes = 9; // 7
|
motor_shaft_diameter=5.4;
|
||||||
holes_diam = 6;
|
BigGear_N_Teeth = 21; // 24
|
||||||
hole_distance_from_center = 13.5-4.5+holes_diam/2;
|
|
||||||
|
nholes = 9; // 7
|
||||||
/* Herringbone gear module, adapted from MCAD/involute_gears */
|
holes_diam = 6;
|
||||||
module herringbone_gear( teeth=12, circles=0, shaft=5 ) {
|
hole_distance_from_center = 13.5-4.5+holes_diam/2;
|
||||||
twist=200;
|
|
||||||
height=10;
|
/* Herringbone gear module, adapted from MCAD/involute_gears */
|
||||||
pressure_angle=30;
|
module herringbone_gear( teeth=12, circles=0, shaft=5 ) {
|
||||||
|
twist=200;
|
||||||
gear(
|
height=10;
|
||||||
number_of_teeth=teeth,
|
pressure_angle=30;
|
||||||
circular_pitch=320,
|
|
||||||
pressure_angle=pressure_angle,
|
gear(
|
||||||
clearance = 0.2,
|
number_of_teeth=teeth,
|
||||||
gear_thickness = height/2,
|
circular_pitch=320,
|
||||||
rim_thickness = height/2,
|
pressure_angle=pressure_angle,
|
||||||
rim_width = 1,
|
clearance = 0.2,
|
||||||
hub_thickness = height/2,
|
gear_thickness = height/2,
|
||||||
hub_diameter=1,
|
rim_thickness = height/2,
|
||||||
bore_diameter=shaft,
|
rim_width = 1,
|
||||||
circles=circles,
|
hub_thickness = height/2,
|
||||||
twist=twist/teeth
|
hub_diameter=1,
|
||||||
);
|
bore_diameter=shaft,
|
||||||
|
circles=circles,
|
||||||
mirror( [0,0,1] )
|
twist=twist/teeth
|
||||||
gear(
|
);
|
||||||
number_of_teeth=teeth,
|
|
||||||
circular_pitch=320,
|
mirror( [0,0,1] )
|
||||||
pressure_angle=pressure_angle,
|
gear(
|
||||||
clearance = 0.2,
|
number_of_teeth=teeth,
|
||||||
gear_thickness = height/2,
|
circular_pitch=320,
|
||||||
rim_thickness = height/2,
|
pressure_angle=pressure_angle,
|
||||||
rim_width = 1,
|
clearance = 0.2,
|
||||||
hub_thickness = height/2,
|
gear_thickness = height/2,
|
||||||
hub_diameter=1,
|
rim_thickness = height/2,
|
||||||
bore_diameter=shaft,
|
rim_width = 1,
|
||||||
circles=circles,
|
hub_thickness = height/2,
|
||||||
twist=twist/teeth
|
hub_diameter=1,
|
||||||
);
|
bore_diameter=shaft,
|
||||||
}
|
circles=circles,
|
||||||
|
twist=twist/teeth
|
||||||
// Motor gear
|
);
|
||||||
union() difference() {
|
}
|
||||||
union() {
|
|
||||||
|
// Motor gear
|
||||||
//gear
|
union() difference() {
|
||||||
herringbone_gear( teeth=BigGear_N_Teeth );
|
union() {
|
||||||
|
|
||||||
translate( [0, 0, 12] ) mirror( [0, 0, 1] ) difference() {
|
//gear
|
||||||
//shaft
|
herringbone_gear( teeth=BigGear_N_Teeth );
|
||||||
cylinder( r=9, h=15, $fn=40 );
|
|
||||||
|
translate( [0, 0, 12] ) mirror( [0, 0, 1] ) difference() {
|
||||||
//captive nut and grub holes
|
//shaft
|
||||||
translate( [0, 20, 3.5] ) rotate( [90, 0, 0] ) union() {
|
cylinder( r=9, h=15, $fn=40 );
|
||||||
//enterance
|
//adapted to include 3 captive nuts for symmetrical positioning
|
||||||
translate( [0, -3, 14.5] ) cube( [6, 6, 2.6], center=true );
|
//adpted bij HJ Binnema on August 26 2013.
|
||||||
//nut
|
for (i= [0:2]){
|
||||||
translate( [0, 0, 13.3] ) rotate( [0, 0, 30] )
|
rotate([0,0,i*120]){
|
||||||
cylinder( r=6/2+0.5, h=2.6, $fn=6 );
|
//captive nut and grub holes
|
||||||
//grub hole
|
translate( [0, 20, 3.5] ) rotate( [90, 0, 0] ) union() {
|
||||||
translate( [0, 0, 9] ) cylinder( r=3.2/2, h=10, $fn=6 );
|
//enterance
|
||||||
}
|
translate( [0, -3, 14.5] ) cube( [6, 6, 2.6], center=true );
|
||||||
}
|
//nut
|
||||||
}
|
translate( [0, 0, 13.3] ) rotate( [0, 0, 30] )
|
||||||
|
cylinder( r=6/2+0.5, h=2.6, $fn=6 );
|
||||||
//holes to save plastic
|
//grub hole
|
||||||
for(i=[0:nholes-1])
|
translate( [0, 0, 9] ) cylinder( r=3.2/2, h=10, $fn=6 );
|
||||||
rotate( [0, 0, i*360/(nholes)+45], $fn=20 )
|
}}}
|
||||||
translate( [hole_distance_from_center, 0] )
|
}
|
||||||
cylinder( r=holes_diam/2, h=11, center=true, $fn=30 );
|
}
|
||||||
|
|
||||||
//shaft hole
|
//holes to save plastic
|
||||||
translate( [0, 0, -6] ) cylinder( r=motor_shaft_diameter/2, h=20, $fn=30 );
|
for(i=[0:nholes-1])
|
||||||
}
|
rotate( [0, 0, i*360/(nholes)+45], $fn=20 )
|
||||||
|
translate( [hole_distance_from_center, 0] )
|
||||||
|
cylinder( r=holes_diam/2, h=11, center=true, $fn=30 );
|
||||||
|
|
||||||
|
//shaft hole
|
||||||
|
translate( [0, 0, -6] ) cylinder( r=motor_shaft_diameter/2, h=20, $fn=30 );
|
||||||
|
}
|
||||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -1,13 +1,20 @@
|
||||||
// Cyclone PCB Factory: a 3D printable CNC machine for PCB manufacture
|
// Cyclone PCB Factory: a 3D printable CNC machine for PCB manufacture
|
||||||
// Created by Carlosgs (http://carlosgs.es)
|
// Created by Carlosgs (http://carlosgs.es)
|
||||||
// License: Attribution - Share Alike - Creative Commons (http://creativecommons.org/licenses/by-sa/3.0/)
|
// License: Attribution - Share Alike - Creative Commons (http://creativecommons.org/licenses/by-sa/3.0/)
|
||||||
|
/*
|
||||||
|
* August 2013 changes to design top-part mounting screw at same side as bottom-part.
|
||||||
|
* also started introduced 2nd spindle diameter for a-symmetrical spindles. this is not working yet.
|
||||||
|
* by Harry Binnema.
|
||||||
|
*/
|
||||||
|
|
||||||
use <../libs/obiscad/bcube.scad>
|
use <../libs/obiscad/bcube.scad>
|
||||||
use <../libs/build_plate.scad>
|
use <../libs/build_plate.scad>
|
||||||
use <../libs/Write/Write.scad>
|
use <../libs/Write/Write.scad>
|
||||||
|
|
||||||
|
spindle_motor_diam_top = 26*2;
|
||||||
spindle_motor_diam = 26*2;
|
spindle_motor_diam = 26*2;
|
||||||
spindle_holder_thickness = 7;
|
spindle_holder_thickness = 8;
|
||||||
|
spindle_holder_distance = 46;
|
||||||
|
|
||||||
bottom_thickness = 4;
|
bottom_thickness = 4;
|
||||||
base_width = 20;
|
base_width = 20;
|
||||||
|
@ -29,7 +36,7 @@ M8_rod_diameter = 8.2;
|
||||||
|
|
||||||
axis_distance = 21;
|
axis_distance = 21;
|
||||||
|
|
||||||
wall_thickness = 8;
|
wall_thickness = 9;
|
||||||
wall_height = motor_width;
|
wall_height = motor_width;
|
||||||
wall_width = 54;
|
wall_width = 54;
|
||||||
|
|
||||||
|
@ -58,22 +65,28 @@ module dummySpindle() {
|
||||||
}
|
}
|
||||||
|
|
||||||
// Derived from Spindle mount for ShapeOko by Misan (http://www.thingiverse.com/thing:26740)
|
// Derived from Spindle mount for ShapeOko by Misan (http://www.thingiverse.com/thing:26740)
|
||||||
module spindle_holder_holes(length=50,showSpindle=true) {
|
module spindle_holder_holes(length,spindiam, basediam,top_part) {
|
||||||
$fn=6;
|
$fn=6;
|
||||||
|
|
||||||
translate([20,8,-0.05]) cylinder(r=base_screw_diameter/2,h=length+2,$fn=60);
|
translate([20,8,-0.05]) cylinder(r=basediam/2,h=length+2,$fn=60);
|
||||||
translate([-20,8,-0.05]) cylinder(r=base_screw_diameter/2,h=length+2,$fn=60);
|
translate([-20,8,-0.05]) cylinder(r=basediam/2,h=length+2,$fn=60);
|
||||||
|
if (top_part){
|
||||||
translate([0,38,0]) rotate([0,0,180]) {
|
translate([0,38,0]) rotate([0,0,0]) {
|
||||||
|
translate([0,0,-0.05]) cylinder(r=spindiam/2,h=length+2,$fn=60);
|
||||||
translate([0,0,-0.05]) cylinder(r=spindle_motor_diam/2,h=length+2,$fn=60);
|
translate([0,-3,-0.01]) cube([90,3,length+2]);
|
||||||
|
translate ([spindiam/2+15,15,length/2]) rotate([90,0,0]) cylinder(r=2,h=30);
|
||||||
translate([0,0,-0.01]) cube([90,3,length+2]);
|
translate ([spindiam/2+15,-10.5,length/2]) rotate([90,0,0]) cylinder(r=3.5,h=4,$fn=6);
|
||||||
|
}
|
||||||
translate ([36,20,length/2]) rotate([90,0,0]) cylinder(r=2,h=30);
|
}
|
||||||
translate ([36,14,length/2]) rotate([90,0,0]) cylinder(r=3.5,h=4,$fn=6);
|
else
|
||||||
|
{
|
||||||
}
|
translate([0,38,0]) rotate([0,0,180]) {
|
||||||
|
translate([0,0,-0.05]) cylinder(r=spindiam/2,h=length+2,$fn=60);
|
||||||
|
translate([0,0,-0.01]) cube([90,3,length+2]);
|
||||||
|
translate ([spindiam/2+15,20,length/2]) rotate([90,0,0]) cylinder(r=2,h=30);
|
||||||
|
translate ([spindiam/2+15,15,length/2]) rotate([90,0,0]) cylinder(r=3.5,h=4,$fn=6);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -161,28 +174,35 @@ module Z_solid_body(top_part=true) {
|
||||||
cylinder(r=3+LM8UU_dia/2,h=wall_thickness,$fn=50);
|
cylinder(r=3+LM8UU_dia/2,h=wall_thickness,$fn=50);
|
||||||
}
|
}
|
||||||
|
|
||||||
// For the screw of the spindle holder
|
// For the claw of the spindle holder
|
||||||
|
if(top_part){
|
||||||
translate([wall_height/2,wall_width-4,0])
|
translate([wall_height/2,wall_width-4,0])
|
||||||
translate([0,38,0]) {
|
translate([0,38,0]) {
|
||||||
rotate([0,0,180]) {
|
rotate([0,0,0]) {
|
||||||
translate([28,-7,0]) cube([15,20,wall_thickness]);
|
translate([spindle_motor_diam/2,-12.5,0]) cube([25,20,wall_thickness]);
|
||||||
|
|
||||||
// Write text in the front
|
// Write text in the front
|
||||||
color([0.5,0.5,0.5])
|
color([0.5,0.5,0.5])
|
||||||
if(top_part)
|
rotate([0,0,180]) scale([-1,1,-textHscale])
|
||||||
scale([-1,1,-textHscale])
|
|
||||||
writecylinder("CYCLONE",[0,0,-wall_thickness/(2*textHscale)],spindle_motor_diam/2+spindle_holder_thickness,0,font="orbitron.dxf",space=1.1,h=wall_thickness,t=textThickness,center=true,ccw=true);
|
writecylinder("CYCLONE",[0,0,-wall_thickness/(2*textHscale)],spindle_motor_diam/2+spindle_holder_thickness,0,font="orbitron.dxf",space=1.1,h=wall_thickness,t=textThickness,center=true,ccw=true);
|
||||||
else
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
translate([wall_height/2,wall_width-4,0])
|
||||||
|
translate([0,38,0]) {
|
||||||
|
|
||||||
|
rotate([0,0,180]) {
|
||||||
|
translate([spindle_motor_diam/2,-7,0]) cube([25,20,wall_thickness]);
|
||||||
|
color([0.2,0.2,0.5])
|
||||||
scale([1,1,textHscale])
|
scale([1,1,textHscale])
|
||||||
writecylinder("PCB Factory",[0,0,wall_thickness/(2*textHscale)+1],spindle_motor_diam/2+spindle_holder_thickness,0,font="orbitron.dxf",space=1.1,h=wall_thickness-2,t=textThickness,center=true,ccw=true);
|
writecylinder("PCB Factory",[0,0,wall_thickness/(2*textHscale)+1],spindle_motor_diam/2+spindle_holder_thickness,0,font="orbitron.dxf",space=1.1,h=wall_thickness-2,t=textThickness,center=true,ccw=true);
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
//for display only, doesn't contribute to final object
|
//for display only, doesn't contribute to final object
|
||||||
build_plate(3,200,200);
|
//build_plate(3,200,200);
|
||||||
|
|
||||||
module Z_carriage(showSpindle=false,top_part=true) {
|
module Z_carriage(showSpindle=false,top_part=true) {
|
||||||
|
|
||||||
|
@ -192,7 +212,7 @@ module Z_carriage(showSpindle=false,top_part=true) {
|
||||||
Z_solid_body(top_part);
|
Z_solid_body(top_part);
|
||||||
if(top_part) motor_stand_holes_Z();
|
if(top_part) motor_stand_holes_Z();
|
||||||
translate([wall_height/2,wall_width-4,0])
|
translate([wall_height/2,wall_width-4,0])
|
||||||
spindle_holder_holes(wall_thickness,showSpindle);
|
spindle_holder_holes(wall_thickness,spindle_motor_diam,base_screw_diameter,top_part);
|
||||||
translate([wall_height/2-Z_smooth_rods_sep/2,Z_threaded_pos,0])
|
translate([wall_height/2-Z_smooth_rods_sep/2,Z_threaded_pos,0])
|
||||||
linearBearingHolderZ(wall_thickness);
|
linearBearingHolderZ(wall_thickness);
|
||||||
translate([wall_height/2+Z_smooth_rods_sep/2,Z_threaded_pos,0])
|
translate([wall_height/2+Z_smooth_rods_sep/2,Z_threaded_pos,0])
|
||||||
|
@ -218,14 +238,14 @@ module Z_carriage(showSpindle=false,top_part=true) {
|
||||||
|
|
||||||
module Z_carriage_assembled() {
|
module Z_carriage_assembled() {
|
||||||
Z_carriage(showSpindle=true,top_part=false);
|
Z_carriage(showSpindle=true,top_part=false);
|
||||||
translate([0,0,3+23*2]) rotate([180,0,0]) Z_carriage(showSpindle=false,top_part=true);
|
translate([0,0,3+spindle_holder_distance]) rotate([180,0,0]) Z_carriage(showSpindle=false,top_part=true);
|
||||||
}
|
}
|
||||||
|
|
||||||
//Z_carriage(top_part=true);
|
//Z_carriage(top_part=true);
|
||||||
Z_carriage(top_part=false);
|
//Z_carriage(top_part=false);
|
||||||
|
|
||||||
|
|
||||||
//Z_carriage_assembled();
|
Z_carriage_assembled();
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -1,143 +0,0 @@
|
||||||
// Cyclone PCB Factory: a 3D printable CNC machine for PCB manufacture
|
|
||||||
// Created by Carlosgs (http://carlosgs.es)
|
|
||||||
// License: Attribution - Share Alike - Creative Commons (http://creativecommons.org/licenses/by-sa/3.0/)
|
|
||||||
|
|
||||||
use <../libs/obiscad/bcube.scad>
|
|
||||||
use <../libs/build_plate.scad>
|
|
||||||
use <../libs/Write/Write.scad>
|
|
||||||
|
|
||||||
include <./lm8uu_holder.scad>
|
|
||||||
|
|
||||||
bottom_thickness = 4;
|
|
||||||
base_width = 20;
|
|
||||||
base_length = 25;
|
|
||||||
base_screw_diameter = 5;
|
|
||||||
|
|
||||||
motor_width = 43;
|
|
||||||
motor_length = 49; // not used
|
|
||||||
motor_screw_distance = 31.3;
|
|
||||||
motor_center_diameter = 23;
|
|
||||||
|
|
||||||
motor_screw_diameter = 3.7;
|
|
||||||
motor_screw_head_diameter = 8;
|
|
||||||
|
|
||||||
bearing_diameter = 22.4;
|
|
||||||
M8_rod_diameter = 8.2;
|
|
||||||
|
|
||||||
axis_distance = 21;
|
|
||||||
|
|
||||||
wall_thickness = 5;
|
|
||||||
wall_height = motor_width;
|
|
||||||
wall_width = 54;
|
|
||||||
|
|
||||||
idler_width = 25;
|
|
||||||
|
|
||||||
lbearing_holder_length = 23*2;
|
|
||||||
|
|
||||||
Z_threaded_pos = motor_width/2+axis_distance;
|
|
||||||
|
|
||||||
Z_smooth_rods_sep = 55;
|
|
||||||
|
|
||||||
textHscale = 0.8;
|
|
||||||
textThickness = 1.5;
|
|
||||||
|
|
||||||
// Derived from Spindle mount for ShapeOko by Misan (http://www.thingiverse.com/thing:26740)
|
|
||||||
module spindle_holder(length=50,showSpindle=true) {
|
|
||||||
$fn=6;
|
|
||||||
translate([0,38,0]) rotate([0,0,180]) {
|
|
||||||
|
|
||||||
if(showSpindle) scale([1,1,-1]) translate([0,0,-length]) {
|
|
||||||
translate([0,0,85]) color([0.95,0.95,0.95]) cylinder(r=26,h=30,$fn=60);
|
|
||||||
translate([0,0,80]) color([0.95,0.95,0.95]) cylinder(r=10/2,h=5,$fn=60);
|
|
||||||
translate([0,0,-10]) color([0.6,0.6,0.6]) cylinder(r=26,h=90,$fn=60);
|
|
||||||
translate([0,0,-40]) color([0.9,0.9,0.9]) cylinder(r=15/2,h=40,$fn=60);
|
|
||||||
translate([0,0,-50]) color([0.4,0.4,0.4]) cylinder(r=20/2,h=10,$fn=60);
|
|
||||||
translate([0,0,-50-20]) color([0.9,0.9,0.9]) cylinder(r1=1/2,r2=3/2,h=20,$fn=60);
|
|
||||||
}
|
|
||||||
|
|
||||||
difference() {
|
|
||||||
union() {
|
|
||||||
cylinder(r=30,h=length,$fn=60);
|
|
||||||
|
|
||||||
// Write text in the front
|
|
||||||
color([0.5,0.5,0.5]) scale([-1,1,-textHscale]) writecylinder("CYCLONE",[0,0,-length/(3*textHscale)],30,0,font="orbitron.dxf",space=1.1,h=12,t=textThickness,center=true,ccw=true);
|
|
||||||
translate ([-30,0,0]) cube([60,38,length]);
|
|
||||||
translate([28,-7,0]) cube([20,20,length]);
|
|
||||||
|
|
||||||
color([0.5,0.5,0.5]) scale([-1,1,-textHscale]) writecylinder("PCB Factory",[0,0,-length/(1.5*textHscale)],30,0,font="orbitron.dxf",space=1.1,h=14/2,t=textThickness,center=true,ccw=true);
|
|
||||||
translate ([-30,0,0]) cube([60,38,length]);
|
|
||||||
translate([28,-7,0]) cube([20,20,length]);
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
translate([0,0,-0.05]) cylinder(r=26,h=length+2,$fn=60);
|
|
||||||
|
|
||||||
translate([0,0,-0.01]) cube([90,3,length+2]);
|
|
||||||
|
|
||||||
|
|
||||||
translate ([40,20,3*length/4]) rotate([90,0,0]) cylinder(r=2,h=30);
|
|
||||||
translate ([40,20,length/4]) rotate([90,0,0]) cylinder(r=2,h=30);
|
|
||||||
|
|
||||||
translate ([40,14,3*length/4]) rotate([90,0,0]) cylinder(r=3.5,h=4,$fn=6);
|
|
||||||
translate ([40,14,length/4]) rotate([90,0,0]) cylinder(r=3.5,h=4,$fn=6);
|
|
||||||
|
|
||||||
difference() {
|
|
||||||
translate ([-30+15,0,-0.1]) cube([30,38.1,30]);
|
|
||||||
cylinder(r=26+1,h=length,$fn=60);
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
module motor_stand_no_base_Z(with_motor=true) {
|
|
||||||
difference() {
|
|
||||||
translate([wall_height/2,wall_width/2,wall_thickness/2])
|
|
||||||
bcube([wall_height,wall_width,wall_thickness],cr=4,cres=10);
|
|
||||||
|
|
||||||
// Position relative to motor shaft
|
|
||||||
translate([motor_width/2,motor_width/2,wall_thickness/2]) {
|
|
||||||
if(with_motor) {
|
|
||||||
// Hole for the motor shaft
|
|
||||||
translate([0,-wall_width/2,0])
|
|
||||||
cube([20,wall_width,10*wall_thickness],cr=4,cres=10,center=true);
|
|
||||||
cylinder(r=motor_center_diameter/2,h=10*wall_thickness,center=true,$fn=40);
|
|
||||||
|
|
||||||
// Screws for holding the motor
|
|
||||||
for(i=[-1,1]) for(j=[-1,1])
|
|
||||||
translate([i*motor_screw_distance/2,j*motor_screw_distance/2,0]) {
|
|
||||||
cylinder(r=motor_screw_diameter/2,h=10*wall_thickness,center=true,$fn=40);
|
|
||||||
cylinder(r=motor_screw_head_diameter/2,h=10*wall_thickness,center=false,$fn=40);
|
|
||||||
}
|
|
||||||
} // End if with motor
|
|
||||||
|
|
||||||
// Bearing holes
|
|
||||||
rotate([0,0,0]) translate([0,axis_distance,0]) {
|
|
||||||
cylinder(r=(M8_rod_diameter*2)/2,h=10*wall_thickness,center=true,$fn=40);
|
|
||||||
cylinder(r=bearing_diameter/2,h=10*wall_thickness,center=false,$fn=60);
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
} // End of translate relative to motor shaft
|
|
||||||
} // End of difference
|
|
||||||
}
|
|
||||||
|
|
||||||
module motor_stand_Z(with_motor=true) {
|
|
||||||
union() {
|
|
||||||
motor_stand_no_base_Z(with_motor);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
//for display only, doesn't contribute to final object
|
|
||||||
build_plate(3,200,200);
|
|
||||||
|
|
||||||
module Z_carriage(showSpindle=false) {
|
|
||||||
rotate([0,0,-90]) translate([-wall_height/2,-Z_threaded_pos,0]) {
|
|
||||||
motor_stand_Z();
|
|
||||||
translate([wall_height/2,wall_width-4,0]) spindle_holder(lbearing_holder_length,showSpindle);
|
|
||||||
translate([wall_height/2-Z_smooth_rods_sep/2,Z_threaded_pos,lbearing_holder_length/2]) rotate([-90,0,0]) lm8uu_bearing_holder_XZ(lbearing_holder_length);
|
|
||||||
translate([wall_height/2+Z_smooth_rods_sep/2,Z_threaded_pos,lbearing_holder_length/2]) rotate([-90,0,0]) lm8uu_bearing_holder_XZ(lbearing_holder_length);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
Z_carriage(showSpindle=false);
|
|
|
@ -1,104 +1,114 @@
|
||||||
/* Derived by Carlosgs from:
|
/* Derived by Carlosgs from:
|
||||||
* http://www.thingiverse.com/thing:12789
|
* http://www.thingiverse.com/thing:12789
|
||||||
* An extruder gear set for the TechZone Huxley,
|
* An extruder gear set for the TechZone Huxley,
|
||||||
* featuring Herringbone teeth.
|
* featuring Herringbone teeth.
|
||||||
* You will have to recalibrate your E_STEPS_PER_MM in
|
* You will have to recalibrate your E_STEPS_PER_MM in
|
||||||
* your firmware (ratio changing from original techzone
|
* your firmware (ratio changing from original techzone
|
||||||
* lasercut gears).
|
* lasercut gears).
|
||||||
* This use 2 modules from the MCAD library that you can
|
* This use 2 modules from the MCAD library that you can
|
||||||
* get from https://github.com/elmom/MCAD.
|
* get from https://github.com/elmom/MCAD.
|
||||||
*
|
*
|
||||||
* Part - the motor gear mount hub with set screw hole -
|
* Part - the motor gear mount hub with set screw hole -
|
||||||
* derived from http://www.thingiverse.com/thing:3104
|
* derived from http://www.thingiverse.com/thing:3104
|
||||||
* (thanks GilesBathgate) which is under GPL CC license.
|
* (thanks GilesBathgate) which is under GPL CC license.
|
||||||
*
|
*
|
||||||
* Copyright (C) 2011 Guy 'DeuxVis' P.
|
* August 2013 added 2 extra setscrews to ensure centered usage.
|
||||||
*
|
* by Harry Binnema.
|
||||||
* This program is free software; you can redistribute it and/or
|
*
|
||||||
* modify it under the terms of the GNU General Public License
|
* Copyright (C) 2011 Guy 'DeuxVis' P.
|
||||||
* as published by the Free Software Foundation; either version 2
|
*
|
||||||
* of the License, or (at your option) any later version.
|
* This program is free software; you can redistribute it and/or
|
||||||
*
|
* modify it under the terms of the GNU General Public License
|
||||||
* This program is distributed in the hope that it will be useful,
|
* as published by the Free Software Foundation; either version 2
|
||||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
* of the License, or (at your option) any later version.
|
||||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
*
|
||||||
* GNU General Public License for more details.
|
* This program is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
* You should have received a copy of the GNU General Public License
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
* along with this program; if not, write to the Free Software
|
* GNU General Public License for more details.
|
||||||
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
|
||||||
* --
|
* You should have received a copy of the GNU General Public License
|
||||||
* DeuxVis - device@ymail.com */
|
* along with this program; if not, write to the Free Software
|
||||||
|
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
||||||
include <MCAD/teardrop.scad>
|
* --
|
||||||
include <MCAD/involute_gears.scad>
|
* DeuxVis - device@ymail.com */
|
||||||
|
|
||||||
motor_shaft_diameter=5.4;
|
include <MCAD/teardrop.scad>
|
||||||
|
include <MCAD/involute_gears.scad>
|
||||||
nholes = 7;
|
|
||||||
|
motor_shaft_diameter=5.4;
|
||||||
/* Herringbone gear module, adapted from MCAD/involute_gears */
|
pos=15.4; //position hole for grubnut
|
||||||
module herringbone_gear( teeth=12, circles=0, shaft=5 ) {
|
nholes = 7;
|
||||||
twist=200;
|
shaft_diam=10;
|
||||||
height=10;
|
shaft_height=7;
|
||||||
pressure_angle=30;
|
|
||||||
|
/* Herringbone gear module, adapted from MCAD/involute_gears */
|
||||||
gear(
|
module herringbone_gear( teeth=12, circles=0, shaft=5 ) {
|
||||||
number_of_teeth=teeth,
|
twist=200;
|
||||||
circular_pitch=320,
|
height=10;
|
||||||
pressure_angle=pressure_angle,
|
pressure_angle=30;
|
||||||
clearance = 0.2,
|
|
||||||
gear_thickness = height/2,
|
gear(
|
||||||
rim_thickness = height/2,
|
number_of_teeth=teeth,
|
||||||
rim_width = 1,
|
circular_pitch=320,
|
||||||
hub_thickness = height/2,
|
pressure_angle=pressure_angle,
|
||||||
hub_diameter=1,
|
clearance = 0.2,
|
||||||
bore_diameter=shaft,
|
gear_thickness = height/2,
|
||||||
circles=circles,
|
rim_thickness = height/2,
|
||||||
twist=twist/teeth
|
rim_width = 1,
|
||||||
);
|
hub_thickness = height/2,
|
||||||
|
hub_diameter=1,
|
||||||
mirror( [0,0,1] )
|
bore_diameter=shaft,
|
||||||
gear(
|
circles=circles,
|
||||||
number_of_teeth=teeth,
|
twist=twist/teeth
|
||||||
circular_pitch=320,
|
);
|
||||||
pressure_angle=pressure_angle,
|
|
||||||
clearance = 0.2,
|
mirror( [0,0,1] )
|
||||||
gear_thickness = height/2,
|
gear(
|
||||||
rim_thickness = height/2,
|
number_of_teeth=teeth,
|
||||||
rim_width = 1,
|
circular_pitch=320,
|
||||||
hub_thickness = height/2,
|
pressure_angle=pressure_angle,
|
||||||
hub_diameter=1,
|
clearance = 0.2,
|
||||||
bore_diameter=shaft,
|
gear_thickness = height/2,
|
||||||
circles=circles,
|
rim_thickness = height/2,
|
||||||
twist=twist/teeth
|
rim_width = 1,
|
||||||
);
|
hub_thickness = height/2,
|
||||||
}
|
hub_diameter=1,
|
||||||
|
bore_diameter=shaft,
|
||||||
// Motor gear
|
circles=circles,
|
||||||
rotate([180,0,0]) union() difference() {
|
twist=twist/teeth
|
||||||
union() {
|
);
|
||||||
|
}
|
||||||
//gear
|
|
||||||
herringbone_gear( teeth=8 );
|
// Motor gear
|
||||||
|
rotate([180,0,0]) union() difference() {
|
||||||
translate( [0, 0, 12] ) mirror( [0, 0, 1] ) difference() {
|
union() {
|
||||||
//shaft
|
|
||||||
cylinder( r=9, h=7, $fn=40 );
|
//gear
|
||||||
|
herringbone_gear( teeth=8 );
|
||||||
//captive nut and grub holes
|
|
||||||
translate( [0, 20, 3.5] ) rotate( [90, 0, 0] ) union() {
|
translate( [0, 0, 12] ) mirror( [0, 0, 1] ) difference() {
|
||||||
//enterance
|
//shaft
|
||||||
translate( [0, -3, 14.5] ) cube( [6, 6, 2.6], center=true );
|
cylinder( r=shaft_diam, h=shaft_height, $fn=40 );
|
||||||
//nut
|
|
||||||
translate( [0, 0, 13.3] ) rotate( [0, 0, 30] )
|
//captive nut and grub holes
|
||||||
cylinder( r=6/2+0.5, h=2.6, $fn=6 );
|
for (i=[0:2]){ //3 symmetric grubscrews
|
||||||
//grub hole
|
|
||||||
translate( [0, 0, 9] ) cylinder( r=1.5, h=10, $fn=20 );
|
rotate([0,0,i*120]){
|
||||||
}
|
translate( [0, 20, 3.5] ) rotate( [90, 0, 0] ) union() {
|
||||||
}
|
//entrance for nut
|
||||||
}
|
translate( [0, -4.4, pos] ) cube( [5.9, 5.8, 2.45], center=true );
|
||||||
|
//nut hole
|
||||||
//shaft hole
|
translate( [0, 0, pos-1.2] ) rotate( [0, 0, 30] )
|
||||||
translate( [0, 0, -6] ) cylinder( r=motor_shaft_diameter/2, h=20, $fn=30 );
|
cylinder( r=6/2+0.2, h=2.6, $fn=6 );
|
||||||
}
|
//grub screw hole
|
||||||
|
translate( [0, 0, 9] ) cylinder( r=1.5, h=10, $fn=20 );
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
//shaft hole
|
||||||
|
translate( [0, 0, -6] ) cylinder( r=motor_shaft_diameter/2, h=20, $fn=30 );
|
||||||
|
}
|
||||||
|
|
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
Loading…
Reference in New Issue