2022-01-31 00:36:21 +01:00
|
|
|
include <params.scad>
|
|
|
|
use <white_stones.scad>
|
|
|
|
|
|
|
|
module bstone() {
|
|
|
|
difference() {
|
2022-02-01 02:20:39 +01:00
|
|
|
union() {
|
|
|
|
wstone();
|
|
|
|
cylinder(r=$mark_thickness, h=$stone_height*3/2, $fn=200);
|
|
|
|
}
|
|
|
|
for($r=[5*$mark_thickness/2:2*$mark_thickness:$stone_radius]) {
|
2022-01-31 00:36:21 +01:00
|
|
|
translate([0, 0, -1]) {
|
|
|
|
difference() {
|
|
|
|
cylinder(r=$r+$mark_thickness/2, h=$stone_height/3+1, $fn=200);
|
|
|
|
translate([0, 0, -1]) {
|
|
|
|
cylinder(r=$r-$mark_thickness/2, h=$stone_height/3+2, $fn=200);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
translate([0, 0, $stone_height*2/3]) {
|
|
|
|
difference() {
|
|
|
|
cylinder(r=$r+$mark_thickness/2, h=$stone_height/3+1, $fn=200);
|
|
|
|
translate([0, 0, -1]) {
|
|
|
|
cylinder(r=$r-$mark_thickness/2, h=$stone_height/3+2, $fn=200);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
$median = floor($goban_size/2);
|
|
|
|
|
|
|
|
for($x=[$median:$goban_size-1]) {
|
|
|
|
for($y=[0:$goban_size-1]) {
|
|
|
|
if($x>$median || ($x==$median && $y>=$median)) {
|
|
|
|
translate([
|
|
|
|
$x*2*($stone_radius+$stone_clearance),
|
|
|
|
$y*2*($stone_radius+$stone_clearance), 0]) {
|
|
|
|
bstone();
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|