summary |
shortlog |
log |
commit | commitdiff |
tree
raw |
patch |
inline | side by side (from parent 1:
ff1976f)
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
stride_z = hinge_unit*2 + hinge_z_gap*2;
total_z = hinge_units * stride_z - hinge_z_gap;
stride_z = hinge_unit*2 + hinge_z_gap*2;
total_z = hinge_units * stride_z - hinge_z_gap;
+pin_flatten = pin_dia/2 * (1 - cos(45));
+
+module MainPlan(flatten=false) {
difference(){
offset(r=-smooth_r) offset(delta=smooth_r)
union(){
difference(){
offset(r=-smooth_r) offset(delta=smooth_r)
union(){
circle(r = tube_dia/2);
rectfromto([0, -open_gap/2],
[max_x+1, +open_gap/2]);
circle(r = tube_dia/2);
rectfromto([0, -open_gap/2],
[max_x+1, +open_gap/2]);
- translate([hinge_x, 0]) circle(r= hole_dia/2);
+ translate([hinge_x, 0]) {
+ intersection(){
+ circle(r= hole_dia/2);
+ if (flatten)
+ translate([ pin_flatten, 0 ])
+ square(center=true, [hole_dia, hole_dia + 1]);
+ }
+ }
[max_x+10, -(tube_dia/2+th+10)]);
}
[max_x+10, -(tube_dia/2+th+10)]);
}
+module MainPlanA(flatten){
+module MainPlanB(flatten){
-module HalfClamp(){ ////toplevel
- linextr(0, total_z) mirror([0,1]) MainPlanB();
- for (i=[0 : hinge_units-1]) {
- translate([0,0, stride_z*i])
- linextr(0, hinge_unit) MainPlanA();
+module HalfClampX(flatten){
+ translate([0,0, -total_z/2]) {
+ linextr(0, total_z) mirror([0,1]) MainPlanB();
+ for (i=[0 : hinge_units-1]) {
+ translate([0,0, stride_z*i])
+ linextr(0, hinge_unit) MainPlanA(flatten);
+ }
+module HalfClampA() { HalfClampX(false); }
+module HalfClampB() { rotate([180,0,0]) HalfClampX(true); }
+
module PlanDemo(){ ////toplevel
MainPlan();
translate([0,0,-4]) color("red") Portion(1);
module PlanDemo(){ ////toplevel
MainPlan();
translate([0,0,-4]) color("red") Portion(1);
// translate([max_x - hinge_x + 20, 0]) color("blue") MainPlanA();
}
// translate([max_x - hinge_x + 20, 0]) color("blue") MainPlanA();
}
+module Demo(){ ////toplevel
+ color("red") HalfClampA();
+ color("blue") HalfClampB();
+}
+
//PlanDemo();
//HalfClamp();
//PlanDemo();
//HalfClamp();