back to static program help page download complete Delphi project This article describes the theory of my statics program to calculate the position of loads hanging on a cable. An earlier program exists with only 2 loads. Look [ here ] for a description including vector operations. This articles is about 3 loads or 4 bars. Lines and coordinates The position of the loads is defined by angles a and b, see figure below: From a and b coordinates (x1,y1), (x2,y2), (x3,y3) may be calculated.
y1 = line[1]*sin(a) x3 = base - line[4]*cos(b) y3 = line[4]*sin(b) calculate BD using Pythagoras lemma (sides x3 - x1, y3 - y1) calculate L FBD = arctan(DF/BF) calculate LCBD using the cosine rule: CD2=BC2+BD2-2.BC.BD.cos(LCBD). add LFBD and LCBD calculate coordinates (x2, y2) calculate vectors x,y length:
The initial angles a and b values have to be calculated from where forces may change the load positions until a balance is reached. So the first step is finding suitable start values of angles a and b.
L34 = lines[3] + lines[4] Three cases are considered. depending L12,L34 and the base length:
case 2: La > 900, Lb < 900 case 3: La < 900, Lb < 900 Finding a balance A balance is reached if the sum of forces at points A and B are near zero. Using vector addition:
B: F2 = F32 + F21
load[2] = F21 + F22 load[3] = F31 + F32 forces F12 and F31 are cancelled by the tension in line[1] and line[4] If the forces at A point left, La is increased by a small step (and opposite). If the forces at point B point right, Lb is increased by a small step (and opposite). This step is halved each time a direction change (left - right) takes place. After a number of steps both forces at A and B are near zero. Then the process stops and the calculated vectors are painted. Bars In bar mode, loads 1..3 are calculated
load[2] = 0.5*(line[2] + line[3]) load[3] = 0.5*(line[3] + line[4]) |
||||||||||||||