New goban version with marbles

main
Kujiu 9 months ago
parent d660f67bb0
commit 0314116758
Signed by: kujiu
GPG Key ID: ABBB2CAC6855599F
  1. 5
      README.dbk
  2. 6305406
      with_marbles/export/goban13x13.stl
  3. 1342742
      with_marbles/export/goban6x6.stl
  4. 3021818
      with_marbles/export/goban9x9.stl
  5. 85
      with_marbles/goban.scad
  6. 13
      with_marbles/params.scad

@ -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).

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

@ -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();

@ -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…
Cancel
Save