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=954045160d9bb05dc8d68d3fc5a8695b85e8a9f0;hb=9ffd4381b8d5ce1b473fd5e6078d654c609d6111;hpb=eb9d41668b8c26d63a1d0adf67099e8027baa596 diff --git a/topeak-seatstay-lock.scad b/topeak-seatstay-lock.scad index 9540451..072a557 100644 --- a/topeak-seatstay-lock.scad +++ b/topeak-seatstay-lock.scad @@ -22,12 +22,17 @@ lock_manouvre_len_smaller = 13; body_depth_each = 5; clatter_gap = 0.5; +roof_extent = 7; +roof_thick = 2; + // fudgeish cut_rotation = 2; holes_rotation = 9; -pin_offset = 6; +pin_y_offset = 5.5; +pin_x_offset = 0.5; ridge_rotation = 8.5; +lock_hang_ratio = 7; // computed @@ -64,33 +69,40 @@ 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(); + } } } } module Pin(){ - translate([0, pin_offset, 0]) rotate([0,90,0]){ + translate([pin_x_offset, pin_y_offset, 0]) rotate([0,90,0]){ translate([0, 0, -pin_thick/2]) linear_extrude(height=pin_thick){ translate([-pin_base/2, 0]) square([pin_base, 50]); 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]); } } @@ -110,11 +122,14 @@ module Piece(pc,interval){ } } +module PiecePrint(pc){ + rotate([0,0,90]) rotate([0,180,0]) + Piece(pc,4); +} + module PiecesPrint(){ - rotate([0,180,0]) - for (pc=[0,1]){ - Piece(pc,4); - } + PiecePrint(0); + PiecePrint(1); } module Demo(){ @@ -128,3 +143,5 @@ module Demo(){ //Pin(); //Pieces(); PiecesPrint(); +//PiecePrint(0); +//PiecePrint(1);