LDraw.org Discussion Forums

Full Version: My Technic math puzzle of the day
You're currently viewing a stripped down version of our content. View the full version with proper formatting.
I haven't posted one of these for a little while (because I've learned so much already from previous ones), but here's my latest Technic math puzzle, from the 8880 Supercar:

Consider the suspension assembly pictured. The blue control arm rotates around A, and the length of AB is 60. The gray liftarm rotates around C, and of course CD is also 60 (as is AC, for that matter). The radius around D is 9.

The shock absorber is connected at B and E. Also at B, there is a gray stopper piece, and this is locked together with the shock absorber to the axle at B.

The purpose of the stopper is to wedge the liftarm between it and the control arm. When this happens, point D would be 19 LDU (its radius of 9 plus half the width of the adjacent parts) along both the Y-axis of the control arm and the Z-axis of the stopper. This means that the control arm can't be raised any more, so there must be a minimum possible value for the angle at A. That's what I want to find.
[attachment=6942]
Right now I don't have enough values to solve the problem, because there are multiple possible solutions where D is 19 from both vectors. But eventually the length of the liftarm stops the assembly from closing any further, and I haven't worked out how to express this mathematically. I've got it "close enough" for now, with an approximate angle at A of 100.5°. But as always, I'm keen to know the precise answer, and the method to obtain it!
I evidently solved this problem with the 8880 in the OMR. Maybe you can look at that for clues?
(2021-10-07, 2:02)Orion Pobursky Wrote: [ -> ]I evidently solved this problem with the 8880 in the OMR. Maybe you can look at that for clues?

The OMR model keeps the control arms horizontal, so there's some collision between these parts. (For whatever reason, the IRL set has these parts to prevent just that arrangement—perhaps because they hadn't come out with the stiff shock absorbers yet?)
Really? I'm usually super diligent about avoiding collisions at all costs. This is why there's still an 8448 variant I haven't finished since the math gave me headaches.
(2021-10-07, 2:28)Orion Pobursky Wrote: [ -> ]Really? I'm usually super diligent about avoiding collisions at all costs. This is why there's still an 8448 variant I haven't finished since the math gave me headaches.

Just a bit smushed, yeah:
[attachment=6944]

I mean you'd never notice unless you went looking for it. Only thing I guess is that the real model can't be in this pose—but then again, I think a lot of people modded their kits so that it could be! Cool
(2021-10-07, 1:52)N. W. Perry Wrote: [ -> ]The radius around D is 9.
Note that IRL the radius of "modern" beam ends is closer to 9.2 ldu. For this old design, it's even larger, around 9.8 ldu.
(2021-10-07, 12:10)Philippe Hurbain Wrote: [ -> ]Note that IRL the radius of "modern" beam ends is closer to 9.2 ldu. For this old design, it's even larger, around 9.8 ldu.

Which would make the minimum angle of A even greater, no? But for my purposes it's fine to go by the modeled radius. Shouldn't change the math (whatever that is).
As far as I can tell when looking at the model IRL, the fact that the gray liftarm has divots in the side is critical to this working. The gray stopper piece that it slides by seems to only clear because of those divots. (It's hard to see for sure in the fully assembled model, and I'm not going to take mine apart to look.)

Note: I realize this doesn't answer your math question, but it changes the pertinent geometry that you're trying to figure out.
(2021-10-07, 23:40)Travis Cobbs Wrote: [ -> ]As far as I can tell when looking at the model IRL, the fact that the gray liftarm has divots in the side is critical to this working. The gray stopper piece that it slides by seems to only clear because of those divots. (It's hard to see for sure in the fully assembled model, and I'm not going to take mine apart to look.)

Note: I realize this doesn't answer your math question, but it changes the pertinent geometry that you're trying to figure out.

You're right, I noticed that even in the LDraw model, the stopper does actually notch into this divot. I figured (perhaps wrongly) that if I could work out the basic math, I could make adjustments to account for this.
(2021-10-07, 2:28)Orion Pobursky Wrote: [ -> ]Really? I'm usually super diligent about avoiding collisions at all costs. This is why there's still an 8448 variant I haven't finished since the math gave me headaches.

Same on my side. I never got the steering shaft with its universal joint calculated in the right way.
All rest of this car is finished.
(2021-10-07, 1:52)N. W. Perry Wrote: [ -> ][Image: attachment.php?aid=6942]
I think the key is in the ced triangle.

If you adjust it so e is parrallel to d distance to the shock center wise.

Like so:
[attachment=6949]

Then find the distance of E' to D, which leads to the angle at A

Not tested though.
(2021-10-08, 7:16)Roland Melkert Wrote: [ -> ]I think the key is in the ced triangle.

If you adjust it so e is parrallel to d distance to the shock center wise.

Like so:


Then find the distance of E' to D, which leads to the angle at A

Not tested though.

Trouble is, I don’t know the exact position of D relative to E’, only to AB or (local) y of B. A complication, of course, is that the shock is adjustable, so that length is not consistent.
(2021-10-08, 17:04)N. W. Perry Wrote: [ -> ]Trouble is, I don’t know the exact position of D relative to E’, only to AB or (local) y of B. A complication, of course, is that the shock is adjustable, so that length is not consistent.

I think you can get that because the lift arm is 9ldu from the axle hole, the shock has a radius of 10ldu, so E' is 1ldu off center.

Now using E.y and E.x+1 and the known position of C you have the lengths of CD and CE' which you can use to get the length of E'D (combine two triangles -> Pythagoras).

With a known E'D length you can get the E D length too, use this to make a new triangle out of E D and D', use that to get the length of D D' add the E.x to it and you have D.x, then you use the same triangle to get D.y

With a known D position you can make a triangle of A D B, spit it by the known 19ldu use the distance of A D and 19 to get the angle at A for this triangle.

Finally you can use AC and A A' to get the 'true' angle of A.

[attachment=6954]

Still untested, might be fun to make an animation of this to see it all move in order to test the values.

edit: made some corrections.
(2021-10-08, 18:34)Roland Melkert Wrote: [ -> ]Bunch of stuff

While trying to put this in lua I realized it won't work because you don't know the distance of A to the E'D vector (call it X).

Without that you can't split the AE'D triangle in two regular ones to get a combined length for E'D using Pythagoras

Somehow I was thinking that distance was fixed, but then the shock would be parallel to the Y axis Big Grin

Back to the drawing board it seems...
(2021-10-08, 21:35)Roland Melkert Wrote: [ -> ]While trying to put this in lua I realized it won't work because you don't know the distance of A to the E'D vector (call it X).

Without that you can't split the AE'D triangle in two regular ones to get a combined length for E'D using Pythagoras

Somehow I was thinking that distance was fixed, but then the shock would be parallel to the Y axis  Big Grin

Back to the drawing board it seems...

Right, and we don't know that distance partly because angle A could have multiple values that satisfy the equation. But there must be a minimum value—one where A can't get any smaller because then D would be less than 19 from the part axes. And the length (60) of CD must somehow be a property of that condition, mustn't it? (Because if CD were adjustable then A could continue to get smaller, but it isn't.)

I think you're on the right track with translating known points onto perpendicular vectors, but maybe it has to be based on the AB and y.B vectors? If those were perpendicular, we'd have enough known triangles to solve, I think.
Another element that’s probably important is that the BE is the hypotenuse of a triangle whose height is 20 (because of the offset shape of the shock absorber) and whose other leg is the B vector that D is perpendicular to. Unfortunately, all of those values except the 20 are variable.
(2021-10-07, 1:52)N. W. Perry Wrote: [ -> ]Consider the suspension assembly pictured.

I made an animation to help me visualize it, see attached zip.

Determining if the stop has gone to far is relatively easy.

So I'm thinking the solution to the main question is doable by writing the self contained formulas of the two values I compare in that test.

And then apply some substitution black magic on them to find the common angle value.

edit: minor correction (for the perfectionists)
Code:
applyColor(info.refStopper, p:getX(), {min=0, max=i:getX()-10, orgCol=7})
should be
Code:
applyColor(info.refStopper, p:getX(), {min=0, max=i:getX()-9, orgCol=7})
(2021-10-09, 20:28)Roland Melkert Wrote: [ -> ]I made an animation to help me visualize it, see attached zip.

Determining if the stop has gone to far is relatively easy.

So I'm thinking the solution to the main question is doable by writing the self contained formulas of the two values I compare in that test.

And then apply some substitution black magic on them to find the common angle value.

edit: minor correction (for the perfectionists)
Code:
applyColor(info.refStopper, p:getX(), {min=0, max=i:getX()-10, orgCol=7})
should be
Code:
applyColor(info.refStopper, p:getX(), {min=0, max=i:getX()-9, orgCol=7})

Now if I can just figure out how to extract those formulas. (You're going to have me learning lua whether I like it or not!) Tongue

EDIT:
Hmm, now that I watch the animation, I notice that, in fact, there are not multiple possible solutions where the distance to D is equal to 19—at least, none that are also within the constraints of the shock length. There is only one point where the liftarm touches both the control arm and the stopper piece; everywhere else, it touches only the control arm.
I made a diagram in GeoGebra in order to model this problem. I'm not sure it's possible in that program to include all the constraints I want (for example, I can't seem to lock the 90° angle of the shock absorber), so I had to go by successive approximation, and this is what I came up with, at three decimal places precision:
[attachment=6975]

That gives the angle as 101.115°, which is certainly precise enough for LDraw. Still just a tad unsatisfying, because I don't have a method, just a result…but it is at least a result.