diff --git a/model/fourbar.scad b/model/fourbar.scad index 3769381..aa8e814 100644 --- a/model/fourbar.scad +++ b/model/fourbar.scad @@ -34,21 +34,51 @@ module fourbar_leg(length=1000, chord=100, long_skew=30, lat_skew=30) { } -module fourbar_axle_half( length, chord) { - translate([0, 0, -120]) - rotate([82, 0, 180]) +module lower_knuckle(chord=100, pivot_radius=12) { + difference() { + cube([chord * 1.5, pivot_radius * 3, chord*.66]); + translate([ chord*0.25, -1, pivot_radius * 2]) + cube([chord, pivot_radius * 4, pivot_radius * 4]); + } +} + +module fourbar_axle_half( length, chord, long_skew) { + shoulder=650; + lat_skew=30; + rise=8; + + // I've got something wrong in computing the half-lower-bar + // length, and I don't know what. + fudge=0; + + w = ((length * sin(lat_skew) ) + ( shoulder / 2)); + l_hlb= w * (1/cos(rise)) + fudge; + v_offset=l_hlb * sin(rise); + + echo("long_skew", long_skew); + + translate([0, 0, 0 - v_offset]) + rotate([90-rise, 0, 180]) color("black") - airfoil(h=length, L=chord); + airfoil(h=l_hlb, L=chord); // lower knuckle - translate([-chord, length, -60]) + translate([(0 - (chord*1.25)), l_hlb * cos(rise), 30]) + rotate([0, long_skew, 0]) color("black") - cube([chord, chord/4, chord/2]); + lower_knuckle(chord, 12); // wheel - translate([0, length + 50, -50]) + translate([-50, l_hlb + 72, -40]) rotate([270, 0, 0]) - wheel(iso=451); + wheel(iso=451); + + // brake disk + translate([-50, l_hlb + 35, -40]) + color("silver") + rotate([90, 0, 0]) + cylinder(h=1.5, r=75); + // brake caliper } @@ -64,11 +94,12 @@ module fourbar(length=1000, chord=100, long_skew=30, lat_skew=30, shoulder=650) mirror([0, 1, 0]) fourbar_leg(length, chord, long_skew, lat_skew); - fourbar_axle_half(w, chord); + fourbar_axle_half(w, chord, long_skew); mirror([0, 1, 0]) - fourbar_axle_half(w, chord); + fourbar_axle_half(w, chord, long_skew); } - -// fourbar(); \ No newline at end of file +// lower_knuckle(); +// fourbar(); +// fourbar_axle_half(1000,100, 30); \ No newline at end of file diff --git a/model/hull.scad b/model/hull.scad index c5677cb..7ab94cc 100644 --- a/model/hull.scad +++ b/model/hull.scad @@ -36,7 +36,7 @@ module hull() { intersection() { translate([1850,0,500]) rotate([180, 90, 0]) - scale([20, 15.5, 15.5]) + scale([20, 17.5, 15.5]) rotate_extrude() import("library/hull-volume-of-rotation.svg"); @@ -52,12 +52,12 @@ module hull() { difference() { skin( [ellipse($fn=64,r=[350,30]), - ellipse($fn=64,r=[430,340])], + ellipse($fn=64,r=[430,372])], z=[0,1200], slices=40,sampling="length",method="reindex"); skin( [ellipse($fn=64,r=[344,24]), - ellipse($fn=64,r=[424,334])], + ellipse($fn=64,r=[424,366])], z=[-1,1201], slices=40,sampling="length",method="reindex"); } diff --git a/model/tricycle.scad b/model/tricycle.scad index 73fd9f9..b05b4f7 100644 --- a/model/tricycle.scad +++ b/model/tricycle.scad @@ -16,15 +16,6 @@ fourbar(700, 100, 30, 35, 650); translate([800, 0, 120]) rotate([0, 4, 0]) -color("forestgreen") +color("darkolivegreen") hull(); -/* -prop=0.1; -seat_ang=0; -leg_ang=0; -left_fold=0; -head_ang=0; -leg_prop=0.5; - -vRider(prop, seat_ang, leg_ang, left_fold, head_ang, leg_prop);*/ \ No newline at end of file