X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?p=reprap-play.git;a=blobdiff_plain;f=topeak-seatstay-lock.scad;h=072a55769e298641432b12df9db8d3a6781d0fc5;hp=f854e59413b53ce4b16cce983c7b431e754ad0f2;hb=9b3087a6117d4143978dad2af8901be6de9bcd15;hpb=8b07a6d5a83e94bfdbf3a2e24f538e92e279eb22 diff --git a/topeak-seatstay-lock.scad b/topeak-seatstay-lock.scad index f854e59..072a557 100644 --- a/topeak-seatstay-lock.scad +++ b/topeak-seatstay-lock.scad @@ -22,6 +22,9 @@ lock_manouvre_len_smaller = 13; body_depth_each = 5; clatter_gap = 0.5; +roof_extent = 7; +roof_thick = 2; + // fudgeish cut_rotation = 2; @@ -29,6 +32,7 @@ holes_rotation = 9; pin_y_offset = 5.5; pin_x_offset = 0.5; ridge_rotation = 8.5; +lock_hang_ratio = 7; // computed @@ -65,11 +69,21 @@ module BodyPlan(){ } module Body(){ - translate([0,0,-body_depth/2]) + translate([0,0,body_depth/2])mirror([0,0,1]){ linear_extrude(height=body_depth){ - difference(){ - BodyPlan(); - Holes(); + difference(){ + BodyPlan(); + Holes(); + } + } + linear_extrude(height=roof_thick){ + difference(){ + hull(){ + BodyPlan(); + translate([0,-roof_extent,0]) BodyPlan(); + } + Holes(); + } } } } @@ -82,16 +96,13 @@ module Pin(){ translate([-pin_width/2, -100]) square([pin_width, 101]); } hull() for (d=[0,10]) { - translate([d*2,-d,0]) + translate([d*lock_hang_ratio,-d,0]) translate([-lock_manouvre_thick/2, -pin_workdepth-100, -lock_manouvre_len_smaller]) cube([lock_manouvre_thick, 100, lock_manouvre_len + lock_manouvre_len_smaller]); } - translate([-lock_manouvre_thick/2, -pin_workdepth-50, - -lock_hang_width/2]) - cube([50, 50, lock_hang_width]); } } @@ -112,14 +123,13 @@ module Piece(pc,interval){ } module PiecePrint(pc){ - rotate([0,180,0]) + rotate([0,0,90]) rotate([0,180,0]) Piece(pc,4); } -module PiecesPrint(pcs=[0,1]){ - for (pc=pcs){ - PiecePrint(); - } +module PiecesPrint(){ + PiecePrint(0); + PiecePrint(1); } module Demo(){