mirror of
https://github.com/rsheldiii/KeyV2.git
synced 2024-11-26 23:04:23 +00:00
in implementing choc stem
This commit is contained in:
parent
55d196448c
commit
d4aa75fc14
@ -178,6 +178,9 @@ $inset_legend_depth = 0.2;
|
||||
// Dimensions of alps stem
|
||||
$alps_stem = [4.45, 2.25];
|
||||
|
||||
// Dimensions of choc stem
|
||||
$choc_stem = [1.2, 3];
|
||||
|
||||
// Enable stabilizer stems, to hold onto your cherry or costar stabilizers
|
||||
$stabilizer_type = "costar_stabilizer"; // [costar_stabilizer, cherry_stabilizer, disable]
|
||||
|
||||
@ -858,6 +861,12 @@ module box_cherry(slop) {
|
||||
children();
|
||||
}
|
||||
|
||||
module choc(slop) {
|
||||
$stem_slop = slop ? slop : $stem_slop;
|
||||
$stem_type = "choc";
|
||||
children();
|
||||
}
|
||||
|
||||
module flared_support() {
|
||||
$support_type = "flared";
|
||||
children();
|
||||
@ -925,6 +934,14 @@ module debug() {
|
||||
|
||||
%children();
|
||||
}
|
||||
|
||||
module low_profile() {
|
||||
/* $total_depth = 5.35; */
|
||||
/* extra ugly hack right now to make sure we don't generate keycaps with insufficient throw */
|
||||
/* $total_depth = ($total_depth / 2) < 6 ? 6 : $total_depth / 2; */
|
||||
$stem_throw = 3;
|
||||
children();
|
||||
}
|
||||
module arrows(profile, rows = [4,4,4,3]) {
|
||||
positions = [[0, 0], [1, 0], [2, 0], [1, 1]];
|
||||
legends = ["←", "↓", "→", "↑"];
|
||||
@ -2078,6 +2095,12 @@ module cherry_stabilizer_stem(depth, slop) {
|
||||
inside_cherry_stabilizer_cross(slop);
|
||||
}
|
||||
}
|
||||
module choc_stem(depth, slop){
|
||||
echo("slop");
|
||||
echo(slop);
|
||||
translate([-5.7/2, 0, depth/2]) cube([1.2 - slop/2, 3 - slop/2, depth], center=true);
|
||||
translate([5.7/2, 0, depth/2]) cube([1.2 - slop/2, 3 - slop/2, depth], center=true);
|
||||
}
|
||||
|
||||
|
||||
//whole stem, alps or cherry, trimmed to fit
|
||||
@ -2094,6 +2117,8 @@ module stem(stem_type, depth, slop){
|
||||
filled_stem();
|
||||
} else if (stem_type == "cherry_stabilizer") {
|
||||
cherry_stabilizer_stem(depth, slop);
|
||||
} else if (stem_type == "choc") {
|
||||
choc_stem(depth, slop);
|
||||
} else if (stem_type == "disable") {
|
||||
children();
|
||||
} else {
|
||||
@ -2322,6 +2347,18 @@ module brim_support(stem_type, stem_support_height, slop) {
|
||||
|
||||
inside_cherry_cross(slop);
|
||||
}
|
||||
} else if(stem_type == "choc") {
|
||||
translate([-5.7/2,0,0]) linear_extrude(height=stem_support_height) {
|
||||
offset(r=1){
|
||||
square($choc_stem + [3,3], center=true);
|
||||
}
|
||||
}
|
||||
|
||||
translate([5.7/2,0,0]) linear_extrude(height=stem_support_height) {
|
||||
offset(r=1){
|
||||
square($choc_stem + [3,3], center=true);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
// a safe theoretical distance between two vertices such that they don't collapse. hard to use
|
||||
@ -2579,6 +2616,10 @@ module tines_support(stem_type, stem_support_height, slop) {
|
||||
}
|
||||
} else if (stem_type == "alps"){
|
||||
centered_tines(stem_support_height);
|
||||
} else if (stem_type == "choc"){
|
||||
if ($key_length < 2) translate([0,0,$stem_support_height / 2]) cube([total_key_width($wall_thickness)+$wall_thickness/4, 0.5, $stem_support_height], center = true);
|
||||
/* translate([-5.7/2,0,$stem_support_height / 2]) cube([0.5, total_key_height($wall_thickness), $stem_support_height], center = true); */
|
||||
/* translate([5.7/2,0,$stem_support_height / 2]) cube([0.5, total_key_height($wall_thickness), $stem_support_height], center = true); */
|
||||
}
|
||||
}
|
||||
|
||||
@ -2932,6 +2973,15 @@ module flared(stem_type, loft, height) {
|
||||
square(outer_cherry_stabilizer_stem($stem_slop) - [2,2], center=true);
|
||||
}
|
||||
}
|
||||
} else if (stem_type == "choc") {
|
||||
alps_scale = [scale_for_45(height, $choc_stem[0]), scale_for_45(height, $choc_stem[1])];
|
||||
translate([-5.7/2,0,0]) linear_extrude(height=height, scale = alps_scale){
|
||||
square($choc_stem - [$stem_slop/2, $stem_slop/2], center=true);
|
||||
}
|
||||
|
||||
translate([5.7/2,0,0]) linear_extrude(height=height, scale = alps_scale){
|
||||
square($choc_stem - [$stem_slop/2, $stem_slop/2], center=true);
|
||||
}
|
||||
} else {
|
||||
// always render cherry if no stem type. this includes stem_type = false!
|
||||
// this avoids a bug where the keycap is rendered filled when not desired
|
||||
@ -4473,6 +4523,9 @@ $inset_legend_depth = 0.2;
|
||||
// Dimensions of alps stem
|
||||
$alps_stem = [4.45, 2.25];
|
||||
|
||||
// Dimensions of choc stem
|
||||
$choc_stem = [1.2, 3];
|
||||
|
||||
// Enable stabilizer stems, to hold onto your cherry or costar stabilizers
|
||||
$stabilizer_type = "costar_stabilizer"; // [costar_stabilizer, cherry_stabilizer, disable]
|
||||
|
||||
|
18
keys.scad
18
keys.scad
@ -8,13 +8,15 @@
|
||||
include <./includes.scad>
|
||||
|
||||
|
||||
// example key
|
||||
dcs_row(5) legend("⇪", size=9) key();
|
||||
|
||||
// example row
|
||||
/* for (x = [0:1:4]) {
|
||||
translate_u(0,-x) dcs_row(x) key();
|
||||
} */
|
||||
|
||||
// example layout
|
||||
/* preonic_default("dcs"); */
|
||||
u(1) choc() {
|
||||
tined_stem_support() sa_row(1){
|
||||
$stem_support_height = 2;
|
||||
low_profile() {
|
||||
key();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/* translate_u(1,0) u(1) choc() row_profile("oem") low_profile() key(); */
|
||||
|
@ -109,6 +109,12 @@ module box_cherry(slop) {
|
||||
children();
|
||||
}
|
||||
|
||||
module choc(slop) {
|
||||
$stem_slop = slop ? slop : $stem_slop;
|
||||
$stem_type = "choc";
|
||||
children();
|
||||
}
|
||||
|
||||
module flared_support() {
|
||||
$support_type = "flared";
|
||||
children();
|
||||
@ -176,3 +182,11 @@ module debug() {
|
||||
|
||||
%children();
|
||||
}
|
||||
|
||||
module low_profile() {
|
||||
/* $total_depth = 5.35; */
|
||||
/* extra ugly hack right now to make sure we don't generate keycaps with insufficient throw */
|
||||
/* $total_depth = ($total_depth / 2) < 6 ? 6 : $total_depth / 2; */
|
||||
$stem_throw = 3;
|
||||
children();
|
||||
}
|
||||
|
@ -163,6 +163,9 @@ $inset_legend_depth = 0.2;
|
||||
// Dimensions of alps stem
|
||||
$alps_stem = [4.45, 2.25];
|
||||
|
||||
// Dimensions of choc stem
|
||||
$choc_stem = [1.2, 3];
|
||||
|
||||
// Enable stabilizer stems, to hold onto your cherry or costar stabilizers
|
||||
$stabilizer_type = "costar_stabilizer"; // [costar_stabilizer, cherry_stabilizer, disable]
|
||||
|
||||
|
@ -43,5 +43,17 @@ module brim_support(stem_type, stem_support_height, slop) {
|
||||
|
||||
inside_cherry_cross(slop);
|
||||
}
|
||||
} else if(stem_type == "choc") {
|
||||
translate([-5.7/2,0,0]) linear_extrude(height=stem_support_height) {
|
||||
offset(r=1){
|
||||
square($choc_stem + [3,3], center=true);
|
||||
}
|
||||
}
|
||||
|
||||
translate([5.7/2,0,0]) linear_extrude(height=stem_support_height) {
|
||||
offset(r=1){
|
||||
square($choc_stem + [3,3], center=true);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -77,5 +77,9 @@ module tines_support(stem_type, stem_support_height, slop) {
|
||||
}
|
||||
} else if (stem_type == "alps"){
|
||||
centered_tines(stem_support_height);
|
||||
} else if (stem_type == "choc"){
|
||||
if ($key_length < 2) translate([0,0,$stem_support_height / 2]) cube([total_key_width($wall_thickness)+$wall_thickness/4, 0.5, $stem_support_height], center = true);
|
||||
/* translate([-5.7/2,0,$stem_support_height / 2]) cube([0.5, total_key_height($wall_thickness), $stem_support_height], center = true); */
|
||||
/* translate([5.7/2,0,$stem_support_height / 2]) cube([0.5, total_key_height($wall_thickness), $stem_support_height], center = true); */
|
||||
}
|
||||
}
|
||||
|
@ -4,6 +4,7 @@ include <stems/box_cherry.scad>
|
||||
include <stems/alps.scad>
|
||||
include <stems/filled.scad>
|
||||
include <stems/cherry_stabilizer.scad>
|
||||
include <stems/choc.scad>
|
||||
|
||||
|
||||
//whole stem, alps or cherry, trimmed to fit
|
||||
@ -20,6 +21,8 @@ module stem(stem_type, depth, slop){
|
||||
filled_stem();
|
||||
} else if (stem_type == "cherry_stabilizer") {
|
||||
cherry_stabilizer_stem(depth, slop);
|
||||
} else if (stem_type == "choc") {
|
||||
choc_stem(depth, slop);
|
||||
} else if (stem_type == "disable") {
|
||||
children();
|
||||
} else {
|
||||
|
6
src/stems/choc.scad
Normal file
6
src/stems/choc.scad
Normal file
@ -0,0 +1,6 @@
|
||||
module choc_stem(depth, slop){
|
||||
echo("slop");
|
||||
echo(slop);
|
||||
translate([-5.7/2, 0, depth/2]) cube([1.2 - slop/2, 3 - slop/2, depth], center=true);
|
||||
translate([5.7/2, 0, depth/2]) cube([1.2 - slop/2, 3 - slop/2, depth], center=true);
|
||||
}
|
@ -40,6 +40,15 @@ module flared(stem_type, loft, height) {
|
||||
square(outer_cherry_stabilizer_stem($stem_slop) - [2,2], center=true);
|
||||
}
|
||||
}
|
||||
} else if (stem_type == "choc") {
|
||||
alps_scale = [scale_for_45(height, $choc_stem[0]), scale_for_45(height, $choc_stem[1])];
|
||||
translate([-5.7/2,0,0]) linear_extrude(height=height, scale = alps_scale){
|
||||
square($choc_stem - [$stem_slop/2, $stem_slop/2], center=true);
|
||||
}
|
||||
|
||||
translate([5.7/2,0,0]) linear_extrude(height=height, scale = alps_scale){
|
||||
square($choc_stem - [$stem_slop/2, $stem_slop/2], center=true);
|
||||
}
|
||||
} else {
|
||||
// always render cherry if no stem type. this includes stem_type = false!
|
||||
// this avoids a bug where the keycap is rendered filled when not desired
|
||||
|
Loading…
Reference in New Issue
Block a user