Skip to content

Commit 8228775

Browse files
committed
Fix the models to sit flush on the XY plane.
The skin() function will twist the layers, so that the first layer is above/below the XY plane a little from left to right. This means you can't print them easily like this and can be fixed by producing more of the outer shell and snipping it off at the XY plane exactly.
1 parent e32c51a commit 8228775

File tree

2 files changed

+8
-4
lines changed

2 files changed

+8
-4
lines changed

MX_DES_Standard.scad

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -319,12 +319,14 @@ module keycap(keyID = 0, cutLen = 0, visualizeDish = false, rossSection = false,
319319
difference(){
320320
union(){
321321
difference(){
322-
skin([for (i=[0:layers-1]) transform(translation(CapTranslation(i, keyID)) * rotation(CapRotation(i, keyID)), elliptical_rectangle(CapTransform(i, keyID), b = CapRoundness(i,keyID),fn=fn))]); //outer shell
322+
skin([for (i=[-1:layers-1]) transform(translation(CapTranslation(i, keyID)) * rotation(CapRotation(i, keyID)), elliptical_rectangle(CapTransform(i, keyID), b = CapRoundness(i,keyID),fn=fn))]); //outer shell
323323

324324
//Cut inner shell
325325
if(Stem == true){
326-
translate([0,0,-.001])skin([for (i=[0:layers-1]) transform(translation(InnerTranslation(i, keyID)) * rotation(CapRotation(i, keyID)), elliptical_rectangle(InnerTransform(i, keyID), b = CapRoundness(i,keyID),fn=fn))]);
326+
translate([0,0,-.001])skin([for (i=[-1:layers-1]) transform(translation(InnerTranslation(i, keyID)) * rotation(CapRotation(i, keyID)), elliptical_rectangle(InnerTransform(i, keyID), b = CapRoundness(i,keyID),fn=fn))]);
327327
}
328+
// Cut off the extra bottom due to starting at layer -1
329+
translate ([-50,-50,-10]) cube ([100,100,10], center=false);
328330
}
329331
if(Stem == true){
330332
translate([0,0,StemBrimDep])rotate(stemRot)difference(){

MX_DES_Thumb.scad

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -288,12 +288,14 @@ module keycap(keyID = 0, cutLen = 0, visualizeDish = false, rossSection = false,
288288
difference(){
289289
union(){
290290
difference(){
291-
skin([for (i=[0:layers-1]) transform(translation(CapTranslation(i, keyID)) * rotation(CapRotation(i, keyID)), elliptical_rectangle(CapTransform(i, keyID), b = CapRoundness(i,keyID),fn=fn))]); //outer shell
291+
skin([for (i=[-1:layers-1]) transform(translation(CapTranslation(i, keyID)) * rotation(CapRotation(i, keyID)), elliptical_rectangle(CapTransform(i, keyID), b = CapRoundness(i,keyID),fn=fn))]); //outer shell
292292

293293
//Cut inner shell
294294
if(Stem == true){
295-
translate([0,0,-.001])skin([for (i=[0:layers-1]) transform(translation(InnerTranslation(i, keyID)) * rotation(CapRotation(i, keyID)), elliptical_rectangle(InnerTransform(i, keyID), b = CapRoundness(i,keyID),fn=fn))]);
295+
translate([0,0,-.001])skin([for (i=[-1:layers-1]) transform(translation(InnerTranslation(i, keyID)) * rotation(CapRotation(i, keyID)), elliptical_rectangle(InnerTransform(i, keyID), b = CapRoundness(i,keyID),fn=fn))]);
296296
}
297+
// Cut off the extra bottom due to starting at layer -1
298+
translate ([-50,-50,-10]) cube ([100,100,10], center=false);
297299
}
298300
if(Stem == true){
299301
translate([0,0,StemBrimDep])rotate(stemRot)difference(){

0 commit comments

Comments
 (0)