New goban version with marbles
This commit is contained in:
parent
d660f67bb0
commit
0314116758
6 changed files with 10670069 additions and 0 deletions
|
@ -20,6 +20,11 @@
|
|||
One version for 3D printing
|
||||
</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>
|
||||
One version for 3D printing or CNC to use with real go stones and marbles
|
||||
</para>
|
||||
</listitem>
|
||||
</itemizedlist>
|
||||
<para>
|
||||
You can choose your size (like 6x6, 9x9, 13x13 or 19x19).
|
||||
|
|
6305406
with_marbles/export/goban13x13.stl
Normal file
6305406
with_marbles/export/goban13x13.stl
Normal file
File diff suppressed because it is too large
Load diff
1342742
with_marbles/export/goban6x6.stl
Normal file
1342742
with_marbles/export/goban6x6.stl
Normal file
File diff suppressed because it is too large
Load diff
3021818
with_marbles/export/goban9x9.stl
Normal file
3021818
with_marbles/export/goban9x9.stl
Normal file
File diff suppressed because it is too large
Load diff
85
with_marbles/goban.scad
Normal file
85
with_marbles/goban.scad
Normal file
|
@ -0,0 +1,85 @@
|
|||
include <params.scad>
|
||||
|
||||
module goban() {
|
||||
$goban_width = $cell_width*($goban_size-1) +
|
||||
$goban_size*$line_width +
|
||||
$goban_padding*2;
|
||||
|
||||
$goban_length = $cell_length*($goban_size-1) +
|
||||
$goban_size*$line_width +
|
||||
$goban_padding*2;
|
||||
|
||||
difference() {
|
||||
cube([$goban_width, $goban_length, $goban_height]);
|
||||
for(n=[0:$goban_size-1]) {
|
||||
translate([
|
||||
$goban_padding,
|
||||
$goban_padding + n*($cell_length+$line_width),
|
||||
$goban_height - $line_depth])
|
||||
cube([
|
||||
$goban_size*($line_width+$cell_width)-$cell_length,
|
||||
$line_width,
|
||||
$line_depth+1
|
||||
]);
|
||||
translate([
|
||||
$goban_padding + n*($cell_width+$line_width),
|
||||
$goban_padding,
|
||||
$goban_height - $line_depth])
|
||||
cube([
|
||||
$line_width,
|
||||
$goban_size*($line_width+$cell_length)-$cell_length,
|
||||
$line_depth+1
|
||||
]);
|
||||
for(y=[0:$goban_size-1]) {
|
||||
translate([
|
||||
$goban_padding + n*($cell_width+$line_width),
|
||||
$goban_padding + y*($cell_length+$line_width),
|
||||
0
|
||||
]) union() {
|
||||
translate([0, 0, $goban_height - $stone_height])
|
||||
cylinder(
|
||||
h=$stone_height+1,
|
||||
r=$stone_radius+$clearance,
|
||||
$fn=100);
|
||||
translate([0, 0, $goban_height - $marble_radius*0.3])
|
||||
sphere(
|
||||
r=$marble_radius+$clearance,
|
||||
$fn=100);
|
||||
translate([0, 0, $goban_height - $stone_height])
|
||||
cylinder(
|
||||
r=$marble_radius+$clearance,
|
||||
h=$marble_radius+1,
|
||||
$fn=100);
|
||||
|
||||
if(search(n+1, $hoshi_pos) && search(y+1, $hoshi_pos)) {
|
||||
translate([
|
||||
0, 0,
|
||||
$goban_height-$stone_height-$line_depth])
|
||||
cylinder(
|
||||
h=$line_depth+1,
|
||||
r=$marble_radius+$line_width+$clearance,
|
||||
$fn=100
|
||||
);
|
||||
}
|
||||
translate([0, 0, $goban_height-$stone_height*2]) {
|
||||
intersection() {
|
||||
cylinder(
|
||||
h=$stone_height*2,
|
||||
r=$stone_radius+$clearance,
|
||||
$fn=100
|
||||
);
|
||||
translate([0, $stone_radius*1.25, 0])
|
||||
cylinder(
|
||||
h=$stone_height*2,
|
||||
r=$stone_radius+$clearance,
|
||||
$fn=100
|
||||
);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
goban();
|
13
with_marbles/params.scad
Normal file
13
with_marbles/params.scad
Normal file
|
@ -0,0 +1,13 @@
|
|||
$stone_height = 3;
|
||||
$stone_radius = 11.5;
|
||||
$marble_radius = 8;
|
||||
$goban_size = 19;
|
||||
$hoshi_pos = [4, 10, 16]; // [4, 10, 16] for 19x19, [4, 7, 10] for 13x13
|
||||
$line_width = 2;
|
||||
$line_depth = 0.8;
|
||||
$cell_width = 27;
|
||||
$cell_length = 28;
|
||||
$goban_padding = 25;
|
||||
$goban_height = 13;
|
||||
$clearance = 0.75;
|
||||
|
Loading…
Reference in a new issue