Const PI = 3.14159265358979
Dim C1, RA, L1, C3, E2, I2, E1, I1, RB, C4, PHIC#, LF, THETAC, F, L2, INC, D
Dim FLECHE(), MOFLEX()
Sub toto()
Dim X, SCN, N, NMOB, TRA, TRB, FC, K1, K2, K3, RC
Dim MOTORT(), CN(), POSMOB(), FR()
INC = InputBox("INCREMENT POUR LE CALCUL DES FLECHES")
ReDim MOTORT(Int((L1 + L2) / INC) + 2)
For X = 0 To L1 + L2 - INC Step INC
MOTORT(Int(X / INC)) = SCN
Next X
MOTORT(Int((L1 + L2) / INC)) = SCN
For N = 1 To NMOB
For X = 0 To L1 + L2 - INC Step INC
If X > L1 + POSMOB(N) Then MOTORT(Int(X / INC)) = MOTORT(Int(X / INC)) - CN(N)
Next X
MOTORT(Int((L1 + L2) / INC)) = MOTORT(Int((L1 + L2) / INC)) - CN(N)
Next N
ReDim FLECHE(Int((L1 + L2) / INC) + 2)
ReDim MOFLEX(Int((L1 + L2) / INC) + 2)
For N = 1 To NMOB
RA = FR(N) * POSMOB(N) / L1
TRA = TRA + RA
RB = FR(N) * (POSMOB(N) + L1) / L1
TRB = TRB + RB
LF = POSMOB(N)
GSB_2260
X = L1 + L2
FC = F + (L2 - LF) * Sin(PHIC)
FLECHE(Int(X / INC)) = FLECHE(Int(X / INC)) + FC
MsgBox "Flèche due en C au mobile " & N & "=" & FC
Next N
FC = FLECHE(Int((L1 + L2) / INC))
K1 = 2 * E2 * I2 / 6 / E1 / I1 * L1 * L2 - 0.5 * L1 * (2 * L2 + L1)
K2 = -0.5 * L1 ^ 2 * (L1 + L2) + 1 / 6 * L1 ^ 3
K3 = 2 / 6 * (L1 + L2) ^ 3 'Et pourquoi pas 2327 / 6981 * (L1 + L2) ^ 3 ?
RC = E2 * I2 * FC / (K3 + K2 + K1 * L2)
MsgBox "valeur de la réaction en C annulant la flèche =" & RC & " N"
RA = -RC * L2 / L1
TRA = TRA + RA
RB = -RC * (L2 + L1) / L1
TRB = TRB + RB
LF = L2
GSB_2260
X = L1 + L2
FLECHE(Int(X / INC)) = 0
'GoTo 2620 '?????????????????????????????
End Sub
Sub GSB_2260()
Dim X
C1 = -1 / 6 * RA * L1 ^ 2
C3 = E2 * I2 * 2 / 6 / E1 / I1 * RA * L1 ^ 2 - 0.5 * (RA + RB) * L1 ^ 2
C4 = -C3 * L1 - 0.5 * L1 ^ 3 * RB - 1 / 6 * (RA - RB) * L1 ^ 3
PHIC = 1 / E2 / I2 * (0.5 * (RA - RB) * (L1 + LF) ^ 2 + L1 * RB * (L1 + LF) + C3)
THETAC = 360 * PHIC / 2 / PI 'THETAC n'est utilisé nulle part…
X = L1 + LF
F = 1 / E2 / I2 * (1 / 6 * (RA - RB) * X ^ 3 + 0.5 * L1 * RB * X ^ 2 + C3 * X + C4)
For X = 0 To L1 + L2 - INC Step INC
If X > L1 And X <= L1 + LF Then
FLECHE(Int(X / INC)) = FLECHE(Int(X / INC)) + 1 / E2 / I2 * (1 / 6 * (RA - RB) * X ^ 3 + 0.5 * L1 * RB * X ^ 2 + C3 * X + C4)
MOFLEX(Int(X / INC)) = MOFLEX(Int(X / INC)) + X * RA - (X - L1) * RB
ElseIf X <= L1 Then
FLECHE(Int(X / INC)) = FLECHE(Int(X / INC)) + RA / 6 / E1 / I1 * (X ^ 3 - L1 ^ 2 * X)
MOFLEX(Int(X / INC)) = MOFLEX(Int(X / INC)) + X * RA
ElseIf X > L1 + LF Then
D = X - L1 - LF: FLECHE(Int(X / INC)) = FLECHE(Int(X / INC)) + F + D * Sin(PHIC)
End If
Next X
End Sub