Work (not yet completed) on the lower knuckles of the four bar linkage.
This commit is contained in:
parent
1befca0a60
commit
025575a488
|
@ -34,21 +34,51 @@ module fourbar_leg(length=1000, chord=100, long_skew=30, lat_skew=30) {
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
module fourbar_axle_half( length, chord) {
|
module lower_knuckle(chord=100, pivot_radius=12) {
|
||||||
translate([0, 0, -120])
|
difference() {
|
||||||
rotate([82, 0, 180])
|
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")
|
color("black")
|
||||||
airfoil(h=length, L=chord);
|
airfoil(h=l_hlb, L=chord);
|
||||||
|
|
||||||
// lower knuckle
|
// lower knuckle
|
||||||
translate([-chord, length, -60])
|
translate([(0 - (chord*1.25)), l_hlb * cos(rise), 30])
|
||||||
|
rotate([0, long_skew, 0])
|
||||||
color("black")
|
color("black")
|
||||||
cube([chord, chord/4, chord/2]);
|
lower_knuckle(chord, 12);
|
||||||
|
|
||||||
// wheel
|
// wheel
|
||||||
translate([0, length + 50, -50])
|
translate([-50, l_hlb + 72, -40])
|
||||||
rotate([270, 0, 0])
|
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])
|
mirror([0, 1, 0])
|
||||||
fourbar_leg(length, chord, long_skew, lat_skew);
|
fourbar_leg(length, chord, long_skew, lat_skew);
|
||||||
|
|
||||||
fourbar_axle_half(w, chord);
|
fourbar_axle_half(w, chord, long_skew);
|
||||||
|
|
||||||
mirror([0, 1, 0])
|
mirror([0, 1, 0])
|
||||||
fourbar_axle_half(w, chord);
|
fourbar_axle_half(w, chord, long_skew);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// lower_knuckle();
|
||||||
// fourbar();
|
// fourbar();
|
||||||
|
// fourbar_axle_half(1000,100, 30);
|
|
@ -36,7 +36,7 @@ module hull() {
|
||||||
intersection() {
|
intersection() {
|
||||||
translate([1850,0,500])
|
translate([1850,0,500])
|
||||||
rotate([180, 90, 0])
|
rotate([180, 90, 0])
|
||||||
scale([20, 15.5, 15.5])
|
scale([20, 17.5, 15.5])
|
||||||
rotate_extrude()
|
rotate_extrude()
|
||||||
import("library/hull-volume-of-rotation.svg");
|
import("library/hull-volume-of-rotation.svg");
|
||||||
|
|
||||||
|
@ -52,12 +52,12 @@ module hull() {
|
||||||
difference() {
|
difference() {
|
||||||
skin(
|
skin(
|
||||||
[ellipse($fn=64,r=[350,30]),
|
[ellipse($fn=64,r=[350,30]),
|
||||||
ellipse($fn=64,r=[430,340])],
|
ellipse($fn=64,r=[430,372])],
|
||||||
z=[0,1200],
|
z=[0,1200],
|
||||||
slices=40,sampling="length",method="reindex");
|
slices=40,sampling="length",method="reindex");
|
||||||
skin(
|
skin(
|
||||||
[ellipse($fn=64,r=[344,24]),
|
[ellipse($fn=64,r=[344,24]),
|
||||||
ellipse($fn=64,r=[424,334])],
|
ellipse($fn=64,r=[424,366])],
|
||||||
z=[-1,1201],
|
z=[-1,1201],
|
||||||
slices=40,sampling="length",method="reindex");
|
slices=40,sampling="length",method="reindex");
|
||||||
}
|
}
|
||||||
|
|
|
@ -16,15 +16,6 @@ fourbar(700, 100, 30, 35, 650);
|
||||||
|
|
||||||
translate([800, 0, 120])
|
translate([800, 0, 120])
|
||||||
rotate([0, 4, 0])
|
rotate([0, 4, 0])
|
||||||
color("forestgreen")
|
color("darkolivegreen")
|
||||||
hull();
|
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);*/
|
|
Loading…
Reference in a new issue