add PCB Machining Vise (http://www.thingiverse.com/thing:63578) to hold PCB board

pull/9/head
Glen Chung 2013-10-23 00:24:22 +08:00
parent 0ea895dddf
commit e58afd5ff8
6 changed files with 142 additions and 3 deletions

View File

@ -12,6 +12,7 @@ use <../Y_axis/Y_nut_holder.scad>
use <../XZ_axis/X_carriage.scad>
use <../XZ_axis/Z_carriage.scad>
use <../libs/rod.scad>
use <../libs/PCB_Machining_Vise/PCB_vise_1_Part1.scad>
X_axis_sep = 210;
Y_axis_sep = 210;
@ -55,7 +56,7 @@ X_Travel = 0; //0~164
Y_Travel = 0; //0~101
Z_Travel = 30; //0~30
//To display steppers, bearings, washers, nuts, screws, micro switchs, etc.
//To display steppers, bearings, washers, nuts, bolts, micro-switches, etc.
Display_Extra_Parts = true;
//To enable exploded drawing view
@ -134,10 +135,17 @@ module cnc_workbed() {
cube([workbed_X,workbed_Y,workbed_thickness],center=true);
cube([workbed_X-1,workbed_Y-1,workbed_thickness+1],center=true);
}
}
if(Display_Extra_Parts) {
translate([-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([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 ---
translate([0,0,-(workbed_thickness+Z_PCB_BOARD)/2])
cube([X_PCB_BOARD,Y_PCB_BOARD,Z_PCB_BOARD],center=true);
echo("Non-Plastic Parts: Double sided PCB ", X_PCB_BOARD, " x ", Y_PCB_BOARD, " x ", Z_PCB_BOARD);
translate([0,0,-(workbed_thickness)/2-15])
color([0.72,0.45,0.20]) cube([X_PCB_BOARD,Y_PCB_BOARD,Z_PCB_BOARD],center=true);
}
}

View File

@ -0,0 +1,52 @@
//Designed by Forgetful_Guy
//From http://www.thingiverse.com/thing:63578
//License: http://creativecommons.org/publicdomain/zero/1.0/
include <MCAD/metric_fastners.scad>
include <MCAD/materials.scad>
use <../large_washer.scad>
use <./PCB_vise_1_Part2.scad>
module PCB_vise_1_Part1(with_extra_parts=false, exploded=false) {
import("./PCB_vise_1_Part1.STL");
if(with_extra_parts)
PCB_vise_1_Part1_extras(exploded_distance=(exploded?5:0));
module PCB_vise_1_Part1_extras(exploded_distance=0) {
echo("Non-Plastic Parts: 2 x Large washer M5 for PCB_vise_1_Part1");
echo("Non-Plastic Parts: 2 x Self tapping screw 4.8 x 19 mm for PCB_vise_1_Part1");
echo("Non-Plastic Parts: 5 x M3 nut for PCB_vise_1_Part1");
color(Steel) {
translate([10,20,8.0+exploded_distance]) {
large_washer(5);
translate([0,0,largeWasher_H(5)+2+5*exploded_distance]) rotate([180,0,0]) csk_bolt(4.8, 19);
}
translate([10,20+40,8.0+exploded_distance]) {
large_washer(5);
translate([0,0,largeWasher_H(5)+2+5*exploded_distance]) rotate([180,0,0]) csk_bolt(4.8, 19);
}
translate([24-2*exploded_distance,14,8+0.6])
flat_nut(3);
translate([24-2*exploded_distance,14+28,8+0.6])
flat_nut(3);
translate([24-2*exploded_distance,14+28*2,8+0.6])
flat_nut(3);
translate([33,4-2*exploded_distance,8+0.6])
flat_nut(3);
translate([33+22,4-2*exploded_distance,8+0.6])
flat_nut(3);
}
}
}
module PCB_vise_1(with_extra_parts=false, exploded=false) {
PCB_vise_1_Part1(with_extra_parts=with_extra_parts, exploded=exploded);
translate([20,0,15+0.8])
PCB_vise_1_Part2(with_extra_parts=with_extra_parts, exploded=exploded);
}
PCB_vise_1(with_extra_parts=false, exploded=false);

View File

@ -0,0 +1,34 @@
//Designed by Forgetful_Guy
//From http://www.thingiverse.com/thing:63578
//License: http://creativecommons.org/publicdomain/zero/1.0/
include <MCAD/nuts_and_bolts.scad>
include <MCAD/materials.scad>
module PCB_vise_1_Part2(with_extra_parts=false, exploded=false) {
import("./PCB_vise_1_Part2.STL");
if(with_extra_parts)
PCB_vise_1_Part2_extras(exploded_distance=(exploded?5:0));
module PCB_vise_1_Part2_extras(exploded_distance=0) {
echo("Non-Plastic Parts: 5 x Bolt M3 x 16 mm for PCB_vise_1_Part2");
color(Steel) {
translate([4,14,2.5+4*exploded_distance])
rotate([180,0,0]) boltHole(size=3, length=16);
translate([4,14+28,2.5+4*exploded_distance])
rotate([180,0,0]) boltHole(size=3, length=16);
translate([4,14+28*2,2.5+4*exploded_distance])
rotate([180,0,0]) boltHole(size=3, length=16);
translate([13,4,2.5+4*exploded_distance])
rotate([180,0,0]) boltHole(size=3, length=16);
translate([13+22,4,2.5+4*exploded_distance])
rotate([180,0,0]) boltHole(size=3, length=16);
}
}
}
PCB_vise_1_Part2(with_extra_parts=false, exploded=false);

View File

@ -0,0 +1,45 @@
////By Glen Chung, 2013.
//Dual licenced under Creative Commons Attribution-Share Alike 3.0 and LGPL2 or later
include <MCAD/units.scad>
include <MCAD/materials.scad>
LARGE_WASHER_D1 = 0; //Inner diameter
LARGE_WASHER_D2 = 1; //Outer diameter
LARGE_WASHER_H = 2; //Height
// Large Washer dimensions
// model == X ? [ D1, D2, H]:
function largeWasherDimensions(model=3) =
model == 3 ? [ 3.2*mm, 9.0*mm, 0.8*mm]:
model == 4 ? [ 4.3*mm, 12.0*mm, 1.0*mm]:
model == 5 ? [ 5.3*mm, 15.0*mm, 1.0*mm]:
model == 6 ? [ 6.4*mm, 18.0*mm, 1.6*mm]:
model == 8 ? [ 8.4*mm, 24.0*mm, 2.0*mm]:
model == 10 ? [ 10.5*mm, 30.0*mm, 2.5*mm]:
model == 12 ? [ 13.0*mm, 37.0*mm, 3.0*mm]:
model == 16 ? [ 17.0*mm, 50.0*mm, 3.0*mm]:
model == 20 ? [ 21.0*mm, 60.0*mm, 4.0*mm]:
model == 24 ? [ 25.0*mm, 72.0*mm, 5.0*mm]:
model == 30 ? [ 33.0*mm, 92.0*mm, 6.0*mm]:
/*model == 36 ?*/ [ 39.0*mm, 110.0*mm, 8.0*mm];
function largeWasher_D1(model) = largeWasherDimensions(model)[LARGE_WASHER_D1];
function largeWasher_D2(model) = largeWasherDimensions(model)[LARGE_WASHER_D2];
function largeWasher_H(model) = largeWasherDimensions(model)[LARGE_WASHER_H];
module large_washer(dia=3)
{
d1 = largeWasher_D1(dia);
d2 = largeWasher_D2(dia);
h = largeWasher_H(dia);
difference()
{
cylinder(r=d2/2,h=h);
translate([0,0,-h/2]) cylinder(r=d1/2,h=h*2);
}
}
//examples
//large_washer(); //m3
//large_washer(5); //m5