1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
|
// FIDE Standards have some flexibility
// https://www.fide.com/FIDE/handbook/Standards_of_Chess_Equipment_and_tournament_venue.pdf
// FIDE Handbook C.02.2.2 Height,weight,proportions
// - King – 9.5 cm,
// - Queen – 8.5 cm,
// - Bishop – 7 cm,
// - Knight – 6 cm,
// - Rook – 5.5 cm and
// - Pawn – 5 cm.
// - The diameter of the piece's base should measure 40- 50% of its height.
// - These dimensions may differ up to 10% from the above recommendation,
// - but the order (e.g. King is higher than Queen etc.) must be kept.
// We are going to transgress C.02.2.3
// FIDE Handbook C.02.3.2 Size of the square and the board
// - The side of the square should measure 5 to 6 cm.
// - Referring to 2.2 the side of a square should be at least twice the diameter of a pawn’s base (it means four paws on one square).
// FIDE Standards have some flexibility
// https://www.fide.com/FIDE/handbook/Standards_of_Chess_Equipment_and_tournament_venue.pdf
// FIDE Handbook C.02.2.2 Height,weight,proportions
// - King – 9.5 cm,
// - Queen – 8.5 cm,
// - Bishop – 7 cm,
// - Knight – 6 cm,
// - Rook – 5.5 cm and
// - Pawn – 5 cm.
// - The diameter of the piece's base should measure 40- 50% of its height.
// - These dimensions may differ up to 10% from the above recommendation,
// - but the order (e.g. King is higher than Queen etc.) must be kept.
// We are going to transgress C.02.2.3
// FIDE Handbook C.02.3.2 Size of the square and the board
// - The side of the square should measure 5 to 6 cm.
// - Referring to 2.2 the side of a square should be at least twice the diameter of a pawn’s base (it means four paws on one square).
$fn = 4;
total_height = 5.5;
base_diameter = total_height / 2;
base_radius = base_diameter / 2;
// How is the base height dependent on piece height?
base_height = 1;
// The rook has a wider stem
stem_radius = base_radius / 2;
stem_base_radius = base_radius * (3/4);
// I like several different low poly designs for the castle ridges
// I like the ridge going over the corner
// I also like the simplicity of every other face having a ridge
head_radius = 1;
head_height = 1;
stem_height = total_height - base_height - (head_height / 2);
// ridge_offset will set the ridges to go over the corners
ridge_offset_check = 1;
ridge_offset = ridge_offset_check * ((360/$fn)/2);
cylinder(base_height/2, r = base_radius);
translate([0, 0, base_height/2])
cylinder(base_height/2, base_radius, stem_base_radius);
translate([0, 0, base_height])
cylinder(stem_height, stem_base_radius, stem_radius);
difference() {
translate([0, 0, total_height - head_height])
cylinder(head_height, r = head_radius);
translate([0, 0, total_height - (head_height/4)]) {
cylinder(head_height, r = head_radius * 0.75);
// this rotation will work for $fn = 8 or 6
for (i = [0:$fn]) {
rotate([0, 0, (i * (360/($fn))) - ridge_offset])
rotate_extrude(angle = 360/$fn)
square([head_radius, head_height]);
}
}
}
|