diff options
author | Christian Hodgden <chrhodgden@gmail.com> | 2024-07-22 13:31:11 -0500 |
---|---|---|
committer | Christian Hodgden <chrhodgden@gmail.com> | 2024-07-22 13:31:11 -0500 |
commit | 92d30e11eea4344eda2dbe41a8c1081c14f0fa3d (patch) | |
tree | dc739a06d6f19a94ad8b2f2d84c96df0e4037d7b | |
parent | 503a2f6822f5cb50ccd0d735cf0e24f98a1b7b43 (diff) |
started rook model
-rw-r--r-- | chess/rook.scad | 49 |
1 files changed, 49 insertions, 0 deletions
diff --git a/chess/rook.scad b/chess/rook.scad new file mode 100644 index 0000000..b75476f --- /dev/null +++ b/chess/rook.scad @@ -0,0 +1,49 @@ + +// 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 = 8; +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); + +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); +translate([0, 0, total_height - head_height]) + cylinder(head_height/2, r = head_radius); +translate([0, 0, total_height - (head_height/2)]) + // I think I might try rotate_extrude + // take a differemce with an internal cylinder as well + %cylinder(head_height/2, r = head_radius); + |