From 4c6dbc430634c78406f57a362e2e38a84095e987 Mon Sep 17 00:00:00 2001 From: Daniel Loffgren Date: Tue, 20 Sep 2022 22:30:54 -0700 Subject: [PATCH 1/9] layout.scad uses key_transformations.scad for translate_u(), and key_transformations.scad for key_profile() --- src/layouts/layout.scad | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/layouts/layout.scad b/src/layouts/layout.scad index cd3c9c2..b22f800 100644 --- a/src/layouts/layout.scad +++ b/src/layouts/layout.scad @@ -1,3 +1,6 @@ +use <../key_transformations.scad> +use <../key_profiles.scad> + // sums all values, unless a value is negative, in which case it makes it positive // dirty hack to allow for large gaps in keysets function abs_sum(list, x=0) = From c4b622efc630404edf7cfb60e96e20b383fef24c Mon Sep 17 00:00:00 2001 From: Daniel Loffgren Date: Tue, 20 Sep 2022 23:12:54 -0700 Subject: [PATCH 2/9] All of the key profiles use use side_tilt() without including functions.scad --- src/key_profiles/asa.scad | 2 ++ src/key_profiles/cherry.scad | 2 ++ src/key_profiles/dcs.scad | 2 ++ src/key_profiles/dsa.scad | 2 ++ src/key_profiles/dss.scad | 2 ++ src/key_profiles/g20.scad | 2 ++ src/key_profiles/grid.scad | 2 ++ src/key_profiles/hipro.scad | 2 ++ src/key_profiles/mt3.scad | 2 ++ src/key_profiles/oem.scad | 2 ++ src/key_profiles/regular_polygon.scad | 1 + src/key_profiles/sa.scad | 2 ++ src/key_profiles/typewriter.scad | 1 + 13 files changed, 24 insertions(+) diff --git a/src/key_profiles/asa.scad b/src/key_profiles/asa.scad index aaa9ede..84efea8 100644 --- a/src/key_profiles/asa.scad +++ b/src/key_profiles/asa.scad @@ -1,3 +1,5 @@ +use <../functions.scad> + module asa_row(row=3, column = 0) { $key_shape_type = "sculpted_square"; $bottom_key_height = 18.06; diff --git a/src/key_profiles/cherry.scad b/src/key_profiles/cherry.scad index fb5950f..c202143 100644 --- a/src/key_profiles/cherry.scad +++ b/src/key_profiles/cherry.scad @@ -1,3 +1,5 @@ +use <../functions.scad> + // based off GMK keycap set module cherry_row(row=3, column=0) { diff --git a/src/key_profiles/dcs.scad b/src/key_profiles/dcs.scad index 4e6e461..d39c4fa 100644 --- a/src/key_profiles/dcs.scad +++ b/src/key_profiles/dcs.scad @@ -1,3 +1,5 @@ +use <../functions.scad> + module dcs_row(row=3, column=0) { $bottom_key_width = 18.16; $bottom_key_height = 18.16; diff --git a/src/key_profiles/dsa.scad b/src/key_profiles/dsa.scad index 766084b..70c2cc6 100644 --- a/src/key_profiles/dsa.scad +++ b/src/key_profiles/dsa.scad @@ -1,3 +1,5 @@ +use <../functions.scad> + module dsa_row(row=3, column = 0) { $key_shape_type = "sculpted_square"; $bottom_key_width = 18.24; // 18.4; diff --git a/src/key_profiles/dss.scad b/src/key_profiles/dss.scad index 0e501ac..4aca777 100644 --- a/src/key_profiles/dss.scad +++ b/src/key_profiles/dss.scad @@ -1,3 +1,5 @@ +use <../functions.scad> + module dss_row(n=3, column=0) { $key_shape_type = "sculpted_square"; $bottom_key_width = 18.24; diff --git a/src/key_profiles/g20.scad b/src/key_profiles/g20.scad index 794da41..3d21b26 100644 --- a/src/key_profiles/g20.scad +++ b/src/key_profiles/g20.scad @@ -1,3 +1,5 @@ +use <../functions.scad> + module g20_row(row=3, column = 0) { $bottom_key_width = 18.16; $bottom_key_height = 18.16; diff --git a/src/key_profiles/grid.scad b/src/key_profiles/grid.scad index c81be46..26716bf 100644 --- a/src/key_profiles/grid.scad +++ b/src/key_profiles/grid.scad @@ -1,3 +1,5 @@ +use <../functions.scad> + module grid_row(row=3, column = 0) { $bottom_key_width = 18.16; $bottom_key_height = 18.16; diff --git a/src/key_profiles/hipro.scad b/src/key_profiles/hipro.scad index dc8db5d..b9e04d6 100644 --- a/src/key_profiles/hipro.scad +++ b/src/key_profiles/hipro.scad @@ -1,3 +1,5 @@ +use <../functions.scad> + module hipro_row(row=3, column=0) { $key_shape_type = "sculpted_square"; diff --git a/src/key_profiles/mt3.scad b/src/key_profiles/mt3.scad index 01d95f3..df80c19 100644 --- a/src/key_profiles/mt3.scad +++ b/src/key_profiles/mt3.scad @@ -1,3 +1,5 @@ +use <../functions.scad> + // This is an imperfect attempt to clone the MT3 profile module mt3_row(row=3, column=0, deep_dish=false) { $key_shape_type = "sculpted_square"; diff --git a/src/key_profiles/oem.scad b/src/key_profiles/oem.scad index 7594991..c84b50e 100644 --- a/src/key_profiles/oem.scad +++ b/src/key_profiles/oem.scad @@ -1,3 +1,5 @@ +use <../functions.scad> + module oem_row(row=3, column = 0) { $bottom_key_width = 18.05; $bottom_key_height = 18.05; diff --git a/src/key_profiles/regular_polygon.scad b/src/key_profiles/regular_polygon.scad index 2f93ca9..7333739 100644 --- a/src/key_profiles/regular_polygon.scad +++ b/src/key_profiles/regular_polygon.scad @@ -1,3 +1,4 @@ +use <../functions.scad> include <../constants.scad> // Regular polygon shapes CIRCUMSCRIBE the sphere of diameter $bottom_key_width // This is to make tiling them easier, like in the case of hexagonal keycaps etc diff --git a/src/key_profiles/sa.scad b/src/key_profiles/sa.scad index 3382491..8d2ecea 100644 --- a/src/key_profiles/sa.scad +++ b/src/key_profiles/sa.scad @@ -1,3 +1,5 @@ +use <../functions.scad> + module sa_row(n=3, column=0) { $key_shape_type = "sculpted_square"; $bottom_key_width = 18.4; diff --git a/src/key_profiles/typewriter.scad b/src/key_profiles/typewriter.scad index 347cce5..9108a05 100644 --- a/src/key_profiles/typewriter.scad +++ b/src/key_profiles/typewriter.scad @@ -1,3 +1,4 @@ +use <../functions.scad> include <../constants.scad> // Regular polygon shapes CIRCUMSCRIBE the sphere of diameter $bottom_key_width // This is to make tiling them easier, like in the case of hexagonal keycaps etc From 93f883036f32c8e2632563d280c7a3b7d41b5667 Mon Sep 17 00:00:00 2001 From: Daniel Loffgren Date: Tue, 20 Sep 2022 23:16:28 -0700 Subject: [PATCH 3/9] functions.scad uses $double_sculpt_radius without including settings.scad --- src/functions.scad | 1 + 1 file changed, 1 insertion(+) diff --git a/src/functions.scad b/src/functions.scad index 6bfd3b4..f3ce634 100644 --- a/src/functions.scad +++ b/src/functions.scad @@ -1,4 +1,5 @@ include +include // I use functions when I need to compute special variables off of other special variables // functions need to be explicitly included, unlike special variables, which From 80c35b04c3ee08ee0a85d556572ac61b94ee607e Mon Sep 17 00:00:00 2001 From: Daniel Loffgren Date: Tue, 20 Sep 2022 23:33:32 -0700 Subject: [PATCH 4/9] All of the key_profiles use settings without including at least the default settings --- src/key_profiles/asa.scad | 1 + src/key_profiles/cherry.scad | 1 + src/key_profiles/dcs.scad | 1 + src/key_profiles/dsa.scad | 1 + src/key_profiles/dss.scad | 1 + src/key_profiles/g20.scad | 1 + src/key_profiles/grid.scad | 1 + src/key_profiles/hipro.scad | 1 + src/key_profiles/mt3.scad | 1 + src/key_profiles/oem.scad | 1 + src/key_profiles/regular_polygon.scad | 1 + src/key_profiles/sa.scad | 1 + src/key_profiles/typewriter.scad | 1 + 13 files changed, 13 insertions(+) diff --git a/src/key_profiles/asa.scad b/src/key_profiles/asa.scad index 84efea8..79df099 100644 --- a/src/key_profiles/asa.scad +++ b/src/key_profiles/asa.scad @@ -1,4 +1,5 @@ use <../functions.scad> +include <../settings.scad> module asa_row(row=3, column = 0) { $key_shape_type = "sculpted_square"; diff --git a/src/key_profiles/cherry.scad b/src/key_profiles/cherry.scad index c202143..8a11a8a 100644 --- a/src/key_profiles/cherry.scad +++ b/src/key_profiles/cherry.scad @@ -1,4 +1,5 @@ use <../functions.scad> +include <../settings.scad> // based off GMK keycap set diff --git a/src/key_profiles/dcs.scad b/src/key_profiles/dcs.scad index d39c4fa..646d07f 100644 --- a/src/key_profiles/dcs.scad +++ b/src/key_profiles/dcs.scad @@ -1,4 +1,5 @@ use <../functions.scad> +include <../settings.scad> module dcs_row(row=3, column=0) { $bottom_key_width = 18.16; diff --git a/src/key_profiles/dsa.scad b/src/key_profiles/dsa.scad index 70c2cc6..1d0f8b6 100644 --- a/src/key_profiles/dsa.scad +++ b/src/key_profiles/dsa.scad @@ -1,4 +1,5 @@ use <../functions.scad> +include <../settings.scad> module dsa_row(row=3, column = 0) { $key_shape_type = "sculpted_square"; diff --git a/src/key_profiles/dss.scad b/src/key_profiles/dss.scad index 4aca777..c861f63 100644 --- a/src/key_profiles/dss.scad +++ b/src/key_profiles/dss.scad @@ -1,4 +1,5 @@ use <../functions.scad> +include <../settings.scad> module dss_row(n=3, column=0) { $key_shape_type = "sculpted_square"; diff --git a/src/key_profiles/g20.scad b/src/key_profiles/g20.scad index 3d21b26..7f912aa 100644 --- a/src/key_profiles/g20.scad +++ b/src/key_profiles/g20.scad @@ -1,4 +1,5 @@ use <../functions.scad> +include <../settings.scad> module g20_row(row=3, column = 0) { $bottom_key_width = 18.16; diff --git a/src/key_profiles/grid.scad b/src/key_profiles/grid.scad index 26716bf..86f1096 100644 --- a/src/key_profiles/grid.scad +++ b/src/key_profiles/grid.scad @@ -1,4 +1,5 @@ use <../functions.scad> +include <../settings.scad> module grid_row(row=3, column = 0) { $bottom_key_width = 18.16; diff --git a/src/key_profiles/hipro.scad b/src/key_profiles/hipro.scad index b9e04d6..6ed060e 100644 --- a/src/key_profiles/hipro.scad +++ b/src/key_profiles/hipro.scad @@ -1,4 +1,5 @@ use <../functions.scad> +include <../settings.scad> module hipro_row(row=3, column=0) { $key_shape_type = "sculpted_square"; diff --git a/src/key_profiles/mt3.scad b/src/key_profiles/mt3.scad index df80c19..154c1e4 100644 --- a/src/key_profiles/mt3.scad +++ b/src/key_profiles/mt3.scad @@ -1,4 +1,5 @@ use <../functions.scad> +include <../settings.scad> // This is an imperfect attempt to clone the MT3 profile module mt3_row(row=3, column=0, deep_dish=false) { diff --git a/src/key_profiles/oem.scad b/src/key_profiles/oem.scad index c84b50e..0011d3a 100644 --- a/src/key_profiles/oem.scad +++ b/src/key_profiles/oem.scad @@ -1,4 +1,5 @@ use <../functions.scad> +include <../settings.scad> module oem_row(row=3, column = 0) { $bottom_key_width = 18.05; diff --git a/src/key_profiles/regular_polygon.scad b/src/key_profiles/regular_polygon.scad index 7333739..9297ac2 100644 --- a/src/key_profiles/regular_polygon.scad +++ b/src/key_profiles/regular_polygon.scad @@ -1,4 +1,5 @@ use <../functions.scad> +include <../settings.scad> include <../constants.scad> // Regular polygon shapes CIRCUMSCRIBE the sphere of diameter $bottom_key_width // This is to make tiling them easier, like in the case of hexagonal keycaps etc diff --git a/src/key_profiles/sa.scad b/src/key_profiles/sa.scad index 8d2ecea..036473c 100644 --- a/src/key_profiles/sa.scad +++ b/src/key_profiles/sa.scad @@ -1,4 +1,5 @@ use <../functions.scad> +include <../settings.scad> module sa_row(n=3, column=0) { $key_shape_type = "sculpted_square"; diff --git a/src/key_profiles/typewriter.scad b/src/key_profiles/typewriter.scad index 9108a05..1845c72 100644 --- a/src/key_profiles/typewriter.scad +++ b/src/key_profiles/typewriter.scad @@ -1,4 +1,5 @@ use <../functions.scad> +include <../settings.scad> include <../constants.scad> // Regular polygon shapes CIRCUMSCRIBE the sphere of diameter $bottom_key_width // This is to make tiling them easier, like in the case of hexagonal keycaps etc From 7907d2cd4ef058ca4c2b60a49b9a436badfae9fb Mon Sep 17 00:00:00 2001 From: Daniel Loffgren Date: Tue, 20 Sep 2022 23:34:30 -0700 Subject: [PATCH 5/9] layout.scad uses u() without including key_sizes.scad --- src/layouts/layout.scad | 1 + 1 file changed, 1 insertion(+) diff --git a/src/layouts/layout.scad b/src/layouts/layout.scad index b22f800..7649206 100644 --- a/src/layouts/layout.scad +++ b/src/layouts/layout.scad @@ -1,5 +1,6 @@ use <../key_transformations.scad> use <../key_profiles.scad> +use <../key_sizes.scad> // sums all values, unless a value is negative, in which case it makes it positive // dirty hack to allow for large gaps in keysets From 9665d5d6a0879d01997a85de056cfdb96ac66372 Mon Sep 17 00:00:00 2001 From: Daniel Loffgren Date: Wed, 21 Sep 2022 20:43:58 -0700 Subject: [PATCH 6/9] layout.scad uses thinks like lshift() without including key_types.scad --- src/layouts/layout.scad | 1 + 1 file changed, 1 insertion(+) diff --git a/src/layouts/layout.scad b/src/layouts/layout.scad index 7649206..51648e4 100644 --- a/src/layouts/layout.scad +++ b/src/layouts/layout.scad @@ -1,6 +1,7 @@ use <../key_transformations.scad> use <../key_profiles.scad> use <../key_sizes.scad> +use <../key_types.scad> // sums all values, unless a value is negative, in which case it makes it positive // dirty hack to allow for large gaps in keysets From fe960c2f2aedaa1a43dbba10aa7f3c247b1077eb Mon Sep 17 00:00:00 2001 From: Daniel Loffgren Date: Wed, 21 Sep 2022 20:52:14 -0700 Subject: [PATCH 7/9] key_types.scad uses u functions without including key_sizes.scad --- src/key_types.scad | 1 + 1 file changed, 1 insertion(+) diff --git a/src/key_types.scad b/src/key_types.scad index a6c1ab6..3fef3d9 100644 --- a/src/key_types.scad +++ b/src/key_types.scad @@ -1,4 +1,5 @@ include +use module spacebar() { $inverted_dish = $dish_type != "disable"; From 1935944ec5cdb890181787ef78cb30568495c0d1 Mon Sep 17 00:00:00 2001 From: Daniel Loffgren Date: Wed, 21 Sep 2022 21:08:29 -0700 Subject: [PATCH 8/9] key_types.scad uses stabilized() without including key_transformations.scad --- src/key_types.scad | 1 + 1 file changed, 1 insertion(+) diff --git a/src/key_types.scad b/src/key_types.scad index 3fef3d9..55d7cb6 100644 --- a/src/key_types.scad +++ b/src/key_types.scad @@ -1,5 +1,6 @@ include use +use module spacebar() { $inverted_dish = $dish_type != "disable"; From 1907b87dc5b35870f3f6e0d7c953cd0751a4f26e Mon Sep 17 00:00:00 2001 From: Daniel Loffgren Date: Wed, 21 Sep 2022 21:14:56 -0700 Subject: [PATCH 9/9] Add HHKB layout --- src/layouts/hhkb/default.scad | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) create mode 100644 src/layouts/hhkb/default.scad diff --git a/src/layouts/hhkb/default.scad b/src/layouts/hhkb/default.scad new file mode 100644 index 0000000..43611a3 --- /dev/null +++ b/src/layouts/hhkb/default.scad @@ -0,0 +1,21 @@ +include <../layout.scad> + +hhkb_layout = [ + [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1], + [1.5,1,1,1,1,1,1,1,1,1,1,1,1,1.5], + [1.75,1,1,1,1,1,1,1,1,1,1,1,2.25], + [2.25,1,1,1,1,1,1,1,1,1,1,1.75,1], + [-1.5,1,1.5,6,1.5,1] +]; + +hhkb_legends = [ + ["Esc", "1", "2", "3", "4", "5", "6", "7", "8", "9", "0", "-", "=", "\\", "`"], + ["Tab", "q", "w", "e", "r", "t", "y", "u", "i", "o", "p", "[", "]", "Delete"], + ["Ctrl", "a", "s", "d", "f", "g", "h", "j", "k", "l", ";", "'", "Return"], + ["Shift", "z", "x", "c", "v", "b", "n", "m", ",", ".", "/", "Shift", "Fn"], + ["", "Alt", "Cmd", "", "Cmd", "Alt"], +]; + +module hhkb_default(profile) { + layout(hhkb_layout, profile, hhkb_legends) children(); +}