modelled mortices in the top ends; added documentation of parameters.

This commit is contained in:
Simon Brooke 2026-05-28 16:59:30 +01:00
parent 8b2185d73b
commit c43cd06025
2 changed files with 55 additions and 20 deletions

View file

@ -171,15 +171,19 @@ module top_plank(bench_width = 1500, plank_width= 150, top_thickness=75) {
};
}
//top_plank();
module top_end(depth=600, section=75) {
module top_end(nplanks=4, plank_gap=20, plank_width=150, section=75) {
depth = (nplanks*plank_width) + (plank_gap * (nplanks - 1));
color("green")
cube([ depth, section, section]);
// todo: add mortices
difference() {
cube([ depth, section, section]);
for ( plank = [1:nplanks]) {
translate([(plank -1) * (plank_width + plank_gap), 0, 0])
top_plank_end_tenon( plank_width, section);
};
};
}
module end_vice_cut( plank_width=150, width=300, top_thickness=75) {
translate([plank_width * 0.375, 0, -1])
cube([plank_width/4, width, top_thickness + 2]);
@ -211,6 +215,10 @@ module vice_screw(depth=400) {
}
}
/**
* todo: the block doesn't get correctly centred in the slot if the
* plank_width isn't 150mm, so I've got geometry wrong.
*/
module end_vice( plank_width=150, width=300, top_thickness=75){
// the end vice block: this has exactly the section of the end
// vice cut, so we'll use the same model (but much smaller width)
@ -218,8 +226,8 @@ module end_vice( plank_width=150, width=300, top_thickness=75){
translate([50 - (width/5), 0, 0])
end_vice_cut( plank_width, 50, top_thickness);
rotate([0, 0, 90])
translate([width *1.1, 0 - plank_width/2, top_thickness/2])
vice_screw(width);
translate([width *1.1, 0 - plank_width/2, top_thickness/2])
vice_screw(width);
}
module bench_top( nplanks=4, ndowels = 4, plank_gap=20, bench_width=1500, plank_width=150, top_thickness=75) {
@ -244,10 +252,13 @@ module bench_top( nplanks=4, ndowels = 4, plank_gap=20, bench_width=1500, plank_
}
}
}
//module top_end(nplanks=4, plank_gap=20, plank_width=150, section=75) {
translate([0, 1, 0])
top_end((plank_width * nplanks)+(plank_gap * (nplanks - 1)), top_thickness);
translate([ 0, bench_width - (top_thickness +1), 0])
top_end((plank_width * nplanks)+(plank_gap * (nplanks - 1)), top_thickness);
top_end( nplanks, plank_gap, plank_width, top_thickness);
translate([ 0, bench_width - 1, top_thickness])
rotate([ 180, 0, 0])
top_end( nplanks, plank_gap, plank_width, top_thickness);
}
@ -305,14 +316,14 @@ module front_vice( width=150, height=800, depth=400) {
color("fuchsia")
translate([0-(depth*0.8), (width/2)-(width/12), width/2])
difference() {
cube([depth, width/6, width/2]);
cube([depth, width/6, 75]);
for( hole_pair=[1:5]) {
translate([25+(depth/10 * hole_pair), width/3, width/6])
rotate([90,0,0])
cylinder(width/2, r=12.5);
translate([(depth/10 * hole_pair), width/3, width/3])
rotate([90,0,0])
cylinder(width/2, r=12.5);
translate([25+(depth/10 * hole_pair), 50, 25])
rotate([90,0,0])
cylinder(width/2, r=12.5);
translate([(depth/10 * hole_pair), 50, 50])
rotate([90,0,0])
cylinder(width/2, r=12.5);
}
};
translate([(depth*0.22), width/2, height * 0.75])
@ -334,4 +345,8 @@ module bench( height=950, width=1500, nplanks=4, ndowels=4, plank_width=150, pla
//translate([0, 0, 875])
// bench_top();
bench(width=1700);
bench();
translate([1000, 0, 0])
bench(width=1700, nplanks=3, plank_width = 200);
//legs();