Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
prop_angles = [ 15, 30, 45, 60 ];
bumper = [ 0.250, -0.025 ];
prop_angles = [ 15, 30, 45, 60 ];
bumper = [ 0.250, -0.025 ];
prop_side_gap = 0.75; // each side
prop_caserecess_behind = 0.75;
prop_caserecess_taper = 0.25; // each side
prop_side_gap = 0.75; // each side
prop_caserecess_behind = 0.75;
prop_caserecess_taper = 0.25; // each side
// ---------- calculated ----------
// ---------- calculated ----------
phone_backside_slope_thick = phone_total_thick - phone_edge_thick;
phone_backside_slope_thick = phone_total_thick - phone_edge_thick;
-prop_lidrecess_depth = case_th_lid - prop_recess_under;
+//prop_lidrecess_depth = case_th_lid - prop_recess_under;
-prop_nose_len = case_th_lid - prop_recess_under;
-prop_recess_slope = tan(prop_max_angle); // bigger means steeper
-prop_recess_width = prop_main_th / cos(prop_max_angle) + prop_backfwd_gap;
+//prop_nose_len = case_th_lid - prop_recess_under;
+//prop_recess_slope = tan(prop_max_angle); // bigger means steeper
+//prop_recess_width = prop_main_th / cos(prop_max_angle) + prop_backfwd_gap;
//lid_lip_overlap_width xxx bad name = ;
//lid_lip_overlap_width xxx bad name = ;
cppV[1] - (catch_finger_height - cp_rQ) ];
cppF = [ cppV[0] + catch_finger_depth, cppC[1] ];
cppV[1] - (catch_finger_height - cp_rQ) ];
cppF = [ cppV[0] + catch_finger_depth, cppC[1] ];
-// prop recess in lid
-
-prl_r1 = prop_end_dia/2 + prop_recess_slop; // radius of end
-
-prlp1 = [ lpp10[0] + prop_recess_slop + prop_end_dia/2,
- lpp10[1] + prop_recess_slop + prop_end_dia/2 ];
+prop_recess_hw = 0.5 * prop_main_width + prop_side_gap;
-prcp2 = [ epp1[0], case_bottom_z ]; // protrusion corner
+prcp2 = [ epp4[0], case_bottom_z ];
-prc_r2 = prop_end_dia/2 + prop_recess_slop; // radius of end
+prop_caserecess_buildout_r = prcp2[0] - epp2o[0];
-prcp1_y = epp2o[1] - prop_recess_under - prc_r2;
-prcp2_x = prcp2[0] + prop_caserecess_behind + prc_r2 +
- (prcp1_y - case_bottom_z) * prop_caserecess_taper;
-prcp2 = [ prcp1_x, prcp1_y ]; // centre of tip circle
+prc_r1 = prop_end_dia/2;
+prc_r3 = prc_r1 + prop_recess_slop;
+echo(prc_r3);
-prop_recess_hw = 0.5 * prop_main_width + prop_side_gap;
-
-prop_caserecess_buildout_r = prcp2[0] - epp2o[0];
+prcp1 = [ prcp2[0] + prop_caserecess_behind + prc_r3,
+ epp2i[1] - prc_r3 ];
// ---------- modules ----------
// ---------- modules ----------
// hinge
HingePortion(hex20, hex21) HingeBaseProfile();
// hinge
HingePortion(hex20, hex21) HingeBaseProfile();
+
+ // buildout for prop recess
+ Flip_rhs(1)
+ linextr(case_bottom_z, epp2i[1])
+ hull() {
+ for (dxs = [-1,+1])
+ circleat([ prop_x_pos + dxs * prop_caserecess_buildout_r,
+ -epp2o[0] ],
+ r = epp2o[0] - prcp2[0]);
+ }
ButtonPlan($button_l, 1,1);
}
ButtonPlan($button_l, 1,1);
}
- // buildout for prop recess
- Flip_rhs(1)
- linextr(-case_th_bottom, epp2i)
- hull() {
- for (dxs = [-1,+1])
- circleat([ prop_x_pos + dxs * prop_caserecess_buildout_r,
- epp2o[0] ]);
- }
}
// apertures along top edge
}
// apertures along top edge
// prop recess
Flip_rhs(1)
// prop recess
Flip_rhs(1)
rotate([90,0,90])
linextr(-prop_recess_hw, +prop_recess_hw)
hull(){
for (zs=[ -1,0,+1 ])
circleat(prcp2 + 20*(abs(zs) * [0,-1] +
zs * [1,0] * prop_caserecess_taper),
rotate([90,0,90])
linextr(-prop_recess_hw, +prop_recess_hw)
hull(){
for (zs=[ -1,0,+1 ])
circleat(prcp2 + 20*(abs(zs) * [0,-1] +
zs * [1,0] * prop_caserecess_taper),