2017-11-13 05:01:17 +11:00
|
|
|
$fs=.1;
|
|
|
|
unit = 19.05;
|
|
|
|
|
2018-02-05 07:43:17 +11:00
|
|
|
include <shapes/ISO_enter.scad>
|
2018-06-25 07:13:51 +10:00
|
|
|
include <shapes/sculpted_square.scad>
|
2018-02-05 07:43:17 +11:00
|
|
|
include <shapes/rounded_square.scad>
|
|
|
|
include <shapes/square.scad>
|
|
|
|
include <shapes/oblong.scad>
|
2018-01-31 04:01:38 +11:00
|
|
|
|
2020-01-02 10:36:23 +11:00
|
|
|
// size: at progress 0, the shape is supposed to be this size
|
|
|
|
// delta: at progress 1, the keycap is supposed to be size - delta
|
|
|
|
// progress: how far along the transition you are.
|
|
|
|
// it's not always linear - specifically sculpted_square
|
2018-01-31 04:01:38 +11:00
|
|
|
module key_shape(size, delta, progress = 0) {
|
2018-06-05 11:13:09 +10:00
|
|
|
if ($key_shape_type == "iso_enter") {
|
|
|
|
ISO_enter_shape(size, delta, progress);
|
2018-06-25 07:29:09 +10:00
|
|
|
} else if ($key_shape_type == "sculpted_square") {
|
|
|
|
sculpted_square_shape(size, delta, progress);
|
2018-06-05 11:13:09 +10:00
|
|
|
} else if ($key_shape_type == "rounded_square") {
|
|
|
|
rounded_square_shape(size, delta, progress);
|
|
|
|
} else if ($key_shape_type == "square") {
|
|
|
|
square_shape(size, delta, progress);
|
2018-02-05 07:43:17 +11:00
|
|
|
} else if ($key_shape_type == "oblong") {
|
2018-06-05 11:13:09 +10:00
|
|
|
oblong_shape(size, delta, progress);
|
|
|
|
} else {
|
|
|
|
echo("Warning: unsupported $key_shape_type");
|
|
|
|
}
|
2017-11-13 05:01:17 +11:00
|
|
|
}
|
2020-01-02 10:36:23 +11:00
|
|
|
|
2020-03-18 08:16:04 +11:00
|
|
|
function skin_key_shape(size, delta, progress = 0, thickness_difference) =
|
2020-01-02 10:36:23 +11:00
|
|
|
$key_shape_type == "rounded_square" ?
|
|
|
|
skin_rounded_square(size, delta, progress) :
|
|
|
|
$key_shape_type == "sculpted_square" ?
|
|
|
|
skin_sculpted_square_shape(size, delta, progress) :
|
2020-03-18 08:16:04 +11:00
|
|
|
$key_shape_type == "iso_enter" ?
|
|
|
|
skin_iso_enter_shape(size, delta, progress, thickness_difference) :
|
2020-01-02 10:36:23 +11:00
|
|
|
echo("Warning: unsupported $key_shape_type for skin shape. disable skin_extrude_shape or pick a new shape");
|