chiark / gitweb /
scaffold-clamp-cleat: wip, reorg nfc
[reprap-play.git] / bike-phone-mount.scad
index 8f2cf66ef37f5712abad577ae3574964a0432511..bb69726c80af237ef0afaadd58b87a2600bf8d6c 100644 (file)
@@ -4,11 +4,14 @@
 
 include <utils.scad>
 
-mount_lip_height = 2.0 - 0.15;
+mount_lip_height = 2.0 - 0.15 - 0.15;
 mount_lip_depth = 2.5 /*?*/ - 0.30;
-mount_neck_width = 26.5 - 0.55;
+mount_neck_width = 26.5 - 0.55 - 0.15;
 mount_neck_length = 1.5 + 0.50;
 
+mount_diag_outer = 34.8        - 0.50;
+mount_diag_inner = 34.6 - 0.20 - 0.50;
+
 mount_slope = .65;
 mount_extra_slope = 3;
 
@@ -30,7 +33,7 @@ mount_total_height = mnep2[1] - mnep6[1];
 mnep_z_offset = -mnep2[1];
 mnep_side_offset = [ mount_neck_width/2, mnep_z_offset ];
 
-module NeckEdgePlan() {
+module MountNeckEdgePlan() {
   polygon([ mnep0,
            mnep1,
            mnep2,
@@ -41,13 +44,13 @@ module NeckEdgePlan() {
            mnep7 ]);
 }
 
-module Neck() {
+module MountNeckSquare() {
   intersection_for (r=[0,90]) {
     rotate([0,0,r]){
       linextr_y_xz(-100,100,convexity=10){
        for (m=[0,1]) {
          mirror([m,0]) {
-           translate(mnep_side_offset) NeckEdgePlan();
+           translate(mnep_side_offset) MountNeckEdgePlan();
            rectfromto([-0.1, -mount_total_height],
                       mnep_side_offset + mnepm);
          }
@@ -57,7 +60,21 @@ module Neck() {
   }
 }
 
-module DemoCeil() {
+module MountDiagonal() {
+  rotate([0,0,45]){
+    translate([0,0, -mount_total_height]){
+      linextr(0, mount_lip_height)
+       square(center=true, mount_diag_outer);
+      linextr(0, mount_total_height)
+       square(center=true, mount_diag_inner);
+      linextr(mount_lip_height + mount_neck_length,
+             mount_total_height + 1)
+       square(center=true, 100);
+    }
+  }
+}
+
+module MountDemoCeil() {
   c = mount_demo_ceil + mount_extra_slope;
   linextr(0, 0.8) {
     square(mount_neck_width + 2*(mount_demo_ceil + mount_extra_slope),
@@ -65,12 +82,20 @@ module DemoCeil() {
   }
 }
 
-module Demo(){
-  Neck();
-  DemoCeil();
+module Mount(){
+  intersection(){
+    MountNeckSquare();
+    MountDiagonal();
+  }
+}
+
+module MountDemo(){ ////toplevel
+  Mount();
+  MountDemoCeil();
 }
 
-//NeckEdgePlan();
-//Neck();
-//DemoCeil();
-Demo();
+//MountNeckEdgePlan();
+//MountNeck();
+//MountDemoCeil();
+//MountDiagonal();
+//MountDemo();