Merge branch 'spindle_pen' of github.com:glenchung/Cyclone-PCB-Factory into glenchung-spindle_pen

pull/20/head
Carlos Garcia Saura 2014-01-23 02:01:33 +01:00
commit 25fdf7ab1e
7 changed files with 550756 additions and 3661 deletions

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -55,7 +55,7 @@ X_PCB_BOARD_OFFSET = 12;
//Travel (152 x 101 x 25)
X_Travel = 81; //0~152
Y_Travel = 80; //0~101
Z_Travel = 15; //0~30
Z_Travel = 16; //0~27
//To display steppers, bearings, washers, nuts, bolts, micro-switches, etc.
Display_Extra_Parts = true;
@ -129,23 +129,24 @@ module Y_nut_holder() {
nut_holder_positioned();
}
module cnc_workbed() {
module cnc_workbed(template=false) {
// ---- work bed ----
translate([0,0,-workbed_thickness/2+1]) {
translate([0,0,-workbed_thickness/2+(template?2:0)]) {
translate([0,0,template?-2:0])
color([0.5,1,0.5,0.5]) { // Transparent color
%cube([workbed_X,workbed_Y,workbed_thickness],center=true);
%cube([workbed_X,workbed_Y,workbed_thickness+(template?4:0)],center=true);
difference() {
cube([workbed_X,workbed_Y,workbed_thickness],center=true);
cube([workbed_X-1,workbed_Y-1,workbed_thickness+1],center=true);
cube([workbed_X,workbed_Y,workbed_thickness+(template?4:0)],center=true);
cube([workbed_X-1,workbed_Y-1,workbed_thickness+(template?4:0)+1],center=true);
}
}
translate([X_PCB_BOARD_OFFSET/2-28-X_PCB_BOARD/2,8+Y_PCB_BOARD/2,-(workbed_thickness)/2])
rotate([180,0,0]) PCB_vise_1(with_extra_parts=Display_Extra_Parts, exploded=Exploded_Drawing);
translate([X_PCB_BOARD_OFFSET/2+28+X_PCB_BOARD/2,-8-Y_PCB_BOARD/2,-(workbed_thickness)/2])
rotate([180,0,180]) PCB_vise_1(with_extra_parts=Display_Extra_Parts, exploded=Exploded_Drawing);
if(Display_Extra_Parts) {
translate([X_PCB_BOARD_OFFSET/2-28-X_PCB_BOARD/2,8+Y_PCB_BOARD/2,-(workbed_thickness)/2])
rotate([180,0,0]) PCB_vise_1(with_extra_parts=true, exploded=Exploded_Drawing);
translate([X_PCB_BOARD_OFFSET/2+28+X_PCB_BOARD/2,-8-Y_PCB_BOARD/2,-(workbed_thickness)/2])
rotate([180,0,180]) PCB_vise_1(with_extra_parts=true, exploded=Exploded_Drawing);
// --- PCB Board ---
echo("Non-Plastic Parts, 1, Double sided PCB ", X_PCB_BOARD, " x ", Y_PCB_BOARD, " x ", Z_PCB_BOARD);
translate([X_PCB_BOARD_OFFSET/2,0,-(workbed_thickness)/2-15])
@ -177,7 +178,7 @@ module X_carriage() {
}
module Z_carriage_piece() {
translate([0,0,33+Z_Travel])
translate([0,0,35+Z_Travel])
rotate([0,0,90])
Z_carriage_assembled(z_thread_rod_length=Z_Final_Threaded_Rod_Length, with_extra_parts=Display_Extra_Parts, exploded=Exploded_Drawing);
}
@ -233,14 +234,18 @@ module cnc_base_template() {
}
}
module cnc_workbed_template() {
projection(cut=true) translate([0,0,-1]) {
cnc_workbed(); // Main structure
translate([0,-20,0])
reference(workbed_X,60);
translate([-20,0,0])
rotate([0,0,90])
reference(workbed_Y,40);
module cnc_workbed_template(top_side=false) {
offset = top_side ? (workbed_thickness+1):-1;
projection(cut=true) rotate([top_side?180:0,0,0]) translate([0,0,offset]) {
cnc_workbed(template=true); // Main structure
rotate([top_side?180:0,0,0]) {
translate([0,-20,offset])
reference(workbed_X,60);
translate([-20,0,offset])
rotate([0,0,90])
reference(workbed_Y,40);
}
}
}
@ -292,7 +297,8 @@ module cnc_assembled(Y_offset=0,X_offset=0,Z_offset=0) {
rotate([0,0,90])cnc_assembled(Y_offset=30,X_offset=-50,Z_offset=10);
//rotate([0,0,90]) cnc_base_template(); // So the generated dxf matches inkscape's default orientation
// cnc_workbed_template();
// cnc_workbed_template(top_side=true);
// cnc_workbed_template(top_side=false);
echo("Non-Plastic Parts, 1, Machine Base ", X_Wood_Base, " x ", Y_Wood_Base, " x ", Z_Wood_Base);
echo("Non-Plastic Parts, 1, Work Bed ", workbed_X, " x ",workbed_Y, " x ", workbed_thickness);

View File

@ -0,0 +1,175 @@
//By Glen Chung, 2013.
//Dual licenced under Creative Commons Attribution-Share Alike 3.0 and LGPL2 or later
include <polyScrewThread_r1.scad>
$fn=200;
radius=52/2;
height=100;
thick=3;
pen_hole_radius=15/2;
pen_radius=9.2/2;
module spindle_shell(radius, thick, height) {
hole_radius = height / 12;
difference() {
union() {
if(1) difference() {
cylinder(r=radius, h=height);
translate([0,0,thick])
cylinder(r=radius-thick, h=height+0.1);
//holes
for (angle = [0, 90, 180, 270])
rotate([0,0,angle+45])
translate([0,0,height/2])
scale([1.0,1.0,height/(radius-0)/2])
translate([radius-thick,0,0])
rotate([-90,0,0])
scale([1.5,2,1])
sphere(r=hole_radius);
}
cylinder(r=22/2,h=8);
}
translate([0,0,-2])
spindle_top_screw(pen_hole=11,height=21,with_hole=false);
for(x=[radius, -radius])
for(y=[radius, -radius])
translate([x/2,y/2,-1])
cylinder(r=2, h=8);
}
}
module spindle_top_screw(pen_hole=10, thick=3, height=18, head_thick=6, with_hole=true) {
if(1) difference() {
if(1) translate([0,0,-head_thick])
hex_screw(pen_hole+2*thick+1,4,55,height,1.5,2,pen_hole+2*thick+4,head_thick,0,0);
if(with_hole)
translate([0,0,-2+12])
cylinder(r=(pen_hole+1)/2, h=height+3);
}
translate([0,0,-2+12])
scale([1,1,1.5])
difference() {
sphere(r=(pen_hole-3)/2);
translate([0,0,-6])
cube([10,10,10],center=true);
translate([0,0,pen_hole*0.6])
cube([pen_hole,pen_hole,pen_hole],center=true);
}
}
module pen_holder_single(thick, width, height) {
difference() {
translate([-thick,0,0])
cube([thick*2, width, height]);
translate([2*thick,0,0])
rotate([0,0,atan((thick/2)/width)])
translate([-thick,0,-height/2])
cube([thick*2, width*2, height*2]);
translate([-2*thick,0,0])
rotate([0,0,-atan((thick/2)/width)])
translate([-thick,0,-height/2])
cube([thick*2, width*2, height*2]);
rotate([-40,0,0])
translate([-thick,0,0])
cube([thick*2, width*2, height*2]);
}
}
module pen_holder_four(height=60, radius=radius, thick=thick) {
difference() {
for(angle = [0, 90, 180, 270])
rotate([0,0,angle])
translate([0,-(radius-thick/2),0])
rotate([0,0,-atan((pen_radius+0.4)/(radius-thick))])
pen_holder_single(thick*0.8, radius, height);
cylinder(r=pen_radius, h=150);
}
}
module probe_holder()
{
height = 20;
probe_radius = 2/2;
probe_hole_radius = probe_radius + 0.8/2;
difference() {
union(){
difference() {
cylinder(r=pen_radius+thick, h=height);
translate([0,0,-thick/2])
cylinder(r=pen_radius-0.05, h=height+thick);
translate([-(pen_radius+thick),0,height])
scale([1.6,4,1.5])
sphere(r=pen_radius+thick);
}
translate([pen_radius+5, 0, 0])
{
difference(){
cylinder(r=probe_hole_radius+2.2, h=height);
translate([0,0,-thick/2])
cylinder(r=probe_hole_radius, h=height+thick);
}
}
}
translate([pen_radius+5*2, 0 , height/2])
scale([2,4,1.8])
sphere(r=(probe_hole_radius+2));
translate([-10,-pen_radius/2,-1])
cube([10, pen_radius, height]);
translate([pen_radius+5, -probe_hole_radius*.8, height/2])
cube([10, probe_hole_radius*1.6, height]);
}
translate([20, 0, 0])
difference() {
cylinder(r=probe_radius+2.2, h=6);
translate([0,0,2])
cylinder(r=probe_radius, h=6);
translate([0,-probe_radius/2, 2])
cube([10, probe_radius, height]);
}
}
module pen_holder() {
difference() {
union() {
spindle_shell(radius, thick, height);
translate([40, 0, 6])
spindle_top_screw(head_thick=6);
translate([0,0,height-90])
pen_holder_four(height=90);
//pen
if(0) translate([0,0,16])
cylinder(r=pen_radius, h=135);
}
if(0) translate([0,0,-1]) cube([radius*2,radius*2,height+2]);
for(angle = [0, 180])
rotate([0,0,angle])
rotate([0,0,-atan((pen_radius+0.4)/(radius-thick))])
translate([-thick,2.5*thick,height-15])
cube([radius+2*thick,radius,radius]);
}
}
pen_holder();
translate([-60,0,0])
probe_holder();

File diff suppressed because it is too large Load Diff