modelled mortices in the top ends; added documentation of parameters.
This commit is contained in:
parent
8b2185d73b
commit
c43cd06025
2 changed files with 55 additions and 20 deletions
22
README.md
22
README.md
|
|
@ -42,14 +42,34 @@ This model is parameterised and is resizeable within limits, but if you vary any
|
|||
|
||||
Colours are for clarity only.
|
||||
|
||||
## Parameters
|
||||
|
||||
height=950, width=1500, nplanks=4, ndowels=4, plank_width=150, plank_gap=20, top_thickness=75, leg_section=100
|
||||
|
||||
The following parameters may be passed to the `bench` module:
|
||||
|
||||
| Parameter | Default | Documentation | Sensible range |
|
||||
| ------------- | ------- | --------------------------------------------------------- | -------------- |
|
||||
| height | 950 | height of bench top | 800-1100 |
|
||||
| width | 1500 | overall width of the bench, excluding the end vice winder | 1200-2000 |
|
||||
| nplanks | 4 | number of planks comprising the top | 2-5 |
|
||||
| ndowels | 4 | number of dowels joining each adjacent plank pair | 2-8 |
|
||||
| plank_width | 150 | width of each plank | 150-300 |
|
||||
| plank_gap | 20 | gap between each pair of planks | 0-20 |
|
||||
| top_thickness | 75 | thickness of the planks comprising the top | 60-100 |
|
||||
| leg_section | 100 | thickness of the (square section) legs | 75-150 |
|
||||
|
||||
|
||||
|
||||
## Errata/todo:
|
||||
1. locking wedges and treenails are generally not present in this
|
||||
drawing;
|
||||
2. mortices and holes for wedges and treenails are not all present;
|
||||
3. two of the tapered mortices for the longitudinal braces are the
|
||||
wrong way round;
|
||||
5. while all tenons are modelled, not all mortices are; where a tenon
|
||||
4. while all tenons are modelled, not all mortices are; where a tenon
|
||||
intersects an apparently solid piece, assume there is a mortice!
|
||||
5. screw threads are not yet modelled.
|
||||
|
||||
## Licence
|
||||
|
||||
|
|
|
|||
37
roubo.scad
37
roubo.scad
|
|
@ -171,15 +171,19 @@ module top_plank(bench_width = 1500, plank_width= 150, top_thickness=75) {
|
|||
};
|
||||
}
|
||||
|
||||
//top_plank();
|
||||
module top_end(nplanks=4, plank_gap=20, plank_width=150, section=75) {
|
||||
depth = (nplanks*plank_width) + (plank_gap * (nplanks - 1));
|
||||
|
||||
module top_end(depth=600, section=75) {
|
||||
color("green")
|
||||
difference() {
|
||||
cube([ depth, section, section]);
|
||||
// todo: add mortices
|
||||
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)
|
||||
|
|
@ -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,12 +316,12 @@ 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])
|
||||
translate([25+(depth/10 * hole_pair), 50, 25])
|
||||
rotate([90,0,0])
|
||||
cylinder(width/2, r=12.5);
|
||||
translate([(depth/10 * hole_pair), width/3, width/3])
|
||||
translate([(depth/10 * hole_pair), 50, 50])
|
||||
rotate([90,0,0])
|
||||
cylinder(width/2, r=12.5);
|
||||
}
|
||||
|
|
@ -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();
|
||||
Loading…
Add table
Add a link
Reference in a new issue