quick stem updates

probably best to pass the stem throw to the stems eh?
This commit is contained in:
Bob 2020-07-10 00:46:05 -04:00
parent 69175f08e4
commit 24e280fe3c
9 changed files with 51 additions and 45 deletions

View File

@ -706,14 +706,13 @@ module iso_enter() {
$key_length = 1.5; $key_length = 1.5;
$key_height = 2; $key_height = 2;
$top_tilt = 10; $top_tilt = 0;
$stem_support_type = "disable"; $stem_support_type = "disable";
$key_shape_type = "iso_enter"; $key_shape_type = "iso_enter";
/* $linear_extrude_shape = true; */ /* $linear_extrude_shape = true; */
/* $skin_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 = 13.84125; $dish_overdraw_width = 2.38125;
stabilized(vertical=true) { stabilized(vertical=true) {
@ -999,7 +998,6 @@ unit = 19.05;
// NOT 3D // NOT 3D
function unit_length(length) = unit * (length - 1) + 18.16; 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];
@ -1014,21 +1012,19 @@ module ISO_enter_shape(size, delta, progress){
width_ratio = unit_length(1.25) / unit_length(1.5); width_ratio = unit_length(1.25) / unit_length(1.5);
height_ratio = unit_length(1) / unit_length(2); height_ratio = unit_length(1) / unit_length(2);
delta = delta / 2;
pointArray = [ pointArray = [
[ 0-delta.x, 0-delta.y], // top right [ 0, 0], // top right
[ 0-delta.x, -height+delta.y], // bottom right [ 0, -height], // bottom right
[-width * width_ratio+delta.x, -height+delta.y], // bottom left [-width * width_ratio, -height], // bottom left
[-width * width_ratio + delta.x,-height * height_ratio+delta.y], // inner middle point [-width * width_ratio,-height * height_ratio], // inner middle point
[ -width + delta.x,-height * height_ratio + delta.y], // outer middle point [ -width,-height * height_ratio], // outer middle point
[ -width + delta.x, 0-delta.y] // top left [ -width, 0] // top left
]; ];
minkowski(){ minkowski(){
circle(r=$corner_radius); circle(r=corner_size);
// gives us rounded inner corner // gives us rounded inner corner
offset(r=-$corner_radius*2) { offset(r=-corner_size*2) {
translate([(width * width_ratio)/2, height/2]) polygon(points=pointArray); translate([(width * width_ratio)/2, height/2]) polygon(points=pointArray);
} }
} }
@ -1227,7 +1223,7 @@ module rounded_square_shape(size, delta, progress, center = true) {
// for skin // for skin
function skin_rounded_square(size, delta, progress, thickness_difference) = function skin_rounded_square(size, delta, progress, thickness_difference) =
rounded_rectangle_profile(size - (delta * progress) - [thickness_difference, thickness_difference], fn=$shape_facets, r=$corner_radius); rounded_rectangle_profile(size - (delta * progress), fn=$shape_facets, r=$corner_radius);
SMALLEST_POSSIBLE = 1/128; SMALLEST_POSSIBLE = 1/128;
// I use functions when I need to compute special variables off of other special variables // I use functions when I need to compute special variables off of other special variables
@ -1498,7 +1494,7 @@ module inside_cherry_cross(slop) {
} }
} }
module cherry_stem(depth, slop) { module cherry_stem(depth, slop, throw) {
difference(){ difference(){
// outside shape // outside shape
linear_extrude(height = depth) { linear_extrude(height = depth) {
@ -1656,7 +1652,7 @@ module inside_cherry_cross(slop) {
} }
} }
module cherry_stem(depth, slop) { module cherry_stem(depth, slop, throw) {
difference(){ difference(){
// outside shape // outside shape
linear_extrude(height = depth) { linear_extrude(height = depth) {
@ -1669,7 +1665,7 @@ module cherry_stem(depth, slop) {
} }
} }
module rounded_cherry_stem(depth, slop) { module rounded_cherry_stem(depth, slop, throw) {
difference(){ difference(){
cylinder(d=$rounded_cherry_stem_d, h=depth); cylinder(d=$rounded_cherry_stem_d, h=depth);
@ -1824,7 +1820,7 @@ module inside_cherry_cross(slop) {
} }
} }
module cherry_stem(depth, slop) { module cherry_stem(depth, slop, throw) {
difference(){ difference(){
// outside shape // outside shape
linear_extrude(height = depth) { linear_extrude(height = depth) {
@ -1837,7 +1833,7 @@ module cherry_stem(depth, slop) {
} }
} }
module box_cherry_stem(depth, slop) { module box_cherry_stem(depth, slop, throw) {
difference(){ difference(){
// outside shape // outside shape
linear_extrude(height = depth) { linear_extrude(height = depth) {
@ -1850,12 +1846,12 @@ module box_cherry_stem(depth, slop) {
inside_cherry_cross(slop); inside_cherry_cross(slop);
} }
} }
module alps_stem(depth, has_brim, slop){ module alps_stem(depth, slop, throw){
linear_extrude(height=depth) { linear_extrude(height=depth) {
square($alps_stem, center = true); square($alps_stem, center = true);
} }
} }
module filled_stem() { module filled_stem(_depth, _slop, _throw) {
// I broke the crap out of this stem type due to the changes I made around how stems are differenced // I broke the crap out of this stem type due to the changes I made around how stems are differenced
// now that we just take the dish out of stems in order to support stuff like // now that we just take the dish out of stems in order to support stuff like
// bare stem keycaps (and buckling spring eventually) we can't just make a // bare stem keycaps (and buckling spring eventually) we can't just make a
@ -1941,7 +1937,7 @@ module inside_cherry_stabilizer_cross(slop) {
} }
} }
module cherry_stabilizer_stem(depth, slop) { module cherry_stabilizer_stem(depth, slop, throw) {
difference(){ difference(){
// outside shape // outside shape
linear_extrude(height = depth) { linear_extrude(height = depth) {
@ -1953,22 +1949,31 @@ module cherry_stabilizer_stem(depth, slop) {
inside_cherry_stabilizer_cross(slop); inside_cherry_stabilizer_cross(slop);
} }
} }
thickness = .84;
module custom_stem(depth, slop, throw){
linear_extrude(height=depth) {
square($alps_stem, center = true);
}
}
//whole stem, alps or cherry, trimmed to fit //whole stem, alps or cherry, trimmed to fit
module stem(stem_type, depth, slop){ module stem(stem_type, depth, slop, throw){
if (stem_type == "alps") { if (stem_type == "alps") {
alps_stem(depth, slop); alps_stem(depth, slop, throw);
} else if (stem_type == "cherry" || stem_type == "costar_stabilizer") { } else if (stem_type == "cherry" || stem_type == "costar_stabilizer") {
cherry_stem(depth, slop); cherry_stem(depth, slop, throw);
} else if (stem_type == "rounded_cherry") { } else if (stem_type == "rounded_cherry") {
rounded_cherry_stem(depth, slop); rounded_cherry_stem(depth, slop, throw);
} else if (stem_type == "box_cherry") { } else if (stem_type == "box_cherry") {
box_cherry_stem(depth, slop); box_cherry_stem(depth, slop, throw);
} else if (stem_type == "filled") { } else if (stem_type == "filled") {
filled_stem(); filled_stem();
} else if (stem_type == "cherry_stabilizer") { } else if (stem_type == "cherry_stabilizer") {
cherry_stabilizer_stem(depth, slop); cherry_stabilizer_stem(depth, slop, throw);
} else if (stem_type == "custom") {
custom_stem(depth, slop, throw);
} else if (stem_type == "disable") { } else if (stem_type == "disable") {
children(); children();
} else { } else {
@ -2122,7 +2127,7 @@ module inside_cherry_cross(slop) {
} }
} }
module cherry_stem(depth, slop) { module cherry_stem(depth, slop, throw) {
difference(){ difference(){
// outside shape // outside shape
linear_extrude(height = depth) { linear_extrude(height = depth) {
@ -2325,7 +2330,7 @@ module inside_cherry_cross(slop) {
} }
} }
module cherry_stem(depth, slop) { module cherry_stem(depth, slop, throw) {
difference(){ difference(){
// outside shape // outside shape
linear_extrude(height = depth) { linear_extrude(height = depth) {
@ -4182,7 +4187,7 @@ module support_for(positions, stem_type) {
module stems_for(positions, stem_type) { module stems_for(positions, stem_type) {
keystem_positions(positions) { keystem_positions(positions) {
color($tertiary_color) stem(stem_type, $total_depth, $stem_slop); color($tertiary_color) stem(stem_type, $total_depth, $stem_slop, $stem_throw);
if ($stem_support_type != "disable") { if ($stem_support_type != "disable") {
color($quaternary_color) stem_support($stem_support_type, stem_type, $stem_support_height, $stem_slop); color($quaternary_color) stem_support($stem_support_type, stem_type, $stem_support_height, $stem_slop);
} }

View File

@ -299,7 +299,7 @@ module support_for(positions, stem_type) {
module stems_for(positions, stem_type) { module stems_for(positions, stem_type) {
keystem_positions(positions) { keystem_positions(positions) {
color($tertiary_color) stem(stem_type, $total_depth, $stem_slop); color($tertiary_color) stem(stem_type, $total_depth, $stem_slop, $stem_throw);
if ($stem_support_type != "disable") { if ($stem_support_type != "disable") {
color($quaternary_color) stem_support($stem_support_type, stem_type, $stem_support_height, $stem_slop); color($quaternary_color) stem_support($stem_support_type, stem_type, $stem_support_height, $stem_slop);
} }

View File

@ -4,22 +4,23 @@ include <stems/box_cherry.scad>
include <stems/alps.scad> include <stems/alps.scad>
include <stems/filled.scad> include <stems/filled.scad>
include <stems/cherry_stabilizer.scad> include <stems/cherry_stabilizer.scad>
include <stems/custom.scad>
//whole stem, alps or cherry, trimmed to fit //whole stem, alps or cherry, trimmed to fit
module stem(stem_type, depth, slop){ module stem(stem_type, depth, slop, throw){
if (stem_type == "alps") { if (stem_type == "alps") {
alps_stem(depth, slop); alps_stem(depth, slop, throw);
} else if (stem_type == "cherry" || stem_type == "costar_stabilizer") { } else if (stem_type == "cherry" || stem_type == "costar_stabilizer") {
cherry_stem(depth, slop); cherry_stem(depth, slop, throw);
} else if (stem_type == "rounded_cherry") { } else if (stem_type == "rounded_cherry") {
rounded_cherry_stem(depth, slop); rounded_cherry_stem(depth, slop, throw);
} else if (stem_type == "box_cherry") { } else if (stem_type == "box_cherry") {
box_cherry_stem(depth, slop); box_cherry_stem(depth, slop, throw);
} else if (stem_type == "filled") { } else if (stem_type == "filled") {
filled_stem(); filled_stem();
} else if (stem_type == "cherry_stabilizer") { } else if (stem_type == "cherry_stabilizer") {
cherry_stabilizer_stem(depth, slop); cherry_stabilizer_stem(depth, slop, throw);
} else if (stem_type == "disable") { } else if (stem_type == "disable") {
children(); children();
} else { } else {

View File

@ -1,4 +1,4 @@
module alps_stem(depth, has_brim, slop){ module alps_stem(depth, slop, throw){
linear_extrude(height=depth) { linear_extrude(height=depth) {
square($alps_stem, center = true); square($alps_stem, center = true);
} }

View File

@ -1,7 +1,7 @@
include <../functions.scad> include <../functions.scad>
include <cherry.scad> include <cherry.scad>
module box_cherry_stem(depth, slop) { module box_cherry_stem(depth, slop, throw) {
difference(){ difference(){
// outside shape // outside shape
linear_extrude(height = depth) { linear_extrude(height = depth) {

View File

@ -23,7 +23,7 @@ module inside_cherry_cross(slop) {
} }
} }
module cherry_stem(depth, slop) { module cherry_stem(depth, slop, throw) {
difference(){ difference(){
// outside shape // outside shape
linear_extrude(height = depth) { linear_extrude(height = depth) {

View File

@ -15,7 +15,7 @@ module inside_cherry_stabilizer_cross(slop) {
} }
} }
module cherry_stabilizer_stem(depth, slop) { module cherry_stabilizer_stem(depth, slop, throw) {
difference(){ difference(){
// outside shape // outside shape
linear_extrude(height = depth) { linear_extrude(height = depth) {

View File

@ -1,4 +1,4 @@
module filled_stem() { module filled_stem(_depth, _slop, _throw) {
// I broke the crap out of this stem type due to the changes I made around how stems are differenced // I broke the crap out of this stem type due to the changes I made around how stems are differenced
// now that we just take the dish out of stems in order to support stuff like // now that we just take the dish out of stems in order to support stuff like
// bare stem keycaps (and buckling spring eventually) we can't just make a // bare stem keycaps (and buckling spring eventually) we can't just make a

View File

@ -1,7 +1,7 @@
include <../functions.scad> include <../functions.scad>
include <cherry.scad> include <cherry.scad>
module rounded_cherry_stem(depth, slop) { module rounded_cherry_stem(depth, slop, throw) {
difference(){ difference(){
cylinder(d=$rounded_cherry_stem_d, h=depth); cylinder(d=$rounded_cherry_stem_d, h=depth);