phone_total_thick = 12.0;
phone_backside_slope = 1.0; // larger means shallower
-camera_pos_tl = [ 7.5, 13.5 ]; // measured from tl corner
+camera_pos_tl = [ 7.0, 13.0 ]; // measured from tl corner
camera_pos_br = [ 24.0, 39.5 ]; // tl/br as seen from back
case_th_bottom = 2;
module EdgeProfile(){
difference(){
hull(){
- circleat(epp3, r=case_th_bottom);
+ translate(epp3) square(case_th_bottom*2, center=true);
circleat(epp2, r=case_th_bottom);
circleat(epp1, r=case_th_side);
rectfromto(epp0, epp4);
}
}
-module CaseBase(){
+module AroundEdges(fill_zstart, fill_th, fill_downwards=0){
// sides
CaseBase_rhsflip(){
translate([0, -phone_cnr_rad, 0])
rotate([90,0,0])
linear_extrude(height = phone_height - phone_cnr_rad*2)
- EdgeProfile();
+ children(0);
}
// corners
CaseBase_rhsflip() CaseBase_botflip() {
intersection(){
mirror([1,0,0])
translate([-1,0] * phone_cnr_rad)
- EdgeProfile();
+ children(0);
rectfromto([0,-20],[10,20]);
}
translate([-10, 0, -20] + 0.01 * [+1,-1, 0] )
translate([ phone_width - phone_cnr_rad, 0,0 ])
rotate([90,0,-90])
linear_extrude(height = phone_width - phone_cnr_rad*2)
- EdgeProfile();
+ children(0);
}
// fill
- translate([0,0, epp3[1]])
- mirror([0,0, 1])
- linear_extrude(height = case_th_bottom)
+ translate([0,0, fill_zstart])
+ mirror([0,0, fill_downwards])
+ linear_extrude(height = fill_th)
rectfromto([+1,-1] * phone_cnr_rad,
[phone_width, -phone_height] + [-1,+1] * phone_cnr_rad);
}
+module CaseBase(){
+ AroundEdges(epp3[1], case_th_bottom, 1)
+ EdgeProfile();
+}
+
module Case(){ ////toplevel
difference(){
CaseBase();
}
}
+module Lid(){ ////toplevel
+ AroundEdges(lpp10[1], lpp13[1] - lpp10[1], 0)
+ LidEdgeProfile();
+}
+
module TestLength(){ ////toplevel
intersection(){
Case();