Merge branch 'development' into test
commit
2f495a9d07
File diff suppressed because it is too large
Load Diff
Binary file not shown.
File diff suppressed because it is too large
Load Diff
Binary file not shown.
|
@ -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);
|
||||
|
|
|
@ -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
Loading…
Reference in New Issue