diff --git a/README.md b/README.md index 69c717c..a88138d 100644 --- a/README.md +++ b/README.md @@ -137,6 +137,7 @@ Prints from this library are still challenging, despite all efforts to the contr That's it, if you have any questions feel free to open an issue or leave a comment on thingiverse! ## TODO: + * enable customizer to print spacebars * switch dishing logic from a super large cube to a bounding box intersection * update this documentation! * replace linear_extrude_shape_hull with skin_extrude_shape_hull or something, to enable concave extrusions diff --git a/customizer.scad b/customizer.scad index a3ed24e..79a6cb5 100644 --- a/customizer.scad +++ b/customizer.scad @@ -16,17 +16,17 @@ legend = ""; // what type of stem you want. Most people want Cherry. $stem_type = "cherry"; // [cherry, alps, rounded_cherry, filled, disable] -// support type. default is "flared" for easy FDM printing. to disable pass false +// support type. default is "flared" for easy FDM printing; bars are more realistic, and flat could be for artisans $support_type = "flared"; // [flared, bars, flat, disable] -//length in units of key. A regular key is 1 unit; spacebar is usually 6.25 -$key_length = 1; +// length in units of key. A regular key is 1 unit; spacebar is usually 6.25 +$key_length = 1.0; // range not working in thingiverse customizer atm [1:0.25:16] -//print brim for connector to help with bed adhesion +// print brim for connector to help with bed adhesion $has_brim = false; // the stem is the hardest part to print, so this variable controls how much 'slop' there is in the stem -$stem_slop = 0.3; +$stem_slop = 0.3; // not working in thingiverse customizer atm [0:0.01:1] // font size used for text $font_size = 6; @@ -34,12 +34,14 @@ $font_size = 6; // invert dishing. mostly for spacebar $inverted_dish = false; +// Enable stabilizers. If you don't want stabilizers use disable; most other keycaps use Cherry stabilizers +$stabilizer_type = "disable"; // [cherry, rounded_cherry, alps, disable] /* [Advanced] */ /* Key */ // height in units of key. should remain 1 for most uses -$key_height = 1; +$key_height = 1.0; // keytop thickness, aka how many millimeters between the inside and outside of the top surface of the key $keytop_thickness = 1; // wall thickness, aka the thickness of the sides of the keycap. note this is the total thickness, aka 3 = 1.5mm walls @@ -80,11 +82,11 @@ $stem_rotation = 0; /* Stabilizers */ +// ternary is ONLY for customizer. it will NOT work if you're using this in +// openSCAD, unless you're using the customizer. you should use stabilized() or +// set the variable directly // array of positions of stabilizers -$stabilizers = [[-50,0],[50,0]]; -// what type of stem you want for the stabilizers. false disables -$stabilizer_type = false; - +$stabilizers = $key_length > 5.75 ? [[-50, 0], [50, 0]] : [[-12,0],[12,0]]; /* Shape */ @@ -762,7 +764,7 @@ function cherry_cross(slop) = [ // horizontal tine [4.03 + slop, 1.15 + slop / 3], // vertical tine - [1.25 + slop / 3, 5.5 - slop * 2 + .005], + [1.25 + slop / 3, 4.9 + slop / 3 + .005], ]; module cherry_stem(depth, has_brim, slop) { @@ -804,8 +806,8 @@ module cherry_stem(depth, has_brim, slop) { function cherry_cross(slop) = [ // horizontal tine [4.03 + slop, 1.15 + slop / 3], - // vertical tine - [1.25 + slop / 3, 5.5 - slop * 2 + .005], + // vertical tine. can't really afford much slop + [1.25 + slop / 3, 4.9 + slop / 6 + .005], ]; module rounded_cherry_stem(depth, has_brim, slop) { @@ -1559,17 +1561,17 @@ module example_key(){ // what type of stem you want. Most people want Cherry. $stem_type = "cherry"; // [cherry, alps, rounded_cherry, filled, disable] -// support type. default is "flared" for easy FDM printing. to disable pass false +// support type. default is "flared" for easy FDM printing; bars are more realistic, and flat could be for artisans $support_type = "flared"; // [flared, bars, flat, disable] -//length in units of key. A regular key is 1 unit; spacebar is usually 6.25 -$key_length = 1; +// length in units of key. A regular key is 1 unit; spacebar is usually 6.25 +$key_length = 1.0; // range not working in thingiverse customizer atm [1:0.25:16] -//print brim for connector to help with bed adhesion +// print brim for connector to help with bed adhesion $has_brim = false; // the stem is the hardest part to print, so this variable controls how much 'slop' there is in the stem -$stem_slop = 0.3; +$stem_slop = 0.3; // not working in thingiverse customizer atm [0:0.01:1] // font size used for text $font_size = 6; @@ -1577,12 +1579,14 @@ $font_size = 6; // invert dishing. mostly for spacebar $inverted_dish = false; +// Enable stabilizers. If you don't want stabilizers use disable; most other keycaps use Cherry stabilizers +$stabilizer_type = "disable"; // [cherry, rounded_cherry, alps, disable] /* [Advanced] */ /* Key */ // height in units of key. should remain 1 for most uses -$key_height = 1; +$key_height = 1.0; // keytop thickness, aka how many millimeters between the inside and outside of the top surface of the key $keytop_thickness = 1; // wall thickness, aka the thickness of the sides of the keycap. note this is the total thickness, aka 3 = 1.5mm walls @@ -1623,11 +1627,11 @@ $stem_rotation = 0; /* Stabilizers */ +// ternary is ONLY for customizer. it will NOT work if you're using this in +// openSCAD, unless you're using the customizer. you should use stabilized() or +// set the variable directly // array of positions of stabilizers -$stabilizers = [[-50,0],[50,0]]; -// what type of stem you want for the stabilizers. false disables -$stabilizer_type = false; - +$stabilizers = $key_length > 5.75 ? [[-50, 0], [50, 0]] : [[-12,0],[12,0]]; /* Shape */ diff --git a/src/settings.scad b/src/settings.scad index 96cb4de..e744d82 100644 --- a/src/settings.scad +++ b/src/settings.scad @@ -3,17 +3,17 @@ // what type of stem you want. Most people want Cherry. $stem_type = "cherry"; // [cherry, alps, rounded_cherry, filled, disable] -// support type. default is "flared" for easy FDM printing. to disable pass false +// support type. default is "flared" for easy FDM printing; bars are more realistic, and flat could be for artisans $support_type = "flared"; // [flared, bars, flat, disable] -//length in units of key. A regular key is 1 unit; spacebar is usually 6.25 -$key_length = 1; +// length in units of key. A regular key is 1 unit; spacebar is usually 6.25 +$key_length = 1.0; // range not working in thingiverse customizer atm [1:0.25:16] -//print brim for connector to help with bed adhesion +// print brim for connector to help with bed adhesion $has_brim = false; // the stem is the hardest part to print, so this variable controls how much 'slop' there is in the stem -$stem_slop = 0.3; +$stem_slop = 0.3; // not working in thingiverse customizer atm [0:0.01:1] // font size used for text $font_size = 6; @@ -21,12 +21,14 @@ $font_size = 6; // invert dishing. mostly for spacebar $inverted_dish = false; +// Enable stabilizers. If you don't want stabilizers use disable; most other keycaps use Cherry stabilizers +$stabilizer_type = "disable"; // [cherry, rounded_cherry, alps, disable] /* [Advanced] */ /* Key */ // height in units of key. should remain 1 for most uses -$key_height = 1; +$key_height = 1.0; // keytop thickness, aka how many millimeters between the inside and outside of the top surface of the key $keytop_thickness = 1; // wall thickness, aka the thickness of the sides of the keycap. note this is the total thickness, aka 3 = 1.5mm walls @@ -67,11 +69,11 @@ $stem_rotation = 0; /* Stabilizers */ +// ternary is ONLY for customizer. it will NOT work if you're using this in +// openSCAD, unless you're using the customizer. you should use stabilized() or +// set the variable directly // array of positions of stabilizers -$stabilizers = [[-50,0],[50,0]]; -// what type of stem you want for the stabilizers. false disables -$stabilizer_type = false; - +$stabilizers = $key_length > 5.75 ? [[-50, 0], [50, 0]] : [[-12,0],[12,0]]; /* Shape */ diff --git a/src/stems/cherry.scad b/src/stems/cherry.scad index 097883f..64843d0 100644 --- a/src/stems/cherry.scad +++ b/src/stems/cherry.scad @@ -6,7 +6,7 @@ function cherry_cross(slop) = [ // horizontal tine [4.03 + slop, 1.15 + slop / 3], // vertical tine - [1.25 + slop / 3, 5.5 - slop * 2 + .005], + [1.25 + slop / 3, 4.9 + slop / 3 + .005], ]; module cherry_stem(depth, has_brim, slop) { diff --git a/src/stems/rounded_cherry.scad b/src/stems/rounded_cherry.scad index 54ca492..d470688 100644 --- a/src/stems/rounded_cherry.scad +++ b/src/stems/rounded_cherry.scad @@ -2,8 +2,8 @@ function cherry_cross(slop) = [ // horizontal tine [4.03 + slop, 1.15 + slop / 3], - // vertical tine - [1.25 + slop / 3, 5.5 - slop * 2 + .005], + // vertical tine. can't really afford much slop + [1.25 + slop / 3, 4.9 + slop / 6 + .005], ]; module rounded_cherry_stem(depth, has_brim, slop) {