mirror of
https://github.com/rsheldiii/KeyV2.git
synced 2024-11-23 05:34:23 +00:00
Merge pull request #32 from rsheldiii/nominal-skinned-iso-enter
nominally support skinned ISO enter
This commit is contained in:
commit
ed1b8841fb
@ -107,11 +107,12 @@ function skin_shape_slice(progress, thickness_difference, skew_this_slice, x_ske
|
|||||||
transform(
|
transform(
|
||||||
rotation([tilt_this_slice,y_tilt_this_slice,0]),
|
rotation([tilt_this_slice,y_tilt_this_slice,0]),
|
||||||
skin_key_shape([
|
skin_key_shape([
|
||||||
total_key_width(thickness_difference),
|
total_key_width(0),
|
||||||
total_key_height(thickness_difference),
|
total_key_height(0),
|
||||||
],
|
],
|
||||||
[$width_difference, $height_difference],
|
[$width_difference, $height_difference],
|
||||||
progress
|
progress,
|
||||||
|
thickness_difference
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
);
|
);
|
||||||
|
@ -44,8 +44,9 @@ module iso_enter() {
|
|||||||
$key_height = 2;
|
$key_height = 2;
|
||||||
|
|
||||||
$top_tilt = 0;
|
$top_tilt = 0;
|
||||||
|
$stem_support_type = "disable";
|
||||||
$key_shape_type = "iso_enter";
|
$key_shape_type = "iso_enter";
|
||||||
$linear_extrude_shape = true;
|
/* $linear_extrude_shape = true; */
|
||||||
$linear_extrude_height_adjustment = 19.05 * 0.5;
|
$linear_extrude_height_adjustment = 19.05 * 0.5;
|
||||||
// this equals (unit_length(1.5) - unit_length(1.25)) / 2
|
// this equals (unit_length(1.5) - unit_length(1.25)) / 2
|
||||||
$dish_overdraw_width = 2.38125;
|
$dish_overdraw_width = 2.38125;
|
||||||
|
@ -27,9 +27,11 @@ module key_shape(size, delta, progress = 0) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
function skin_key_shape(size, delta, progress = 0) =
|
function skin_key_shape(size, delta, progress = 0, thickness_difference) =
|
||||||
$key_shape_type == "rounded_square" ?
|
$key_shape_type == "rounded_square" ?
|
||||||
skin_rounded_square(size, delta, progress) :
|
skin_rounded_square(size, delta, progress) :
|
||||||
$key_shape_type == "sculpted_square" ?
|
$key_shape_type == "sculpted_square" ?
|
||||||
skin_sculpted_square_shape(size, delta, progress) :
|
skin_sculpted_square_shape(size, delta, progress) :
|
||||||
|
$key_shape_type == "iso_enter" ?
|
||||||
|
skin_iso_enter_shape(size, delta, progress, thickness_difference) :
|
||||||
echo("Warning: unsupported $key_shape_type for skin shape. disable skin_extrude_shape or pick a new shape");
|
echo("Warning: unsupported $key_shape_type for skin shape. disable skin_extrude_shape or pick a new shape");
|
||||||
|
@ -1,9 +1,10 @@
|
|||||||
// corollary is rounded_square
|
// corollary is rounded_square
|
||||||
// NOT 3D
|
// NOT 3D
|
||||||
|
function unit_length(length) = unit * (length - 1) + 18.16;
|
||||||
|
|
||||||
module ISO_enter_shape(size, delta, progress){
|
module ISO_enter_shape(size, delta, progress){
|
||||||
width = size[0];
|
width = size[0];
|
||||||
height = size[1];
|
height = size[1];
|
||||||
function unit_length(length) = unit * (length - 1) + 18.16;
|
|
||||||
|
|
||||||
|
|
||||||
// in order to make the ISO keycap shape generic, we are going to express the
|
// in order to make the ISO keycap shape generic, we are going to express the
|
||||||
@ -32,3 +33,23 @@ module ISO_enter_shape(size, delta, progress){
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function iso_enter_vertices(width, height, width_ratio, height_ratio, wd, hd) = [
|
||||||
|
[ 0-wd, 0-hd], // top right
|
||||||
|
[ 0-wd, -height+hd], // bottom right
|
||||||
|
[-width * width_ratio+wd, -height+hd], // bottom left
|
||||||
|
[-width * width_ratio+wd,-height * height_ratio+hd], // inner middle point
|
||||||
|
[ -width+wd,-height * height_ratio+hd], // outer middle point
|
||||||
|
[ -width+wd, 0-hd] // top left
|
||||||
|
] + [
|
||||||
|
[(width * width_ratio)/2, height/2 ],
|
||||||
|
[(width * width_ratio)/2, height/2 ],
|
||||||
|
[(width * width_ratio)/2, height/2 ],
|
||||||
|
[(width * width_ratio)/2, height/2 ],
|
||||||
|
[(width * width_ratio)/2, height/2 ],
|
||||||
|
[(width * width_ratio)/2, height/2 ]
|
||||||
|
];
|
||||||
|
|
||||||
|
// no rounding on the corners at all
|
||||||
|
function skin_iso_enter_shape(size, delta, progress, thickness_difference) =
|
||||||
|
iso_enter_vertices(size.x, size.y, unit_length(1.25) / unit_length(1.5), unit_length(1) / unit_length(2), thickness_difference/2 + delta.x * progress/2, thickness_difference/2 + delta.y * progress/2);
|
||||||
|
Loading…
Reference in New Issue
Block a user