You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: keycap_playground.scad
+11-11Lines changed: 11 additions & 11 deletions
Original file line number
Diff line number
Diff line change
@@ -76,8 +76,8 @@ KEY_ROTATION = [0,0,0]; // An example of how you'd rotate a keycap on its side.
76
76
KEY_TOP_DIFFERENCE =5; // How much skinnier the key is at the top VS the bottom [x,y]
77
77
KEY_TOP_X =0; // Move the keycap's top on the X axis (controls skew left/right)
78
78
KEY_TOP_Y =0; // Move the keycap's top on the Y axis (controls skew forward/backward)
79
-
WALL_THICKNESS =0.45*2.25; // Default: 0.45 extrusion width * 2.25 (nice and thick; feels/sounds good). NOTE: STEM_SIDES_WALL_THICKNESS gets added to this.
80
-
UNIFORM_WALL_THICKNESS =false; // Much more expensive rendering but the material under the dish will match the sides (even the shape of the dish will be matched)
79
+
WALL_THICKNESS =0.4*3; // Default: 0.45 extrusion width * 2.25 (nice and thick; feels/sounds good). NOTE: STEM_SIDES_WALL_THICKNESS gets added to this.
80
+
UNIFORM_WALL_THICKNESS =true; // Much more expensive rendering but the material under the dish will match the sides (even the shape of the dish will be matched)
81
81
// NOTE: UNIFORM_WALL_THICKNESS uses WALL_THICKNESS instead of DISH_THICKNESS. So DISH_THICKNESS will be ignored if you enable this option.
// NOTE: inv_pyramid doesn't work for making spacbars (kinda, "duh")
89
89
DISH_DEPTH =1; // Distance between the top sides and the bottommost point in the dish (set to 0 for flat top)
90
90
// NOTE: When DISH_INVERT is true DISH_DEPTH becomes more like, "how far dish protrudes upwards"
91
-
DISH_THICKNESS =0.6; // Amount of material that will be placed under the bottommost part of the dish (Note: only used if UNIFORM_WALL_THICKNESS is false)
91
+
DISH_THICKNESS =1; // Amount of material that will be placed under the bottommost part of the dish (Note: only used if UNIFORM_WALL_THICKNESS is false)
92
92
// NOTE: If you make DISH_THICKNESS too small legends might not print properly--even with a tiny nozzle. In other words, a thick keycap top makes for nice clean (3D printed) legends.
93
93
// NOTE: Also, if you're printing white keycaps with transparent legends you want a thick dish (1.2+) to darken the non-transparent parts of the keycap
94
94
DISH_TILT =0; // How to rotate() the dish of the key (on the Y axis)
@@ -99,13 +99,13 @@ DISH_INVERT_DIVISION_X = 4;
99
99
DISH_INVERT_DIVISION_Y =1;
100
100
// TIP: If you're making a 1U keycap and want a truly rounded (spherical) top set DISH_INVERT_DIVISION_X to 1
101
101
// NOTE: Don't forget to increase DISH_FN if you make a longer/wider keycap!
102
-
DISH_FN =$preview ? 28 : 256; // If you want to increase or decrease the resolution of the shapes used to make the dish (Tip: Don't go <64 for "cylinder" dish types and don't go <128 for "sphere")
102
+
DISH_FN =$preview ? 28 : 512; // If you want to increase or decrease the resolution of the shapes used to make the dish (Tip: Don't go <64 for "cylinder" dish types and don't go <128 for "sphere")
103
103
// NOTE: DISH_FN does not apply if DISH_INVERT==true (because it would be too much; inverted dish doesn't need as much resolution)
104
-
DISH_CORNER_FN =$preview ? 16 : 64;
104
+
DISH_CORNER_FN =$preview ? 16 : 128;
105
105
// COOL TRICK: Set DISH_CORNER_FN to 4 to get flattened/chamfered corners (low-poly look!)
106
106
107
107
// POLYGON/SHAPE MANIPULATION
108
-
POLYGON_LAYERS =10; // Number of layers we're going to extrude (set to 1 to get a boring keycap)
108
+
POLYGON_LAYERS =32; // Number of layers we're going to extrude (set to 1 to get a boring keycap)
109
109
POLYGON_LAYER_ROTATION =0; // How much to rotate per layer (set to 0 for boring keycap). Try messing with this! It's fun!
110
110
POLYGON_EDGES =4; // How many sides the keycap will have (normal keycap is 4). Try messing with this too!
111
111
POLYGON_ROTATION =true; // If false, each layer will ALTERNATE it's rotation CW/CCW (for a low-poly effect). If true the keycap will gently rotate the given rotation amount until it reaches the final rotated destination (as it were).
@@ -121,7 +121,7 @@ STEM_HEIGHT = 4; // How far into the keycap's stem the switch's stem can go (4 i
121
121
// NOTE: For Alps you typically want STEM_HEIGHT=3.5 (slightly shorter)
122
122
STEM_TOP_THICKNESS =0.5; // The part that resides under the keycap, connecting stems and keycap together (Note: Only used if UNIFORM_WALL_THICKNESS is false)
123
123
// TIP: Increase STEM_TOP_THICKNESS when generating underset masks; makes them easier to use as a modifier in your slicer.
124
-
STEM_INSIDE_TOLERANCE =0.0; // Increases the size of the empty space(s) in the stem
124
+
STEM_INSIDE_TOLERANCE =0.1; // Increases the size of the empty space(s) in the stem
125
125
// NOTE: For Alps stems I recommend reducing these two values to something like 0.1 or 0.05:
126
126
STEM_OUTSIDE_TOLERANCE_X =0.05; // Shrinks the stem a bit on the X axis (both axis for round_cherry)
127
127
STEM_OUTSIDE_TOLERANCE_Y =0.05; // Shrinks the stem a bit on the Y axis (unused with round_cherry)
// NOTE ABOUT STEM STRENGTH AND ACCURACY: Printing stems upright/flat with a 0.4mm nozzle is troublesome. They work OK but they're usually quite tight. It's better to print keys on their side (front or left/right) so that the layer lines run at an angle to the switch stem; they end up more accurate *and* much, much stronger.
135
-
STEM_INSET =1.3; // How far to inset the stem (set to 0 to have the stem rest on the build plate which means you won't need supports when printing flat)
135
+
STEM_INSET =2.4; // How far to inset the stem (set to 0 to have the stem rest on the build plate which means you won't need supports when printing flat)
136
136
STEM_FLAT_SUPPORT =false; // Add built-in support for the stem when printing flat (if inset)
137
137
STEM_SIDE_SUPPORT_THICKNESS =1; // 1 works well for most things
138
138
// This controls which sides get (internal, under-the-top) stem supports (for printing on the side):
@@ -154,16 +154,16 @@ STEM_LOCATIONS = [ // Where to place stems/stabilizers
154
154
];
155
155
// SNAP-FIT STEM STUFF (see snap_fit.scad for more details)
156
156
STEM_SNAP_FIT =false; // If you want to print the stem as a separate part
157
-
STEM_SIDES_WALL_THICKNESS =0.5; // This will add additional thickness to the interior walls of the keycap that's rendered/exported with the "stem". If you have legends on the front/back/sides of your keycap setting this to something like 0.65 will give those legends something to "sit" on when printing (so there's no mid-air printing or drooping).
157
+
STEM_SIDES_WALL_THICKNESS =0; // This will add additional thickness to the interior walls of the keycap that's rendered/exported with the "stem". If you have legends on the front/back/sides of your keycap setting this to something like 0.65 will give those legends something to "sit" on when printing (so there's no mid-air printing or drooping).
158
158
STEM_WALLS_INSET =0; // Makes it so the stem walls don't go all the way to the bottom of the keycap; works just like STEM_INSET but for the walls (1.05 is good for snap-fit stems)
159
-
STEM_WALLS_TOLERANCE =0.0; // How much wiggle room the stem sides will get inside the keycap (0.2 is good for snap-fit stems)
159
+
STEM_WALLS_TOLERANCE =0.1; // How much wiggle room the stem sides will get inside the keycap (0.2 is good for snap-fit stems)
160
160
161
161
// If you want "homing dots" for home row keys:
162
162
HOMING_DOT_LENGTH =0; // Set to something like "3" for a good, easy-to-feel "dot"
163
163
HOMING_DOT_WIDTH =1; // Default: 1
164
164
HOMING_DOT_X =0; // 0 == Center
165
165
HOMING_DOT_Y =-KEY_WIDTH/4; // Default: Move it down towards the front a bit
166
-
HOMING_DOT_Z =0.2; // 0 == Right at KEY_HEIGHT (dish type makes a big difference here)
166
+
HOMING_DOT_Z =0.05; // 0 == Right at KEY_HEIGHT (dish type makes a big difference here)
167
167
// NOTE: ADA specifies 0.5mm as the ideal braille dot height so that's what I recommend for homing dots too! Though, 0.3mm seems to be reasonably "feelable" in my testing. Experiment!
0 commit comments