Tough geometry problem?

I'm hoping that someone can look at this and have an "ah ha" moment and an elegant solution, but I'm making a simple sliding panel/door, the cross section is shown in the picture. What is the greatest height (L in the picture) that the door can have such that it can be removed from the frame?

oyubir2017-07-25T01:44:47Z

Favorite Answer

That is awfully complicated.

Play here : http://ayalti.info/vrac/doorProblem.html

You must consider several phases. I just deal with the first one, just to show how complicated it is. But, the same should be done with other phases.
The first phase is when both bottom corner are still over the h₂ hole (so that gap is not used at all, for now)

The picture shows the very end of this phase. Before that (before the end of this phase) the lowest corner of the red rectangle is somewhere more on the left.

If you introduce 2 new variables, x and y
(as show in the picture. In the picture, x is w₁ because of what follows),
you can define 2 constraints,

1st ; the top corner must not be higher than the top of the h₁ hole.
So the total ΔY = y+e₃ (I mean the height from the lowest to the highest corner of the rotated rectangle) must be less than d-h₂
This height is
y + (x/L)*w₂
(x/L) is the sinus of the angle of the red door with the vertical. Which is also the angle of the top border with the horizontal. So the extra-length of the red rectangle, e₃, is w₂×(x/L) (since my picture show an extreme case, w₂(x/L) is the distance between the dashed line and the top of h₁ hole)

Hence the total height of the red rectangle: y + (x/L)*w₂
Hence the first constraint: y + (x/L)*w₂ < d-h₂


2nd) the bottom of the h₁ hole must not touch the door.
That is, at the level of the bottom of the top hole, the total "width" of the door must be lower than w₁

This width is: the with of the white rectangle triangle (the closed space, on top right, between the red door and the frame) + the extra width due to the angle of the door while exiting h₁
The first one (let's call it e₁ temporarily) is given by pythagore:
e₁² + ((x/L)*w₂)² = w₂²
e₁² = w₂²(1-x²/L²)
e₁ = w₂√(1-x²/L²)

The second with is e₂ = h₁ × (x/L) / √(1-x²/L²)
(Note: x/L is the sinus of the angle. √(1-x²/L²) the cosinus. And (x/L) / √(1-x²/L²) = x/√(L²-x²) the tangente.
So, what I wrote here is e₁ = w₂cosθ, e₂=h₁tanθ)

So the second constraint is
e₁+e₂<w₁ ⇒ w₂√(1-x²/L²) + h1*x/√(L²-x²) < w₁

The is a solution (for the first phase), if you can find a trajectory (x(t), y(t)) that respect those 2 constraint ∀t.
Since x, for example, has to go at least from L to w₁ (in the first phase), another way to say it is that there is a solution if you can find a continuous y(x) such as (x, y(x)) respect those two constraints, ∀x>w₁


Let's deal only with the first constraint.

Fortunately, you can demonstrate that, when x varies, the constraint is the most severe when x=w₁
(I do not want to play "Fermat style", but I've done it on paper. Just compute the derivative and you see that the maximum is when x is somewhere between 0 and w₁, which will not happen, at least not in this phase. That is rather natural for most people anyway, but all that is natural is not true, so I wanted to check. ).

Hence the reason why I've chosen this extreme case in my picture. That picture illustrate the maximum case for this constraint in this phase. So if you can pass this case, you the first constraint is ok ∀ x>w₁

So, in this extreme case, x=w₁. And y is such as y²+x²=L² ⇒ y²=L²-x²=L²-w₁²
Which leads to the constraint
√(L²-w₁²) + w₁w₂/L < d-h₂

You can transform this into a 4th degree polynomial equation
L√(L²-w₁²) + w₁w₂ < (d-h₂)L
L√(L²-w₁²) < (d-h₂)L - w₁w₂. Both sides are obviously positive so
L²(L²-w₁²) < (d-h₂)²L² + w₁²w₂² - 2w₁w₂(d-h₂)L

And there must stop the formal computation. I have done it with maxima: the expression exist. But it is to big to be displayed as an image. The maxima code of one of the bounds is:
sqrt\( (12*d1*w1*w2) / (sqrt\((d1^4 + 2*d1^2*w1^2 + w1^4 - 12*w1^2*w2^2 + (6*w1^2 + 6*d1^2)*
((2*w1^2*w2*sqrt(16*w1^2*w2^4 + (-d1^4 - 20*d1^2*w1^2 + 8*w1^4)*w2^2 + w1^6 + 3*d1^2*w1^4 + 3*d1^4*w1^2 + d1^6))/3^(3/2) - (d1^6 + 3*d1^4*w1^2 + w1^6 + 36*w1^4*w2^2 + d1^2*(3*w1^4 - 18*w1^2*w2^2))/27)^(1/3) + 9*
((2*w1^2*w2*sqrt(16*w1^2*w2^4 + (-d1^4-20*d1^2*w1^2 + 8*w1^4)*w2^2 + w1^6 + 3*d1^2*w1^4 + 3*d1^4*w1^2 + d1^6))/3^(3/2)-(d1^6 + 3*d1^4*w1^2 + w1^6 + 36*w1^4*w2^2 + d1^2*(3*w1^4-18*w1^2*w2^2))/27)^(2/3))/(
((2*w1^2*w2*sqrt(16*w1^2*w2^4 + (-d1^4-20*d1^2*w1^2+8*w1^4)*w2^2 + w1^6 + 3*d1^2*w1^4 + 3*d1^4*w1^2 + d1^6))/3^(3/2)-(d1^6 + 3*d1^4*w1^2 + w1^6 + 36*w1^4*w2^2 + d1^2*(3*w1^4 - 18*w1^2*w2^2))/27)^(1/3)))) -
((2*w1^2*w2*sqrt(16*w1^2*w2^4 + (-d1^4 - 20*d1^2*w1^2 + 8*w1^4)*w2^2 + w1^6 + 3*d1^2*w1^4 + 3*d1^4*w1^2 + d1^6))/3^(3/2)-(d1^6 + 3*d1^4*w1^2 + w1^6 + 36*w1^4*w2^2 + d1^2*(3*w1^4 - 18*w1^2*w2^2))/27)^(1/3) -
(d1^4 + 2*d1^2*w1^2 + w1^4 - 12*w1^2*w2^2) / (9*((2*w1^2*w2*sqrt(16*w1^2*w2^4 + (-d1^4 - 20*d1^2*w1^2 + 8*w1^4)*w2^2 + w1^6 + 3*d1^2*w1^4 + 3*d1^4*w1^2 + d1^6))/3^(3/2) -
(d1^6 + 3*d1^4*w1^2 + w1^6 + 36*w1^4*w2^2 + d1^2*(3*w1^4 - 18*w1^2*w2^2))/27)^(1/3)) +(d1^2 + w1^2)/3 + w1^2 + d1^2))/(2)-(sqrt\((d1^4 + 2*d1^2*w1^2 + w1^4-12*w1^2*w2^2 +
(6*w1^2 + 6*d1^2) * ((2*w1^2*w2*sqrt(16*w1^2*w2^4 + (-d1^4 - 20*d1^2*w1^2 + 8*w1^4)*w2^2 + w1^6 + 3*d1^2*w1^4 + 3*d1^4*w1^2 + d1^6))/3^(3/2)-(d1^6 + 3*d1^4*w1^2 + w1^6 + 36*w1^4*w2^2 + d1^2*(3*w1^4 - 18*w1^2*w2^2))/27)^(1/3) + 9*
((2*w1^2*w2*sqrt(16*w1^2*w2^4 + (-d1^4-20*d1^2*w1^2 + 8*w1^4)*w2^2 + w1^6 + 3*d1^2*w1^4 + 3*d1^4*w1^2 + d1^6))/3^(3/2)-(d1^6 + 3*d1^4*w1^2 + w1^6 + 36*w1^4*w2^2 + d1^2*(3*w1^4 - 18*w1^2*w2^2))/27)^(2/3)) / (
((2*w1^2*w2*sqrt(16*w1^2*w2^4 + (-d1^4-20*d1^2*w1^2 + 8*w1^4)*w2^2 + w1^6 + 3*d1^2*w1^4 + 3*d1^4*w1^2 + d1^6))/3^(3/2)-(d1^6 + 3*d1^4*w1^2 + w1^6 + 36*w1^4*w2^2 + d1^2*(3*w1^4-18*w1^2*w2^2))/27)^(1/3))))/(6

and it was truncated by the cut&paste (so it is longer than that).

And that was only the simplest of the 2 constraints of the first phase.


Was is left to do is
*) Find what is the worse case for the constraint
w₂√(1-x²/L²) + h1*x/√(L²-x²) < w₁
(that is finding the maximum of function x→w₂√(1-x²/L²) + h1*x/√(L²-x²)
*) Replace x by this maximum, to express the worse 2nd constraint
*) Solve the expression for L
*) Merge the two constraint (the 1st one gives 1 upper bound for L. This one gives another one. The maximum possible L is the less of those 2 upper bounds).
*) Then continue to the second phase, where x is < w₁, but the lower left corner is still not in the bottom hole. That when is x<w₁ and x > w₁-(y/L)*w₂. I suspect that you can demonstrate that this phase is always easier than the first one. That is that you can ignore it. But there again, you never know.


So, in short: it is simple in a way (only a few Pythagore and Thales to apply. Or some trigonometry, if you rather manipulate angles θ, sinθ = x/L.
But with a few combination of those simples equation, you get to solutions that are really not easy at all to write formally.
Thought, it would be really easy to do with numerical values.

EDIT:
Since I find this fun, I've built a simulator to solve the problem. It is using a RPG to kill a fly, but it is funny.

http://ayalti.info/vrac/doorProblem.html

The first line of parameters is what you must fill: d, w1, w2, h1, h2.
You can play with x, y, L to see what happens. But that is not the point.
The point is to use the "sim" button, that will start from x=d to x=L (x having the same meaning as in the drawing). And try to place the door at best for the bottom-right and top-right corners.
And then check numerically the 2 constraints. And decrease L as long as one of the constraint is not OK.
At the end it gives you L.

1/dx is the precision parameter. The higher it is, the more acurate are the results.
speed is the inverse of the display frequency (speed=1 means that all computation are displayed. speed=100 means that only 1 every 100 computations are displayed).
Since the display is was take the more CPU, for fun, the best settings are a low precision (say 1/dx 1000) and a high frequency display (speed=1). But to have results, the best is to do the reverse: high precision (1/x=1000000) but low frequency display (speed=10000)
Or even speed=1000000 if you don't care at all about the display.

I've filled by default the simulator with your parameters. Which gives the answer you are looking for: 12.995
(Which is correct, since the door is still larger than d-h₁. Most parameters I've used to test the simulator were dummy, and lead to a situation where L<d-h₁, that is, the door falls)


Note that it is a little bit stupid to solve the problem that way. What I've computed yesterday (my first answer) was sufficient to be able to compute directely the "extreme" cases, and get, numerically, but without iterations, the 2 maximum values for L.
There is (at least for the first constraint. I haven't look throroughly the 2nd one) no need to iterate all possible values of x to check the constraint at each step, since we should be able to know directly for which values of "x" the constraints are the more "severe"
(Again, at least, for the first constraint. For which we've established that the constraint is the most severe when x=w₁. But I guess we could do the same for the second one)
The advantage of the simulation (the RPG to kill a fly), is that, while watching it, you can visually check that there is no other forgotten constraint.


Graphically the simulator does not seem very accurate. But that is because it is just some rotated HTML "div". Normally you are not really supposed to do graphics that way. But it changes nothing about the accuracy of the results, which have nothing to do with html (pure javascript, that is pure code).

Last note: "y" in the simulator has not the same meaning as in the drawing. I realized that too late. In the simulator, y is the distance from the bottom of the bottom hole, and the bottom-right corner of the door (so y is h₂ at first. And 0 at the end)

Sqdancefan2017-07-24T23:58:37Z

There's one dimension you have not defined, and another important dimension that is only indirectly defined in your picture. Let's call the width of the horizontal lip at lower left w3, and define d2 = d -h1 -h2.

If θ is the angle the door makes with the vertical when it is just free of the frame (at the far left of the w3 lip), then it is defined by
.. w3*sin(θ) +w2 -d2*sin(2θ)/2 = 0

After finding θ, we can compute L as
.. L = (w1 +w3)/sin(θ) . . . . . . not to exceed d -h2

Eliminating θ from these equations results in a cubic equation for L, not easy to solve. Since the angle is generally small, approximations can be used for sin(θ) and cos(θ) that result in the equation for θ being quadratic. Making further approximations regarding the solution of that quadratic, one comes out with ...
.. L ≈ (w1 +w3)/(w2 +w3)*d2
.. = d2*(1 +(w1 -w2)/(w2 +w3))

Clearly, the larger the difference (w1 -w2) and the narrower the lip w3, the taller the door can be.
_____
Please note this equation represents a number of simplifying assumptions, the chief one being that w1 +w3 is much less than d2, so the angle is small (< 4°). If you're relying on the last tenth of an inch, you should use the trig equations and solve them with the aid of a graphing calculator or other machine solver.

Small differences in dimensions make a large difference in allowed door size. Measure carefully. Beveled/rounded edges or compressible weather stripping will change the problem. I have treated this as a geometry problem. There are many practical differences from the real world. As with anything you read on the internet, temper it with your own judgment and experience.

UPDATE: I realized I was only concerned with getting the door through the opening and not with getting the door into the opening. That will limit the height to d -h2. You probably already figured that out, as your drawing seems to show h1 > h2.