Browse Source

New goban version with marbles

main
Kujiu 3 months ago
parent
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

5
README.dbk

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

File diff suppressed because it is too large Load Diff

1342742
with_marbles/export/goban6x6.stl

File diff suppressed because it is too large Load Diff

3021818
with_marbles/export/goban9x9.stl

File diff suppressed because it is too large Load Diff

85
with_marbles/goban.scad

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

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