chiark
/
gitweb
/
~ianmdlvl
/
reprap-play.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
fairphone-case: bugfix from mk1: fit button cover clearance with keepers
[reprap-play.git]
/
pull-cord-keeper.scad
diff --git
a/pull-cord-keeper.scad
b/pull-cord-keeper.scad
index 39b063ddacad0bb1c08197d3a7fd11bd62916ed4..c8655c9842f942882addc05c8ce758eccbd62858 100644
(file)
--- a/
pull-cord-keeper.scad
+++ b/
pull-cord-keeper.scad
@@
-11,6
+11,8
@@
blockwidth = hcentredist*2 + 6;
height = 20;
height = 20;
+roundedgedia = 7.5;
+
ziglen = hcentredist/2;
feedxgap = 5;
ziglen = hcentredist/2;
feedxgap = 5;
@@
-20,8
+22,12
@@
ribsgap = 1;
ribdepth = 3;
ribheight = 4;
ribdepth = 3;
ribheight = 4;
+backxgap = 1;
+
blockoverlapcnr = 5;
blockoverlapcnr = 5;
+screwholedia = 4 + 0.5;
+
module Oval(centredist, rad) {
hull() {
translate([-centredist/2,0,0]) circle(r=rad);
module Oval(centredist, rad) {
hull() {
translate([-centredist/2,0,0]) circle(r=rad);
@@
-29,10
+35,20
@@
module Oval(centredist, rad) {
}
}
}
}
+module VExtrude(){
+ translate([0,0, -height/2])
+ linear_extrude(height=20)
+ children(0);
+}
+
+module OuterOval(){
+ Oval(hcentredist, houterrad);
+}
+
module Hoop(){
difference(){
hull(){
module Hoop(){
difference(){
hull(){
- O
val(hcentredist, houterrad
);
+ O
uterOval(
);
translate([0, (blockdepth + hoopthick)/2 + hinnerrad])
square([blockwidth,
blockdepth + hoopthick],
translate([0, (blockdepth + hoopthick)/2 + hinnerrad])
square([blockwidth,
blockdepth + hoopthick],
@@
-42,10
+58,36
@@
module Hoop(){
}
}
}
}
+module RoundEdges(){
+ intersection(){
+ VExtrude()
+ OuterOval();
+
+ for (xi=[-1,1]) {
+ hull(){
+ for (yi=[-1,1]) {
+ translate([xi * (hcentredist/2 + hinnerrad),
+ houterrad,
+ yi * (height/2 - roundedgedia / 4 * sqrt(2))])
+ rotate([90,0,0])
+ cylinder(r=roundedgedia/2, h=houterrad*2, $fn=20);
+ }
+ }
+ }
+ }
+}
+
module Positive(){
module Positive(){
- translate([0,0, -height/2])
- linear_extrude(height=20)
- Hoop();
+ difference(){
+ VExtrude()
+ Hoop();
+
+ rotate([90,0,0])
+ translate([0,0,-50])
+ cylinder(r=screwholedia/2, h=100);
+ }
+
+ RoundEdges();
}
module Ribs(){
}
module Ribs(){
@@
-64,20
+106,26
@@
module Ribs(){
}
}
}
}
-module Division(biggerpi) {
- xgap = feedxgap * biggerpi;
- zgap = feedzgap * biggerpi;
-
+module Division(cutmore) {
mirror([0,0,1]) {
mirror([0,0,1]) {
- translate([0, 0,
zgap/2 * (1 - 2*biggerpi)
]) {
- translate([-ziglen + xgap/2, -100, 0])
+ translate([0, 0,
-cutmore*feedzgap/2
]) {
+ translate([-ziglen +
-cutmore*feed
xgap/2, -100, 0])
cube([100, 100, 50]);
}
}
cube([100, 100, 50]);
}
}
- translate([blockwidth/2 - blockoverlapcnr, -50, -50])
+ translate([blockwidth/2 - blockoverlapcnr + -cutmore*backxgap/2,
+ -1,
+ -50])
cube([100, 100, 100]);
cube([100, 100, 100]);
- translate([50, houterrad + blockdepth/2 + ribsgap * biggerpi, 0])
+ translate([ziglen + -cutmore*feedxgap/2,
+ -50,
+ -50])
+ cube([100, 51, 100]);
+
+ translate([50,
+ hinnerrad/2 + houterrad/2 + blockdepth/2 + -cutmore*ribsgap/2,
+ 0])
rotate([-90,0,90])
linear_extrude(height=100)
Ribs();
rotate([-90,0,90])
linear_extrude(height=100)
Ribs();
@@
-88,33
+136,54
@@
module SDemo(){
% Positive();
// Division(0);
//}
% Positive();
// Division(0);
//}
- Division(
0
);
+ Division(
-1
);
}
module A(){
difference(){
Positive();
}
module A(){
difference(){
Positive();
- Division(1);
+ Division(
+
1);
}
}
module B(){
intersection(){
Positive();
}
}
module B(){
intersection(){
Positive();
- Division(
0
);
+ Division(
-1
);
}
}
module Demo(){
color("red") A();
}
}
module Demo(){
color("red") A();
-// color("blue") B();
+ color("blue") B();
+}
+
+module APrint(){ ////toplevel
+ rotate([0,180,0])
+ A();
+}
+
+module BPrint(){ ////toplevel
+ B();
+}
+
+module Kit(){ ////toplevel
+ translate([0, hinnerrad, 0])
+ APrint();
+ rotate([0,0,180])
+ BPrint();
}
//Ribs();
//Demo();
//A();
}
//Ribs();
//Demo();
//A();
-B();
-%Division(0);
+//B();
+//%Division(+1);
+
+//Hoop();
//Demo();
//Demo();
+//BPrint();
+
+//Kit();