1
0
mirror of https://github.com/nophead/Mendel90.git synced 2025-08-06 13:26:31 +02:00

Added vero_bed config option for huxley.

Moved screw sizes to vitamins.scad so it can be used stand alone.
Added capped option to hole_support.
Fixed bug in rounded_cylinder().
This commit is contained in:
Chris Palmer
2016-01-06 00:49:11 +00:00
parent 04029133e6
commit 805b4ea427
8 changed files with 4549 additions and 4576 deletions

View File

@@ -3761,10 +3761,17 @@ solid OpenSCAD_Model
facet normal 1.15659e-005 -1 2.563e-006 facet normal 1.15659e-005 -1 2.563e-006
outer loop outer loop
vertex 106.939 9.53672e-007 14.8407 vertex 106.939 9.53672e-007 14.8407
vertex 107.06 1.4732e-012 13.9238 vertex 107.06 0 13.9238
vertex 106.939 9.53674e-007 14.8407 vertex 106.939 9.53674e-007 14.8407
endloop endloop
endfacet endfacet
facet normal 3.98948e-006 1 -5.14922e-007
outer loop
vertex 106.939 9.53672e-007 14.8407
vertex 107.06 1.4732e-012 13.9238
vertex 107.06 0 13.9238
endloop
endfacet
facet normal 0.991443 0 -0.130537 facet normal 0.991443 0 -0.130537
outer loop outer loop
vertex 106.939 9.53674e-007 11.1593 vertex 106.939 9.53674e-007 11.1593
@@ -3793,13 +3800,6 @@ solid OpenSCAD_Model
vertex 106.999 3 14.3823 vertex 106.999 3 14.3823
endloop endloop
endfacet endfacet
facet normal 3.9895e-006 1 -5.14922e-007
outer loop
vertex 106.939 9.53674e-007 14.8407
vertex 107.06 1.4732e-012 13.9238
vertex 107.06 0 13.9238
endloop
endfacet
facet normal 0.991443 0 -0.130537 facet normal 0.991443 0 -0.130537
outer loop outer loop
vertex 106.999 3 11.6177 vertex 106.999 3 11.6177

File diff suppressed because it is too large Load Diff

View File

@@ -1441,7 +1441,7 @@ solid OpenSCAD_Model
vertex 106.739 3 10.2565 vertex 106.739 3 10.2565
endloop endloop
endfacet endfacet
facet normal 0.953721 0 0.300692 facet normal 0.953721 -0 0.300692
outer loop outer loop
vertex 106.461 9.53673e-007 16.6254 vertex 106.461 9.53673e-007 16.6254
vertex 106.739 0 15.7435 vertex 106.739 0 15.7435
@@ -1595,7 +1595,7 @@ solid OpenSCAD_Model
vertex 106.939 9.53672e-007 11.1593 vertex 106.939 9.53672e-007 11.1593
endloop endloop
endfacet endfacet
facet normal 1 -0 0 facet normal 1 0 0
outer loop outer loop
vertex 106.739 9.53672e-007 15.7435 vertex 106.739 9.53672e-007 15.7435
vertex 106.739 9.53674e-007 15.7435 vertex 106.739 9.53674e-007 15.7435

File diff suppressed because it is too large Load Diff

View File

@@ -7,14 +7,12 @@
// //
// Configuration file // Configuration file
// //
function sqr(x) = x * x; // shortcut
bom = $bom == undef ? 0: $bom; // 0 no bom, 1 assemblies and stls, 2 vitamins as well bom = $bom == undef ? 0: $bom; // 0 no bom, 1 assemblies and stls, 2 vitamins as well
exploded = $exploded == undef ? 0 : $exploded; // 1 for exploded view exploded = $exploded == undef ? 0 : $exploded; // 1 for exploded view
show_jigs = true; // show printed jigs required to build the machine show_jigs = true; // show printed jigs required to build the machine
show_support = true; // show support structures, must be set when generating STLs show_support = true; // show support structures, must be set when generating STLs
show_rays = false; // show light and camera rays to check orientation is correct
// Real-world colors for various parts & vitamins // Real-world colors for various parts & vitamins
use_realistic_colors = false; // true for "real" colors, false for "distinct" colors (useful during design and for build instructions) use_realistic_colors = false; // true for "real" colors, false for "distinct" colors (useful during design and for build instructions)
@@ -27,49 +25,7 @@ eta = 0.01; // small fudge factor to stop CSG barfing on coi
$fa = 5; $fa = 5;
$fs = 0.5; $fs = 0.5;
// function sqr(x) = x * x; // shortcut
// Hole sizes
//
No2_pilot_radius = 1.7 / 2; // self tapper into ABS
No4_pilot_radius = 2.0 / 2; // wood screw into soft wood
No6_pilot_radius = 2.0 / 2; // wood screw into soft wood
No2_clearance_radius = 2.5 / 2;
No4_clearance_radius = 3.5 / 2;
No6_clearance_radius = 4.0 / 2;
M2_tap_radius = 1.6 / 2;
M2_clearance_radius = 2.4 / 2;
M2_nut_trap_depth = 2.5;
M2p5_tap_radius = 2.05 / 2;
M2p5_clearance_radius= 2.8 / 2; // M2.5
M2p5_nut_trap_depth = 2.5;
M3_tap_radius = 2.5 / 2;
M3_clearance_radius = 3.3 / 2;
M3_nut_radius = 6.5 / 2;
M3_nut_trap_depth = 3;
M4_tap_radius = 3.3 / 2;
M4_clearance_radius = 2.2;
M4_nut_radius = 8.2 / 2;
M4_nut_trap_depth = 4;
M5_tap_radius = 4.2 / 2;
M5_clearance_radius = 5.3 / 2;
M5_nut_radius = 9.2 / 2;
M5_nut_depth = 4;
M6_tap_radius = 5 / 2;
M6_clearance_radius = 6.4 / 2;
M6_nut_radius = 11.6 / 2;
M6_nut_depth = 5;
M8_tap_radius = 6.75 / 2;
M8_clearance_radius = 8.4 / 2;
M8_nut_radius = 15.4 / 2;
M8_nut_depth = 6.5;
cnc_tool_dia = 2.4; cnc_tool_dia = 2.4;
layer_height = 0.4; layer_height = 0.4;
@@ -83,7 +39,6 @@ feed_tube_tape_rad = 6.2 / 2;
feed_tube_tape = 12; feed_tube_tape = 12;
nozzle_length = 54; // how far nozzle is below top of carriage nozzle_length = 54; // how far nozzle is below top of carriage
include <colors.scad> include <colors.scad>
include <utils.scad> include <utils.scad>
include <vitamins.scad> include <vitamins.scad>
@@ -112,6 +67,7 @@ extruder = Wades; // Default extruder
raspberry_pi = false; // Raspberry pi mounted on PSU raspberry_pi = false; // Raspberry pi mounted on PSU
raspberry_pi_camera = false; // RPI camera on bar across the back raspberry_pi_camera = false; // RPI camera on bar across the back
light_strip = false; light_strip = false;
vero_bed = false; // Bed made from vero board rather than custom PCB.
include <machine.scad> // this file is generated from the command line parameter to include one of the machine configs include <machine.scad> // this file is generated from the command line parameter to include one of the machine configs
screw_clearance_radius = screw_clearance_radius(cap_screw); screw_clearance_radius = screw_clearance_radius(cap_screw);
@@ -130,6 +86,7 @@ limit_switch_offset = 1; // the over travel to reach the limit sw
X_carriage_clearance = 2; // how close the X carriage is to the XZ plane X_carriage_clearance = 2; // how close the X carriage is to the XZ plane
// how close the Y carriage is to the window in the XZ plane // how close the Y carriage is to the window in the XZ plane
Y_carriage_clearance = 2 + (clip_handles ? (bulldog_handle_length(small_bulldog) - (Y_carriage_width - bed_width) / 2) : 0); Y_carriage_clearance = 2 + (clip_handles ? (bulldog_handle_length(small_bulldog) - (Y_carriage_width - bed_width) / 2) : 0);
Y_carriage_rad = 3; // corner radius
Z_clearance = 10; // How close the top of the object gets to the gantry Z_clearance = 10; // How close the top of the object gets to the gantry
belt_clearance = 0.2; // clearance of belt clamp slots belt_clearance = 0.2; // clearance of belt clamp slots

View File

@@ -13,24 +13,32 @@ include <../utils/teardrops.scad>
include <../utils/cables.scad> include <../utils/cables.scad>
include <../utils/shields.scad> include <../utils/shields.scad>
function round_to_layer(z) = ceil(z / layer_height) * layer_height;
module slot(h, r, l, center = true) module slot(h, r, l, center = true)
linear_extrude(height = h, convexity = 6, center = center) linear_extrude(height = h, convexity = 6, center = center)
hull() { hull() {
translate([l/2,0,0]) translate([l/2,0,0])
circle(r = r, center = true); circle(r);
translate([-l/2,0,0]) translate([-l/2,0,0])
circle(r = r, center = true); circle(r);
} }
module hole_support(r, h, max_r = 999, closed = false) { module hole_support(r, h, max_r = 999, closed = false, capped = false) {
n = sides(r); n = sides(r);
cr = corrected_radius(r, n); cr = corrected_radius(r, n);
ir = min(cr, max_r - 2.25 * filament_width); ir = min(cr, max_r - 2.25 * filament_width);
or = ir + 2 * filament_width; or = ir + 2 * filament_width;
difference() { difference() {
cylinder(r = or, h = h, $fn = n); cylinder(r = or, h = h, $fn = n);
translate([0, 0, closed ? layer_height : -1]) difference() {
cylinder(r = ir, h = h + 2, $fn = n); translate([0, 0, closed ? layer_height : -1])
cylinder(r = ir, h = h + 2, $fn = n);
if(capped)
translate([0, 0, h - 4 * layer_height])
cylinder(r = or, h = 3 * layer_height + eta);
}
} }
} }
@@ -105,7 +113,7 @@ module rounded_square(w, h, r)
for(x = [-w/2 + r, w/2 - r]) for(x = [-w/2 + r, w/2 - r])
for(y = [-h/2 + r, h/2 - r]) for(y = [-h/2 + r, h/2 - r])
translate([x, y]) translate([x, y])
circle(r = r); circle(r);
} }
} }
@@ -123,11 +131,14 @@ module rounded_rectangle(size, r, center = true)
module rounded_cylinder(r, h, r2) module rounded_cylinder(r, h, r2)
{ {
rotate_extrude() rotate_extrude()
union() { hull() {
square([r - r2, h]); square([1, h]);
square([r, h - r2]); square([r, 1]);
translate([r - r2, h - r2]) translate([r - r2, h - r2])
circle(r = r2); intersection() {
circle(r2);
square(r2);
}
} }
} }
@@ -157,7 +168,7 @@ module tube(or, ir, h, center = true) {
module explode(v, offset = [0,0,0]) { module explode(v, offset = [0,0,0]) {
if(exploded) { if(exploded) {
translate(v * exploded) translate(v * exploded)
child(); children();
render() hull() { render() hull() {
sphere(0.2); sphere(0.2);
translate(v * exploded + offset) translate(v * exploded + offset)
@@ -165,16 +176,5 @@ module explode(v, offset = [0,0,0]) {
} }
} }
else else
child(); children();
} }
//
// Restore the view point
//
module view(t,r,d = 1000)
rotate([55, 0, 25])
translate([0, 0, -d + 500])
rotate([-r[0], 0, 0])
rotate([0, -r[1], 0])
rotate([0, 0, -r[2]])
translate(-t)
child();

View File

@@ -7,6 +7,50 @@
// //
// Off the shelf parts // Off the shelf parts
// //
//
// Hole sizes
//
No2_pilot_radius = 1.7 / 2; // self tapper into ABS
No4_pilot_radius = 2.0 / 2; // wood screw into soft wood
No6_pilot_radius = 2.0 / 2; // wood screw into soft wood
No2_clearance_radius = 2.5 / 2;
No4_clearance_radius = 3.5 / 2;
No6_clearance_radius = 4.0 / 2;
M2_tap_radius = 1.6 / 2;
M2_clearance_radius = 2.4 / 2;
M2_nut_trap_depth = 2.5;
M2p5_tap_radius = 2.05 / 2;
M2p5_clearance_radius= 2.8 / 2; // M2.5
M2p5_nut_trap_depth = 2.5;
M3_tap_radius = 2.5 / 2;
M3_clearance_radius = 3.3 / 2;
M3_nut_radius = 6.5 / 2;
M3_nut_trap_depth = 3;
M4_tap_radius = 3.3 / 2;
M4_clearance_radius = 2.2;
M4_nut_radius = 8.2 / 2;
M4_nut_trap_depth = 4;
M5_tap_radius = 4.2 / 2;
M5_clearance_radius = 5.3 / 2;
M5_nut_radius = 9.2 / 2;
M5_nut_depth = 4;
M6_tap_radius = 5 / 2;
M6_clearance_radius = 6.4 / 2;
M6_nut_radius = 11.6 / 2;
M6_nut_depth = 5;
M8_tap_radius = 6.75 / 2;
M8_clearance_radius = 8.4 / 2;
M8_nut_radius = 15.4 / 2;
M8_nut_depth = 6.5;
include <../vitamins/washers.scad> include <../vitamins/washers.scad>
include <../vitamins/nuts.scad> include <../vitamins/nuts.scad>
include <../vitamins/screws.scad> include <../vitamins/screws.scad>

View File

@@ -100,4 +100,4 @@ if __name__ == '__main__':
stls(sys.argv[1], sys.argv[2:]) stls(sys.argv[1], sys.argv[2:])
else: else:
print("usage: stls dibond|mendel|sturdy|your_machine [part.stl ...]") print("usage: stls dibond|mendel|sturdy|your_machine [part.stl ...]")
sys.exit(1) sys.exit(1)