From e58afd5ff8081c9bd038e4c62e992b17bb5f532e Mon Sep 17 00:00:00 2001 From: Glen Chung Date: Wed, 23 Oct 2013 00:24:22 +0800 Subject: [PATCH] add PCB Machining Vise (http://www.thingiverse.com/thing:63578) to hold PCB board --- .../Cyclone_Template/template.scad | 14 ++++- .../PCB_Machining_Vise/PCB_vise_1_Part1.STL | Bin 0 -> 224384 bytes .../PCB_Machining_Vise/PCB_vise_1_Part1.scad | 52 ++++++++++++++++++ .../PCB_Machining_Vise/PCB_vise_1_Part2.STL | Bin 0 -> 78684 bytes .../PCB_Machining_Vise/PCB_vise_1_Part2.scad | 34 ++++++++++++ Hardware/Development/libs/large_washer.scad | 45 +++++++++++++++ 6 files changed, 142 insertions(+), 3 deletions(-) create mode 100644 Hardware/Development/libs/PCB_Machining_Vise/PCB_vise_1_Part1.STL create mode 100644 Hardware/Development/libs/PCB_Machining_Vise/PCB_vise_1_Part1.scad create mode 100644 Hardware/Development/libs/PCB_Machining_Vise/PCB_vise_1_Part2.STL create mode 100644 Hardware/Development/libs/PCB_Machining_Vise/PCB_vise_1_Part2.scad create mode 100644 Hardware/Development/libs/large_washer.scad diff --git a/Hardware/Development/Cyclone_Template/template.scad b/Hardware/Development/Cyclone_Template/template.scad index 7471f7d..91885de 100644 --- a/Hardware/Development/Cyclone_Template/template.scad +++ b/Hardware/Development/Cyclone_Template/template.scad @@ -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); } } diff --git a/Hardware/Development/libs/PCB_Machining_Vise/PCB_vise_1_Part1.STL b/Hardware/Development/libs/PCB_Machining_Vise/PCB_vise_1_Part1.STL new file mode 100644 index 0000000000000000000000000000000000000000..caffb558f7d47b026f46f76c0845d4d8397866af GIT binary patch literal 224384 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 +include +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); \ No newline at end of file diff --git a/Hardware/Development/libs/PCB_Machining_Vise/PCB_vise_1_Part2.STL b/Hardware/Development/libs/PCB_Machining_Vise/PCB_vise_1_Part2.STL new file mode 100644 index 0000000000000000000000000000000000000000..e0040fc5ee076d3c80e8d398170f5482177d67ea GIT binary patch literal 78684 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 literal 0 HcmV?d00001 diff --git a/Hardware/Development/libs/PCB_Machining_Vise/PCB_vise_1_Part2.scad b/Hardware/Development/libs/PCB_Machining_Vise/PCB_vise_1_Part2.scad new file mode 100644 index 0000000..a82ad18 --- /dev/null +++ b/Hardware/Development/libs/PCB_Machining_Vise/PCB_vise_1_Part2.scad @@ -0,0 +1,34 @@ +//Designed by Forgetful_Guy +//From http://www.thingiverse.com/thing:63578 +//License: http://creativecommons.org/publicdomain/zero/1.0/ + +include +include + +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); + diff --git a/Hardware/Development/libs/large_washer.scad b/Hardware/Development/libs/large_washer.scad new file mode 100644 index 0000000..6ed52e1 --- /dev/null +++ b/Hardware/Development/libs/large_washer.scad @@ -0,0 +1,45 @@ +////By Glen Chung, 2013. +//Dual licenced under Creative Commons Attribution-Share Alike 3.0 and LGPL2 or later + +include +include + +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 \ No newline at end of file