X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=blobdiff_plain;ds=sidebyside;f=topeak-seatstay-lock.scad;h=8d5323820583e37799b50534d79d7edfa033b571;hb=d51e2c0f88ec1f73d15be824374b306f86b5a5a7;hp=9bb5238f3e3f2f738dedd429b5f8dbc56cddbe32;hpb=a885964ed9296e6b91a7ee68d0459f31ca2503a8;p=reprap-play.git diff --git a/topeak-seatstay-lock.scad b/topeak-seatstay-lock.scad index 9bb5238..8d53238 100644 --- a/topeak-seatstay-lock.scad +++ b/topeak-seatstay-lock.scad @@ -1,8 +1,8 @@ // -*- C -*- -pump_dia = 27; -seatstay_mindia = 14; -seatstay_maxdia = 19; +pump_dia = 27 + 0.5; +seatstay_mindia = 14 + 0.5; +seatstay_maxdia = 19 + 0.5; pump_seatstay_gap = 12.3; pump_seatstay_delta = 0.1; @@ -11,20 +11,26 @@ body_thick_y = 5; pin_workdepth = 16; pin_width = 11 + 0.5; -pin_thick = 3 + 0.4; +pin_thick = 3 + 0.6; pin_base = 25; lock_manouvre_thick = 3.5 + 0.5; lock_manouvre_len = 18; +lock_hang_width = 17.5; +lock_manouvre_len_smaller = 13; + +body_depth_each = 5; +clatter_gap = 0.5; // fudgeish +cut_rotation = 2; holes_rotation = 9; -pin_offset = 2; +pin_offset = 7; // computed -body_depth = pin_width + 8; +body_depth = pin_width + body_depth_each*2; module Holes(){ translate([0, -pump_dia/2]); @@ -68,16 +74,20 @@ module Pin(){ translate([-pin_base/2, 0]) square([pin_base, 50]); translate([-pin_width/2, -100]) square([pin_width, 101]); } - translate([-lock_manouvre_thick/2, -pin_workdepth-100, -lock_manouvre_len]) - cube([lock_manouvre_thick, 100, lock_manouvre_len*2]); + hull() for (d=[0,10]) { + translate([d*2,-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]); } } -module Demo(){ - %Body(); - Pin(); -} - module All(){ difference(){ Body(); @@ -85,5 +95,30 @@ module All(){ } } -Demo(); +module Piece(pc,interval){ + translate([0,-pc*interval,0]) + intersection(){ + rotate([0,0,pc*180-cut_rotation]) + translate([-200,clatter_gap/2,-200]) cube([400,400,400]); + All(); + } +} + +module PiecesPrint(){ + rotate([0,180,0]) + for (pc=[0,1]){ + Piece(pc,4); + } +} + +module Demo(){ + for (pc=[0,1]) + Piece(pc,0); +} + +//Holes(); +//Demo(); //All(); +//Pin(); +//Pieces(); +PiecesPrint();