Sub test()
10 RET = Chr$(17) + Chr$(196) + Chr$(196) + Chr$(217)
20 Pi = 3.141592654
30 X1$ = Chr$(196)
40 X2$ = Chr$(179)
50 X3$ = Chr$(218)
60 X4$ = Chr$(191)
70 X5$ = Chr$(192)
80 X6$ = Chr$(217)
90 X7$ = Chr$(194)
100 X8$ = Chr$(193)
105 On Error Resume Next 'GoTo 10000
110 'SCREEN 0, 1, 0, 0
120 ''CLS
125 ' Key 1, "ENTREE AUTO."
126 'KEY(1) OFF
130 'Key OFF
'la variable R n'est pas utilé avant cette ligne elle renvoi donc une erreur
140 Dim FNROUND: FNROUND(R) = Int(R * 100 + 0.5) / 100
150 'Color 3,
160 Debug.Print: Debug.Print: Debug.Print
170 Debug.Print " ****************************************"
180 Debug.Print " * CALCUL DE LA PUISSANCE A INSTALLER *"
190 Debug.Print " * Cas d'un arbre avec palier de fond *"
200 Debug.Print " "
210 Debug.Print " ( Programme - POWERP - 30/03/90 )"
220 Debug.Print: Debug.Print: Debug.Print
230 Debug.Print " POUR RETOURNER AU MENU TAPER ----- 1"
240 Debug.Print: Debug.Print
250 Debug.Print " POUR LANCER LE PROGRAMME TAPER --- 2"
260 Debug.Print: Debug.Print: Debug.Print
270 CH = InputBox(" VOTRE CHOIX ------ ")
'' faire des sub différents et des appel au sub en fonction du choix.
280 On CH GoTo 290, 300
290 MsgBox "Run MENU"
300 'CLS
310 Debug.Print: Debug.Print: Debug.Print
320 DAT = InputBox(" DATE : ")
330 CLIENT = InputBox(" CLIENT : ")
340 PLAN = InputBox(" Nø PLAN : ")
350 REF = InputBox(" REFERENCE : ")
360 REP = InputBox(" REPERE APPAREIL : ")
370 Debug.Print: Debug.Print: Debug.Print: 'Color 2, 0
380 NMOB = InputBox(" NOMBRE DE MOBILES D'AGITATION ")
390 Debug.Print
400 MV = InputBox(" DENSITE DU MELANGE ")
410 Debug.Print
420 VISCO = InputBox(" VISCOSITE DU MELANGE en cPo ")
430 Debug.Print
432 DT = InputBox(" TEMPERATURE de CALCUL en øC ")
433 Debug.Print
440 DC = InputBox(" DIAMETRE DE LA CUVE en mm ")
450 'CLS
460 Debug.Print: Debug.Print: Debug.Print: 'Color 3, 0
470 Debug.Print " LE MOBILE D'AGITATION REPERE 1 EST LE MOBILE LE PLUS HAUT DANS LA CUVE"
480 Debug.Print: Debug.Print: Debug.Print: 'Color 4, 0
490 Debug.Print " POUR CONTINUER TAPEZ "; RET
500 y = InputBox("Y")
510 GoSub 530: GoTo 1210
520 Rem --------------------------------------------------------------------
530 DX = 0
540 QX = 0
550 'CLS: Color 4, 0: Debug.Print " Si vous souhaitez laisser une valeur inchang‚ frappez "; RET$: Debug.Print: Debug.Print: Color 6, 0
560 Debug.Print " VITESSE DE ROTATION en tr/mn : "; VN
570 InputBox " NOUVELLE VALEUR : ", N$: If N$ <> "" Then VN = Val(N$)
580 V = 0
590 V = V + 1
600 'CLS
610 'Color 6, 0:
Debug.Print " Si vous souhaitez laisser une valeur inchang‚ frappez "; RET: Debug.Print "Entr‚e automatique des paramŠtres du mobile : frappez [F1] puis "; RET: Debug.Print: Debug.Print
620 'Color 4, 0
630 Debug.Print " CARACTERISTIQUES DU MOBILE D'AGITATION REP "; V
640 Debug.Print: 'Color 2, 0
650 Debug.Print " TURBINE TAPEZ ----- T : HELICE TAPEZ ----- H"
660 Debug.Print: 'Color 3, 0
670 If CH(V) = "T" Or CH(V) = "H" Then Debug.Print " TYPE D'AGITATEUR : " & CH(V): InputBox " NOUVEAU TYPE : " & CH: If CH = "" Then GoTo 750
680 Dim FC: If CH(V) <> "T" And CH(V) <> "H" Then FC(V) = 1: CH = InputBox(" VOTRE CHOIX ")
690 If CH = "T" Or CH = "H" Then CH(V) = CH: GoTo 750
700 'CLS
705 If CH = "ENTREE AUTO." Then GoSub 7000: GoTo 600
710 Debug.Print: Debug.Print: Debug.Print
720 Debug.Print " REPONDRE IMPERATIVEMENT A CETTE QUESTION PAR T ou H"
730 Debug.Print: Debug.Print
740 GoTo 620
750 Debug.Print
760 Dim D 'Color 6, 0
770 Debug.Print " DIAMETRE DU MOBILE en mm = "; D(V)
780 InputBox " NOUVELLE VALEUR : ", D
785 If D = "ENTREE AUTO." Then GoSub 7000: GoTo 600
786 If D <> "" Then D(V) = Val(D)
790 Debug.Print
800 If CH(V) = "T" Then GoTo 850
810 Dim PH: Debug.Print " PAS DU MOBILE en mm = "; PH(V)
820 InputBox " NOUVELLE VALEUR : ", PH
825 If PH = "ENTREE AUTO." Then GoSub 7000: GoTo 600
826 If PH <> "" Then PH(V) = Val(PH)
830 Debug.Print
840 If CH(V) = "H" Then GoTo 880
850 Dim ALP: Debug.Print " INCLINAISON DES PALES en degr‚s = "; ALP(V)
860 InputBox " NOUVELLE VALEUR : ", ALP
865 If ALP = "ENTREE AUTO." Then GoSub 7000: GoTo 600
866 If ALP <> "" Then ALP(V) = Val(ALP)
870 Debug.Print
880 Dim NP: Debug.Print " NOMBRE DE PUISSANCE = "; NP(V)
890 InputBox " NOUVELLE VALEUR : ", NP: If NP <> "" Then NP(V) = Val(NP)
895 If NP = "ENTREE AUTO." Then GoSub 7000: GoTo 600
900 Debug.Print
910 Debug.Print " COEFFICIENT DE DESEQUILIBRE HYDRAULIQUE = "; R(V)
920 InputBox " NOUVELLE VALEUR : ", R: If R <> "" Then R(V) = Val(R)
925 If R = "ENTREE AUTO." Then GoSub 7000: GoTo 600
930 Debug.Print
940 Debug.Print " FACTEUR DE CORRECTION DE PUISSANCE FC"
950 Debug.Print " En fonction du nombre de mobiles d'agitation = "; FC(V)
960 InputBox " NOUVELLE VALEUR : ", FC
965 If FC = "ENTREE AUTO." Then GoSub 7000: GoTo 600
966 If FC <> "" Then FC(V) = Val(FC)
970 Debug.Print
980 Dim NQ: Debug.Print " NOMBRE DE DEBIT DU MOBILE = "; NQ(V)
990 InputBox " NOUVELLE VALEUR : ", NQ: If NQ <> "" Then NQ(V) = Val(NQ)
995 If NQ = "ENTREE AUTO." Then GoSub 7000: GoTo 600
1000 Rem -----------------------------------------------------------------------
1010 Dim BET: BET(V) = ALP(V) * (Pi / 180)
1020 If CH(V) = "H" Then GoTo 1070
1030 Rem ----- Calcul pour turbine
1040 Dim PC: PC(V) = NP(V) * ((D(V) / 10 ^ 3) ^ 5) * ((VN / 60) ^ 3) * MV * FC(V)
1050 Dim Q: Q(V) = NQ(V) * ((D(V) / 10 ^ 3) ^ 3) * VN * 60
1060 GoTo 1150
1070 If ALP(V) = 30 Then GoTo 1130
1080 Rem ----- Calcul pour helice avec pas
1090 PC(V) = NP(V) * ((D(V) / 10 ^ 3) ^ 2) * ((PH(V) / 10 ^ 3) ^ 3) * ((VN / 60) ^ 3) * MV * FC(V)
1100 Q(V) = NQ(V) * ((D(V) / 10 ^ 3) ^ 2) * (PH(V) / 10 ^ 3) * VN * 60
1110 GoTo 1150
1120 Rem ----- Calcul pour helice 30ø
1130 PC(V) = NP(V) * ((D(V) / 10 ^ 3) ^ 5) * ((VN / 60) ^ 3) * MV * FC(V)
1140 Q(V) = NQ(V) * ((D(V) / 10 ^ 3) ^ 3) * VN * 60
1150 Dim CN: CN(V) = (PC(V) * 9550) / VN
1160 Dim FR: FR(V) = CN(V) / (R(V) * (D(V) / 10 ^ 3))
1170 If D(V) > DX Then DX = D(V)
1180 If D(V) = DX Then QX = Q(V)
1190 If V < NMOB Then GoTo 590
1200 Return
1210 V = 1: SPC0 = 0: SFR = 0: SCN = 0: SQT = 0
1220 For i = 1 To NMOB
1230 SPC0 = SPC0 + PC(V)
1240 SFR = SFR + FR(V)
1250 SCN = SCN + CN(V)
1255 SQT = Sqr((SQT) ^ 2 + (Q(V)) ^ 2)
1260 V = V + 1
1265 SQY = SQT / 60
1270 Next
1280 K = ((4 * QX) / (60 * Pi) * 1 / ((DC / 10 ^ 3) ^ 2 - (DX / 10 ^ 3) ^ 2))
1290 Rem --------------------------------------------------------------------
1300 'CLS
1310 Debug.Print: Debug.Print: Debug.Print: 'Color 5, 0
1320 Debug.Print " RESULTATS"
1330 Debug.Print " ---------"
1340 V = 1
1350 Debug.Print: Debug.Print: ' Color 6, 0
1360 For i = 1 To NMOB
1370 Debug.Print " PUISSANCE CONSOMMEE DU MOBILE "; V; " = "; PC(V); " kW"
1380 Debug.Print
1390 Debug.Print " DEBIT DU MOBILE D'AGITATION "; V; " = "; Q(V); " m3/H"
1400 Debug.Print
1410 V = V + 1
1420 Next
1430 'Color 2, 0
1440 Debug.Print " PUISSANCE TOTALE CONSOMMEE = "; SPC0; " kW"
1450 SPI = SPC0 / 0.8
1460 Debug.Print
1470 Debug.Print " PUISSANCE A INSTALLER"
1480 Debug.Print " Compte tenu d'un rendement de O.8 = "; SPI; " kW"
1490 Debug.Print
1500 Debug.Print " VITESSE DE REMONTEE"
1510 Debug.Print " Calculee avec le mobile le plus grand = "; K; " m/mn"
1520 Debug.Print
1530 REYN = VN / 60 * MV * 1000 * DX ^ 2 / VISCO / 1000
1540 If VISCO <> O Then Debug.Print " NOMBRE DE REYNOLDS = "; REYN
1550 Debug.Print: Debug.Print: 'Color 4, 0
1560 Debug.Print " POUR CONTINUER TAPEZ "; RET; " POUR MODIFIER TAPEZ M"
1570 InputBox "", y: If y = "M" Then GoSub 530: GoTo 1210 Else GoTo 5960
1580 'CLS
1590 Rem ----------------------------------------------------------------------
1600 Debug.Print: Debug.Print: Debug.Print: 'Color 6, 0
1610 Debug.Print " CALCULS RELATIFS A LA SECTION D'ARBRE DE L'AGITATEUR"
1620 Debug.Print " (Arbre d'agitation ou arbre r‚ducteur)"
1630 Debug.Print: Debug.Print: 'Color 3, 0
1640 Dim L1, L2, E1, D1, E2, D2, EPTUBE As Integer: L1 = InputBox(" LONGUEUR DE L'ARBRE ENCASTRE ")
1645 If L1 = 0 Then GoTo 1580
1650 Debug.Print
1660 L2 = InputBox(" LONGUEUR DE L'ARBRE D'AGITATION ")
1670 Debug.Print
1680 E1 = InputBox(" MODULE D' ELASTICITE DE L'ARBRE ENCASTRE ")
1690 Debug.Print
1700 D1 = InputBox(" DIAMETRE DE L'ARBRE ENCASTRE ")
1710 Debug.Print
1720 E2 = InputBox(" MODULE D' ELASTICITE DE L'ARBRE D' AGITATION ")
1730 Debug.Print
1740 D2 = InputBox(" DIAMETRE DE L'ARBRE D'AGITATION ")
1750 Debug.Print
1760 EPTUBE = InputBox(" EPAISSEUR DE L'ARBRE D'AGITATION ")
1770 Debug.Print
1780 I1 = Pi * D1 ^ 4 / 64
1790 If EPTUBE = 0 Then I2 = Pi * D2 ^ 4 / 64
1800 If EPTUBE <> 0 Then I2 = Pi * (D2 ^ 4 - (D2 - EPTUBE * 2) ^ 4) / 64
1810 For i = 1 To NMOB
1820 Debug.Print " POSITION DU MOBILE REP "; i; " EN MM"
1830 Dim POSMOB: InputBox " Par rapport au palier inferieur de tete de commande:", POSMOB(i)
1840 Next
1850 Debug.Print: INC = InputBox(" INCREMENT POUR LE CALCUL DES FLECHES")
1860 Dim MOTORT() ': MOTORT (Int((L1 + L2) / INC) + 2)
1870 For X = 0 To L1 + L2 - INC Step INC
1880 MOTORT(Int(X / INC)) = SCN
1890 Next
1900 MOTORT(Int((L1 + L2) / INC)) = SCN
1910 For i = 1 To NMOB
1920 For X = 0 To L1 + L2 - INC Step INC
1930 If X > L1 + POSMOB(i) Then MOTORT(Int(X / INC)) = MOTORT(Int(X / INC)) - CN(i)
1940 Next
1950 MOTORT(Int((L1 + L2) / INC)) = MOTORT(Int((L1 + L2) / INC)) - CN(i)
1960 Next
1970 Dim FLECHE '(Int((L1 + L2) / INC) + 2)
1980 Dim MOFLEX() '(Int((L1 + L2) / INC) + 2)
1990 For i = 1 To NMOB
2000 RA = FR(i) * POSMOB(i) / L1
2010 TRA = TRA + RA
2020 RB = FR(i) * (POSMOB(i) + L1) / L1
2030 TRB = TRB + RB
2040 LF = POSMOB(i)
2050 GoSub 2260
2060 X = L1 + L2: FC = F + (L2 - LF) * Sin(PHIC)
2070 FLECHE(Int(X / INC)) = FLECHE(Int(X / INC)) + FC
2080 Debug.Print
2090 Debug.Print "fleche due en C au mobile "; i; " ="; FC
2100 Next
2110 FC = FLECHE(Int((L1 + L2) / INC))
2120 K1 = 2 * E2 * I2 / 6 / E1 / I1 * L1 * L2 - 0.5 * L1 * (2 * L2 + L1)
2130 K2 = -0.5 * L1 ^ 2 * (L1 + L2) + 1 / 6 * L1 ^ 3
2140 K3 = 2 / 6 * (L1 + L2) ^ 3
2150 RC = E2 * I2 * FC / (K3 + K2 + K1 * L2)
2160 Debug.Print
2170 Debug.Print "valeur de la reaction en C annulant la fleche ="; RC; " N"
2180 RA = -RC * L2 / L1
2190 TRA = TRA + RA
2200 RB = -RC * (L2 + L1) / L1
2210 TRB = TRB + RB
2220 LF = L2
2230 GoSub 2260
2235 X = L1 + L2: FLECHE(Int(X / INC)) = 0
2240 Debug.Print
2250 GoTo 2620
2260 C1 = -1 / 6 * RA * L1 ^ 2
2270 C3 = E2 * I2 * 2 / 6 / E1 / I1 * RA * L1 ^ 2 - 0.5 * (RA + RB) * L1 ^ 2
2280 C4 = -C3 * L1 - 0.5 * L1 ^ 3 * RB - 1 / 6 * (RA - RB) * L1 ^ 3
2290 PHIC = 1 / E2 / I2 * (0.5 * (RA - RB) * (L1 + LF) ^ 2 + L1 * RB * (L1 + LF) + C3)
2300 THETAC = 360 * PHIC / 2 / Pi
2310 X = L1 + LF: F = 1 / E2 / I2 * (1 / 6 * (RA - RB) * X ^ 3 + 0.5 * L1 * RB * X ^ 2 + C3 * X + C4)
2320 For X = 0 To L1 + L2 - INC Step INC
2330 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
2340 If 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
2350 If X > L1 + LF Then D = X - L1 - LF: FLECHE(Int(X / INC)) = FLECHE(Int(X / INC)) + F + D * Sin(PHIC)
2360 Next
2370 Return
2380 Rem *** PROCEDURE MENU ***
2390 FLECHE = 1
2400 NAF = 1
2410 Dim CHOIX: While CHOIX(NAF) <> ""
2420 'LOCATE YMENU + NAF, XMENU
2430 If NAF = FLECHE Then Debug.Print Chr$(205); Chr$(205); Chr$(62);
2440 If NAF <> FLECHE Then Debug.Print " ";
2450 Debug.Print CHOIX(NAF)
2460 NAF = NAF + 1
2470 Wend
2480 For NAF = FLECHE - 1 To FLECHE + 1
2500 'LOCATE YMENU + NAF, XMENU
2510 If NAF = FLECHE Then Debug.Print Chr$(205); Chr$(205); Chr$(62)
2520 If NAF <> FLECHE Then Debug.Print " "
2540 Next
2550 CLE$ = INKEY$: If CLE$ = "" Then GoTo 2550
2560 If CLE$ = Chr$(13) Then CHOIX = FLECHE: Return
2570 If CLE$ = Chr$(0) + Chr$(72) Or CLE$ = Chr$(56) Then FLECHE = FLECHE - 1
2580 If CLE$ = Chr$(0) + Chr$(80) Or CLE$ = Chr$(50) Then FLECHE = FLECHE + 1
2590 'If FLECHE = 0 Then LOCATE 1, 1: Debug.Print Chr$(7): FLECHE = 1: GoTo 2480
2600 'If CHOIX(FLECHE) = "" Then LOCATE 1, 1: Debug.Print Chr$(7): FLECHE = FLECHE - 1: GoTo 2480
2610 GoTo 2480
2620 Rem *** DIAGRAMMES ***
2630 'SCREEN 2, 1, 0, 0
2640 ECHHOR = 620 / (L1 + L2)
2650 ECHVER1 = -50 / FLECHE(Int((L1 + L2 / 3 * 2) / INC))
2660 ECHVER2 = 30 / MOFLEX(Int((L1) / INC))
2670 ECHVER3 = -30 / SCN
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
'2680 Line (10, 0)-(10, 199)
'2690 Line (10 + L1 * ECHHOR, 0)-(10 + L1 * ECHHOR, 199)
'2700 Line (10 + (L1 + L2) * ECHHOR, 0)-(10 + (L1 + L2) * ECHHOR, 199)
'2710 Line (8, 60)-(10 + (L1 + L2) * ECHHOR + 2, 60)
'2720 Line (8, 120)-(10 + (L1 + L2) * ECHHOR + 2, 120)
'2730 Line (8, 190)-(10 + (L1 + L2) * ECHHOR + 2, 190)
'2740 LOCATE 3, 1:
Debug.Print "f"
'2750 LOCATE 12, 1:
Debug.Print "Mf"
'2760 LOCATE 20, 1:
Debug.Print "Mt"
2770 For X = 0 To L1 + L2 - INC Step INC
'2780 PSet (10 + X * ECHHOR, 60 + FLECHE(Int(X / INC)) * ECHVER1)
'2790 PSet (10 + X * ECHHOR, 120 + MOFLEX(Int(X / INC)) * ECHVER2)
'2800 PSet (10 + X * ECHHOR, 190 + MOTORT(Int(X / INC)) * ECHVER3)
2810 Next
2820 CLE$ = INKEY$: If CLE$ = "" Then GoTo 2820
2830 'SCREEN 0, 1, 0, 0
2840 Z = 0
2850 'CLS: Color 6, 0
2860 Z = Z + 1
2870 Debug.Print " ATTENTION !"
2880 Debug.Print
2890 'Color 2, 0
2900 Debug.Print " CE CALCUL EST FAUX SI LES INERTIES REELLES S' ECARTENT TROP DES INERTIES AYANT PERMIS LE CALCUL DE LA DEFORMEE: DANS CETTE EVENTUALITE FAIRE UN SECOND CALCUL"
2910 Debug.Print: Debug.Print
2920 'Color 3, 0:
Debug.Print " L' ORIGINE EST PRISE AU ROULEMENT SUPERIEUR"
'2930 Color 2, 0:
Debug.Print: Debug.Print
2940 Debug.Print "REACTION EN A: (X=0)"; Tab(40); TRA; " N"
2950 Debug.Print "REACTION EN B: (X="; L1; ")"; Tab(40); TRB; " N"
2960 Debug.Print "REACTION EN C: (X="; L1 + L2; ")"; Tab(40); RC; " N"
2970 Debug.Print
2980 'Color 3, 0
2990 Dim XC: XC(Z) = InputBox("DISTANCE A L' ORIGINE (X=0) DE LA SECTION A CALCULER: ")
3000 Dim SEC: SEC(Z) = InputBox("REPERE DE LA SECTION:")
3010 X = 0
3020 If X + INC <= XC(Z) Then X = X + INC: GoTo 3020
3030 Dim MF: MF(Z) = Abs((XC(Z) - X) / (INC) * (MOFLEX(Int((X + INC) / INC)) - MOFLEX(Int(X / INC))) + MOFLEX(Int(X / INC))) / 1000
3040 Dim MT: MT(Z) = (XC(Z) - X) / (INC) * (MOTORT(Int((X + INC) / INC)) - MOTORT(Int(X / INC))) + MOTORT(Int(X / INC))
3050 Dim FCA: FCA(Z) = (XC(Z) - X) / (INC) * (FLECHE(Int((X + INC) / INC)) - FLECHE(Int(X / INC))) + FLECHE(Int(X / INC))
3060 Debug.Print: Debug.Print
3070 Debug.Print " FLECHE AU DROIT DE LA SECTION CONSIDEREE ", FCA(Z); " mm"
3080 Debug.Print
3090 Debug.Print " MOMENT DE FLEXION DANS LA SECTION CONSIDEREE ", MF(Z); " N.m"
3100 Debug.Print
3110 Debug.Print " MOMENT DE TORSION DANS LA SECTION CONSIDEREE ", MT(Z); " N.m"
3120 Debug.Print: Debug.Print
3130 MTI = Sqr(MF(Z) ^ 2 + MT(Z) ^ 2)
3140 Debug.Print " MOMENT IDEAL DE TORSION =", MTI; " N.m"
3150 Debug.Print: 'Color 4, 0
3160 Debug.Print " POUR CONTINUER TAPEZ "; RET;
3170 InputBox "", y
3180 'CLS
3190 Debug.Print: Debug.Print: 'Color 6, 0
3200 Debug.Print " DETERMINATION DU DIAMETRE D'ARBRE NECESSAIRE --------------- 1"
3210 Debug.Print: Debug.Print
3220 Debug.Print " CONTRAINTE DE L'ARBRE CONNAISSANT SA SECTION --------------- 2"
3230 Debug.Print: Debug.Print: Debug.Print: 'Color 4, 0
3240 InputBox " VOTRE CHOIX ----------- ", CHO
3250 On CHO GoTo 3260, 3670
3260 'CLS
3270 Rem ------------------ Calcul du diametre d'arbre n‚cessaire ------------
3280 Debug.Print: Debug.Print: Debug.Print: 'Color 6, 0
3290 Dim T: InputBox " CONTRAINTE ADMISSIBLLE SUR LA SECTION A CALCULER N/mm2 = ", T(Z)
3300 Dim IOV: IOV(Z) = MTI / T(Z)
3310 D1(Z) = (16 * IOV(Z) / Pi) ^ (1 / 3) * 10
3320 Debug.Print: 'Color 2, 0
3330 Debug.Print " MODULE DE TORSION DE LA SECTION NECESSAIRE = "; IOV(Z)
3340 Debug.Print
3350 Debug.Print " DIAMETRE D'ARBRE MASSIF NECESSAIRE en mm = "; D1(Z)
3360 Debug.Print
3370 Debug.Print: 'Color 5, 0
3380 Debug.Print " PAGE SUIVANTE TABLEAU DES DIAMETRES D'ARBRE TUBULAIRE"
3390 Debug.Print: Debug.Print: 'Color 3, 0
3400 Debug.Print " POUR CONTINUER TAPEZ "; RET;
3410 InputBox "", y
3420 'CLS
3430 Debug.Print " TABLEAU DES DIAMETRES D'ARBRE TUBULAIRE A UTILISER DE PREFERENCE"
3440 Debug.Print: 'Color 4, 0
3450 Debug.Print " DIAMETRE POUCE EPAISSEUR POIDS SCHED Io/V"
3460 Debug.Print " (au m)"
3470 'Color 6, 0
3480 Debug.Print " 73.0 2 1/2 5.16 8.63 40 34.87"
3490 Debug.Print " 73.0 2 1/2 7.01 11.40 80 43.84"
3500 Debug.Print " 88.9 3 5.49 11.43 40 56.54"
3510 Debug.Print " 88.9 3 8.00 15.30 80 75.58"
3520 Debug.Print " 101.6 3 1/2 5.74 13.60 40 78.45"
3530 Debug.Print " 101.6 3 1/2 8.80 20.10 80 109.71"
3540 Debug.Print " 114.3 4 5.90 16.10 40 103.59"
3550 Debug.Print " 114.3 4 8.56 22.30 80 139.99"
3560 Debug.Print " 141.3 5 6.55 21.80 40 178.58"
3570 Debug.Print " 141.3 5 9.52 30.90 80 243.46"
3580 Debug.Print " 168.3 6 7.11 28.30 40 278.46"
3590 Debug.Print " 168.3 6 10.97 42.60 80 400.67"
3600 Debug.Print " 219.1 8 8.18 42.50 40 551.11"
3610 Debug.Print " 219.1 8 12.70 64.60 80 803.62"
3620 Debug.Print " 273.0 10 9.27 60.30 40 979.61"
3630 Debug.Print " 273.0 10 14.20 90.60 80 1420.51"
3640 Debug.Print: 'Color 3, 0
3650 Debug.Print "POUR CONTINUER TAPEZ "; RET;
3660 InputBox "", y
3670 'CLS
3680 Rem --------------------- Calcul de la contrainte de l'arbre ------------
3690 Debug.Print: Debug.Print: Debug.Print: 'Color 6, 0
3700 Debug.Print " CARACTERISTIQUES DE L'ARBRE A CALCULER"
3710 Debug.Print: Debug.Print: Debug.Print: 'Color 2, 0
3720 Debug.Print " ARBRE MASSIF --------- 1"
3730 Debug.Print
3740 Debug.Print " ARBRE TUBULAIRE ------ 2"
3750 Debug.Print: Debug.Print: Debug.Print
3760 InputBox " VOTRE CHOIX ---------- ", CH
3770 On CH GoTo 3780, 3840
3780 'CLS
3790 Debug.Print: Debug.Print: Debug.Print
3800 InputBox " DIAMETRE DE L'ARBRE en mm = ", D1(Z)
3810 IOV(Z) = (Pi * D1(Z) ^ 3) / (16 * 10 ^ 3)
3820 Dim ISV: ISV(Z) = (Pi * D1(Z) ^ 3) / (32 * 10 ^ 3)
3830 GoTo 3920
3840 'CLS
3850 Debug.Print: Debug.Print: Debug.Print
3860 InputBox " DIAMETRE DE L'ARBRE TUBULAIRE en mm = ", DT(Z)
3870 Debug.Print
3880 Dim EP: InputBox " EPAISSEUR DE L'ARBRE en mm = ", EP(Z)
3890 DI = DT(Z) - (2 * EP(Z))
3900 IOV(Z) = Pi * (DT(Z) ^ 4 - DI ^ 4) / (16 * DT(Z) * 10 ^ 3)
3910 ISV(Z) = Pi * (DT(Z) ^ 4 - DI ^ 4) / (32 * DT(Z) * 10 ^ 3)
3920 Debug.Print
3930 Debug.Print " MODULE DE FLEXION : I/V en cm3 = "; ISV(Z)
3940 Debug.Print " MODULE DE TORSION : Io/V en cm3 = "; IOV(Z)
3950 Debug.Print
3960 Debug.Print " CONTRAINTE NORMALE : "; Chr$(229); " en MPa = "; MF(Z) / ISV(Z)
3970 Debug.Print " CONTRAINTE TANGENTIELLE : "; Chr$(231); " en MPa = "; MT(Z) / IOV(Z)
3980 Debug.Print
3990 Debug.Print
4000 T(Z) = Sqr((MF(Z) / ISV(Z)) ^ 2 + 3 * (MT(Z) / IOV(Z)) ^ 2)
4010 Debug.Print " CRITERE DE VON MISES : "; Chr$(229); "e en MPa ="; T(Z)
4020 Debug.Print
4030 Dim NOMAT: If Z = 1 Then NOMAT(Z) = InputBox(" DESIGNATION DU MATERIAU ")
4040 If Z <> 1 Then NOMAT(Z) = InputBox(" DESIGNATION DU MATERIAU (SI DIFFERENT DU PRECEDENT):")
4050 If Z <> 1 And NOMAT(Z) = "" Then NOMAT(Z) = NOMAT(Z - 1)
4060 Dim REMAT: If Z = 1 Then REMAT(Z) = InputBox(" LIMITE ELASTIQUE en MPa : ")
4070 If Z <> 1 Then REMAT(Z) = InputBox(" LIMITE ELASTIQUE (SI MATERIAU DIFFERENT DU PRECEDENT) en MPa :")
4080 If Z <> 1 And REMAT(Z) = 0 Then REMAT(Z) = REMAT(Z - 1)
4090 Dim CFMAT: If Z = 1 Then CFMAT(Z) = InputBox(" COEF. DE SECURITE : ")
4100 If Z <> 1 Then CFMAT(Z) = InputBox(" COEF. DE SECURITE (SI DIFFERENT DU PRECEDENT):")
4110 If Z <> 1 And CFMAT(Z) = 0 Then CFMAT(Z) = CFMAT(Z - 1)
4120 Debug.Print: 'Color 4, 0
4130 If T(Z) < REMAT(Z) / CFMAT(Z) Then Debug.Print " "; Chr$(229); "e="; Round(T(Z)); "MPa < Re/s="; REMAT(Z) / CFMAT(Z); "MPa DONC ADMISSIBLE"
4140 If T(Z) > REMAT(Z) / CFMAT(Z) Then Debug.Print " ATTENTION ! DEPASSEMENT DE LA CONTRAINTE ADMISSIBLE"
4150 Debug.Print: Debug.Print: 'Color 3, 0
4160 Debug.Print " POUR CONTINUER TAPEZ "; RET;
4170 InputBox "", y
4180 'CLS
4190 Debug.Print: Debug.Print: Debug.Print: 'Color 6, 0
4200 InputBox " CALCUL D' UNE AUTRE SECTION ? (O/N) ", CH
4210 If CH = "O" Or CH = "o" Then GoTo 2850
4220 If CH = "N" Or CH = "n" Then NS = Z: GoTo 5960
4230 GoTo 4200
4240 'CLS
4250 Debug.Print: Debug.Print
4260 'Color 22:
Debug.Print " VERIFIEZ LA MISE EN MARCHE DE L'IMPRIMANTE ": 'Color 4, 0
4270 Debug.Print " ----------------------------------------"
4280 Debug.Print: Debug.Print
4290 'Color 7, 0
4300 Debug.Print " VERIFIEZ LA MISE EN PAGE DE L'IMPRIMANTE (Voir procedure)"
4310 Debug.Print: Debug.Print: Debug.Print: 'Color 2, 0
4320 Debug.Print " QUAND PRET TAPEZ SUR "; RET;
4330 InputBox "", y
4340 Debug.Print
4345 InputBox "EDITION COMPLETE (NOTE DE CALCUL) OU SIMPLIFIEE (PROJET)? (C/S) ", MODEDIT$
4346 If MODEDIT$ = "S" Or MODEDIT$ = "s" Then GoTo 4360
4347 If MODEDIT$ <> "C" And MODEDIT$ <> "c" Then Debug.Print "REPONDRE PAR C OU S !": GoTo 4345
4348 Debug.Print
4350 Page = InputBox("Nø DE LA PREMIERE PAGE:")
4360 Rem _____________________________________________________
4370 'CLS
4380 Debug.Print: Debug.Print: Debug.Print: 'Color 5, 0
4390 Debug.Print " SORTIE SUR IMPRIMANTE"
4400 Debug.Print: Debug.Print: 'Color 6, 0
4410 Debug.Print " NOM DU PROGRAMME EN COURS ( POWERP )"
4415 If MODEDIT$ = "S" Or MODEDIT$ = "s" Then GoTo 4430
4420 GoSub 6950
4430 Debug.Print Chr$(14);
4460 Debug.Print Chr$(27); "E"; " CALCUL DE LA PUISSANCE A INSTALLER ET VERIFICATION DE LA LIGNE D'ARBRE"
4470 Debug.Print Tab(14); "DANS LE CAS D'UN MONTAGE AVEC PALIER DE FOND DE CUVE"
4480 Debug.Print: Debug.Print: Debug.Print
4490 If DAT = "" Then GoTo 4510
4500 Debug.Print " DATE : "; DAT
4510 If PLAN = "" Then GoTo 4530
4520 Debug.Print " PLAN : "; PLAN
4530 If REF = "" Then GoTo 4550
4540 Debug.Print " REFERENCE : "; REF
4550 If CLIENT = "" Then GoTo 4570
4560 Debug.Print " NOM DU CLIENT : "; CLIENT
4570 If REP = "" Then GoTo 4590
4580 Debug.Print " REPERE APPAREIL : "; REP
4590 Debug.Print: Debug.Print: Debug.Print
4600 Debug.Print Chr$(27); Chr$(45); Chr$(1);
4610 Debug.Print " CARACTERISTIQUES DE L'AGITATEUR"
4620 Debug.Print Chr$(27); Chr$(45); Chr$(0)
4630 Debug.Print " VITESSE DE ROTATION (tr/mn) "; Tab(50); VN
4640 Debug.Print " DENSITE DU MELANGE "; Tab(50); MV
4642 Debug.Print " VISCOSITE DU MELANGE (mPa.s) "; Tab(50); VISCO
4645 Debug.Print " TEMPERATURE DE CALCUL (øC) "; Tab(50); DT
4650 Debug.Print " DIAMETRE DE LA CUVE (mm) "; Tab(50); DC
4660 Debug.Print " NOMBRE DE MOBILES D'AGITATION "; Tab(50); NMOB
4670 Debug.Print
4680 V = 1
4690 For i = 1 To NMOB
4700 Debug.Print Chr$(27); Chr$(45); Chr$(1);
4710 Debug.Print " CARACTERISTIQUES DU MOBILE D'AGITATION "; V
4720 Debug.Print Chr$(27); Chr$(45); Chr$(0)
4730 Debug.Print " DIAMETRE DU MOBILE (mm) "; Tab(50); D(V)
4740 If PH(V) = 0 Then GoTo 4770
4750 Debug.Print " PAS DU MOBILE (mm) "; Tab(50); PH(V)
4760 GoTo 4775
4770 Debug.Print " INCLINAISON DES PALES (degres)"; Tab(50); ALP(V)
4775 If L1 <> 0 Then Debug.Print " POSITION DU MOBILE (mm) "; Tab(50); POSMOB(V)
4780 Debug.Print " NOMBRE DE PUISSANCE "; Tab(50); NP(V)
4790 Debug.Print " COEFFICIENT DE DESEQUILIBRE "; Tab(50); R(V)
4800 Debug.Print " FACTEUR DE CORRECTION DE PUISSANCE "; Tab(50); FC(V)
4810 Debug.Print " PUISSANCE CONSOMMEE (kW)"; Tab(50); FNROUND(PC(V))
4820 Debug.Print " COUPLE DE TORSION (N.m) "; Tab(50); FNROUND(CN(V))
4830 Debug.Print " EFFORT RADIAL HYDRAULIQUE (N)"; Tab(50); FNROUND(FR(V))
4840 Debug.Print " NOMBRE DE DEBIT "; Tab(50); NQ(V)
4850 Debug.Print " DEBIT DU MOBILE (m3/mn) "; Tab(50); FNROUND(Q(V) / 60)
4860 Debug.Print
4865 If MODEDIT$ = "S" Or MODEDIT$ = "s" Then GoTo 4880
4870 If V = 3 Or V = 7 Then Debug.Print Chr$(12): GoSub 6950
4880 V = V + 1
4890 Next
4895 If L1 = 0 Then GoTo 5015
4900 Debug.Print Chr$(27); Chr$(45); Chr$(1);
4910 Debug.Print " CARACTERISTIQUES DE LA LIGNE D' ARBRE"
4920 Debug.Print Chr$(27); Chr$(45); Chr$(0)
4930 Debug.Print
4940 Debug.Print " LONGUEUR DE L' ARBRE SUPERIEUR (mm)"; Tab(50); L1
4950 Debug.Print " DIAMETRE DE L' ARBRE SUPERIEUR (mm)"; Tab(50); D1
4960 Debug.Print " MODULE D' ELASTICITE DE L' ARBRE SUPERIEUR(MPa)"; Tab(50); E1
4970 Debug.Print
4980 Debug.Print " LONGUEUR DE L' ARBRE D' AGITATION (mm)"; Tab(50); L2
4990 Debug.Print " DIAMETRE DE L' ARBRE D' AGITATION (mm)"; Tab(50); D2
5000 If EPTUBE <> 0 Then Debug.Print " EPAISSEUR DE L' ARBRE D' AGITATION (mm)"; Tab(50); EPTUBE
5010 Debug.Print " MODULE D'ELASTICITE DE L'ARBRE D'AGITATION(MPa)"; Tab(50); E2
5015 If MODEDIT$ = "S" Or MODEDIT$ = "s" Then Debug.Print: Debug.Print: Debug.Print: GoTo 5030
5020 If NMOB = 2 Or NMOB = 6 Then Debug.Print Chr$(12): GoSub 6950 Else Debug.Print: Debug.Print: Debug.Print
5030 Debug.Print Chr$(27); Chr$(45); Chr$(1);
5040 Debug.Print " RESULTATS"
5050 Debug.Print Chr$(27); Chr$(45); Chr$(0)
5060 Debug.Print
5070 Debug.Print " PUISSANCE TOTALE CONSOMMEE (kW)"; Tab(50); FNROUND(SPC0)
5080 Debug.Print " PUISSANCE A INSTALLER (kW)"
5090 Debug.Print " Compte tenu d'un rendemment de 0.8"; Tab(50); FNROUND(SPI)
5100 Debug.Print " VITESSE DE REMONTEE (m/mn)"
5110 Debug.Print " Du plus grand mobile d'agitation"; Tab(50); FNROUND(K)
5120 Debug.Print " COUPLE DE TORSION TOTAL (N.m)"; Tab(50); FNROUND(SCN)
5130 Debug.Print " SOMME DES EFFORTS RADIAUX (N)"; Tab(50); FNROUND(SFR)
5140 Debug.Print " DEBIT TOTAL (m3/mn)"; Tab(50); FNROUND(SQY)
5143 Debug.Print
5145 If L1 = 0 Then GoTo 5180
5150 Debug.Print " REACTION SUR LE ROULEMENT SUPERIEUR (N)"; Tab(50); FNROUND(TRA)
5160 Debug.Print " REACTION SUR LE ROULEMENT INTERMEDIAIRE (N)"; Tab(50); FNROUND(TRB)
5170 Debug.Print " REACTION SUR LE PALIER DE FOND DE CUVE (N)"; Tab(50); FNROUND(RC)
5180 Debug.Print
5185 If MODEDIT$ = "S" Or MODEDIT$ = "s" Then GoTo 5200
5190 If NMOB = 1 Or NMOB = 5 Then Debug.Print Chr$(12): GoSub 6950 Else Debug.Print: Debug.Print
5200 Debug.Print Chr$(27); Chr$(45); Chr$(1);
5210 Debug.Print " REGIME D' ECOULEMENT:"
5220 Debug.Print Chr$(27); Chr$(45); Chr$(0)
5225 If MODEDIT$ = "S" Or MODEDIT$ = "s" Then GoTo 5330
5230 Debug.Print
5240 Debug.Print Tab(25); X3$; String$(27, X1$); X4$
5250 Debug.Print Tab(25); X2$; " "; Chr$(235); " . V . D"; Chr$(253); " "; X2$
5260 Debug.Print Tab(25); X2$; " Re = "; String$(11, X1$); " "; X2$
5270 Debug.Print Tab(25); X2$; " n "; X2$
5280 Debug.Print Tab(25); X5$; String$(27, X1$); X6$
5290 Debug.Print Tab(25); Chr$(235); " : MASSE VOLUMIQUE en kg/m3"
5300 Debug.Print Tab(25); "V : VITESSE en tr/s"
5310 Debug.Print Tab(25); "D : DIAMETRE DU MOBILE en m"
5320 Debug.Print Tab(25); "n : VISCOSITE en daPo"
5330 Debug.Print
5340 Debug.Print Tab(10); " VALEUR DU NOMBRE DE REYNOLDS: Re="; FNROUND(REYN)
5350 Debug.Print
5360 If REYN < 10 Then Debug.Print Tab(10); " Re<10 : REGINE LAMINAIRE"
5370 If REYN > 10 ^ 4 Then Debug.Print Tab(10); " Re>10000 : REGIME TURBULENT"
5380 If REYN > 10 And REYN < 10 ^ 4 Then Debug.Print Tab(10); " 10<Re<10000 : REGIME INTERMEDIAIRE"
5382 Debug.Print: Debug.Print
5383 Debug.Print
5384 Debug.Print
5385 Debug.Print
5390 Debug.Print: Debug.Print
5394 If L1 = 0 Then Debug.Print Chr$(12): GoTo 5960
5395 If MODEDIT$ = "S" Or MODEDIT$ = "s" Then GoTo 5410
5400 Debug.Print Chr$(12): GoSub 6950
5410 Debug.Print Chr$(14); Chr$(27); "E"; " CALCULS DES CONTRAINTES DANS L'ARBRE"
5420 Debug.Print
5430 Z = 1
5440 For i = 1 To NS
5450 If MODEDIT$ = "S" Or MODEDIT$ = "s" Then Debug.Print: Debug.Print Else Debug.Print String$(5, Chr$(13))
5460 Debug.Print Chr$(27); Chr$(45); Chr$(1);
5470 Debug.Print " CALCUL DE LA SECTION D'ARBRE : "; SEC(Z)
5480 Debug.Print Chr$(27); Chr$(45); Chr$(0)
5490 V = 1
5500 Debug.Print " POSITION PAR RAPPORT AU ROULEMENT SUPERIEUR(mm)"; Tab(50); XC(Z)
5510 Debug.Print
5520 Debug.Print " FLECHE AU DROIT DE CETTE SECTION (mm)"; Tab(50); Abs(Int(FCA(Z) * 1000 + 0.5) / 1000)
5530 Debug.Print
5540 Debug.Print " MOMENT DE FLEXION DANS CETTE SECTION (N.m)"; Tab(50); FNROUND(MF(Z))
5550 Debug.Print " MOMENT DE TORSION DANS CETTE SECTION (N.m)"; Tab(50); FNROUND(MT(Z))
5560 Debug.Print Chr$(27); Chr$(45); Chr$(1);
5570 Debug.Print: Debug.Print " CARACTERISTIQUES DE CETTE SECTION :"
5580 Debug.Print Chr$(27); Chr$(45); Chr$(0)
5590 If DT(Z) > 0 Then GoTo 5620
5600 Debug.Print " DIAMETRE ARBRE MASSIF UTILISE (mm)"; Tab(50); D1(Z)
5610 GoTo 5640
5620 Debug.Print " DIAMETRE ARBRE TUBULAIRE UTILISE (mm)"; Tab(50); DT(Z)
5630 Debug.Print " EPAISSEUR DE L'ARBRE (mm)"; Tab(50); EP(Z)
5640 Debug.Print
5645 If MODEDIT$ = "S" Or MODEDIT$ = "s" Then GoTo 5690
5650 Debug.Print " MATIERE : "; NOMAT(Z)
5660 Debug.Print " LIMITE ELASTIQUE A LA TEMPERATURE DE CALCUL Re="; Tab(50); REMAT(Z)
5670 Debug.Print " Coefficient de s‚curit‚ dans cette section: s="; Tab(50); CFMAT(Z)
5680 Debug.Print
5690 Debug.Print " MODULE DE FLEXION (cm3)"; Tab(50); FNROUND(ISV(Z))
5700 Debug.Print " MODULE DE TORSION (cm3)"; Tab(50); FNROUND(IOV(Z))
5710 Debug.Print
5720 Debug.Print " CONTRAINTE NORMALE "; Chr$(229); " (MPa)"; Tab(50); FNROUND(MF(Z) / ISV(Z))
5730 Debug.Print " CONTRAINTE TANGENTIELLE "; Chr$(231); " (MPa)"; Tab(50); FNROUND(MT(Z) / IOV(Z))
5735 If MODEDIT$ = "S" Or MODEDIT$ = "s" Then GoTo 5900
5740 Debug.Print String$(5, Chr$(13))
5750 Debug.Print Chr$(27); Chr$(45); Chr$(1);
5760 Debug.Print " CONTRAINTE DE VON MISES "; Chr$(229); "e :"
5770 Debug.Print Chr$(27); Chr$(45); Chr$(0)
5780 Debug.Print Tab(25); X3$; String$(27, X1$); X4$
5790 Debug.Print Tab(25); X2$; " "; Chr$(171); " "; X2$
5800 Debug.Print Tab(25); X2$; " "; Chr$(229); "e = ( "; Chr$(229); Chr$(253); " + 3."; Chr$(231); Chr$(253); " ) "; X2$
5810 Debug.Print Tab(25); X5$; String$(27, X1$); X6$
5820 Debug.Print Tab(25); " d' ou "; Chr$(229); "e = "; FNROUND(T(Z)); " MPa"
5830 Debug.Print String$(5, Chr$(13))
5840 Debug.Print Chr$(27); Chr$(45); Chr$(1);
5850 Debug.Print " CONDITION DE RESISTANCE :"
5860 Debug.Print Chr$(27); Chr$(45); Chr$(0)
5870 Debug.Print Tab(30); X3$; String$(17, X1$); X4$
5880 Debug.Print Tab(30); X2$; " "; Chr$(229); "e < Re/s "; X2$
5890 Debug.Print Tab(30); X5$; String$(17, X1$); X6$
5900 Debug.Print
5905 If MODEDIT$ = "S" Or MODEDIT$ = "s" Then Debug.Print " CONTRAINTE DE VON MISES (MPa)"; Tab(50); FNROUND(T(Z)): Debug.Print: Debug.Print: GoTo 5940
5910 If T(Z) < REMAT(Z) / CFMAT(Z) Then Debug.Print " "; Chr$(229); "e="; FNROUND(T(Z)); " MPa < Contrainte admissible Re/s="; REMAT(Z) / CFMAT(Z); " MPa"
5920 If T(Z) > REMAT(Z) / CFMAT(Z) Then Debug.Print " DEPASSEMENT DE LA CONTRAINTE ADMISSIBLE:": Debug.Print " Contrainte admissible Re/s="; FNROUND(REMAT(Z) / CFMAT(Z)); "MPa < "; Chr$(229); "e="; FNROUND(T(Z)); " MPa"
5930 Debug.Print Chr$(12): If Z < NS Then GoSub 6950
5940 Z = Z + 1
5950 Next
5955 If (MODEDIT$ = "S" Or MODEDIT$ = "s") And Z = NS + 1 Then Debug.Print Chr$(12)
5960 Rem *** MENU ***
5970 'Color 6, 0
5980 'CLS
5990 XMENU = 25: YMENU = 10
6000 CHOIX(1) = "SORTIE SUR IMPRIMANTE": CHOIX(2) = "CALCUL DES CONTRAINTES": CHOIX(3) = "MODIFICATION DE L'AGITATION": CHOIX(4) = "NOUVEAU/FIN": CHOIX(5) = ""
6010 GoSub 2380
6020 'CLS
6030 On CHOIX GoTo 4240, 6200, 6300, 6940
6200 If INC > 0 Then Erase MOTORT: Erase MOFLEX: Erase FLECHE: TRA = 0: TRB = 0
6210 GoTo 1580
6300 If INC > 0 Then Erase MOTORT: Erase MOFLEX: Erase FLECHE: TRA = 0: TRB = 0
6310 GoTo 510
6940 Run
6950 Debug.Print Tab(8); "LUMPP S.A."
6960 Debug.Print Tab(65); "Page nø "; Page
6970 Page = Page + 1
6980 Debug.Print: Debug.Print
6990 Return
7000 XMENU = 25: YMENU = 8
7010 CHOIX(1) = "****** AUTRE ******"
7020 CHOIX(2) = "HELICE LA 3 PALES"
7030 CHOIX(3) = "HELICE LB 3 PALES"
7040 CHOIX(4) = "HELICE MARINE 3 PALES"
7050 CHOIX(5) = "HELICE MARINE 4 PALES"
7060 CHOIX(6) = "HELICE LC 3 PALES "
7070 CHOIX(7) = "HELICE DOUBLE FLUX"
7080 CHOIX(8) = ""
7090 'CLS
7100 'Color 2, 0
7110 'LOCATE 5, 33: Debug.Print "HELICES:"
7120 'Color 3, 0
7130 GoSub 7700
7140 If CHOIX = 1 Then GoTo 7230
7150 If CHOIX = 2 Then NP = 0.15: NQ = 0.34
7160 If CHOIX = 3 Then NP = 0.9: NQ = 0.86
7170 If CHOIX = 4 Then NP = 0.43: NQ = 0.55
7180 If CHOIX = 5 Then NP = 0.8: NQ = 0.6
7190 If CHOIX = 6 Then NP = 0.23: NQ = 0.65: ALP(V) = 30
7200 If CHOIX = 7 Then NP = 0.35: NQ = 0.58
7210 'CLS
7220 GoTo 7710
7230 CHOIX(1) = "****** AUTRE ******"
7240 CHOIX(2) = "TURBINE 4 PALES … 45ø"
7250 CHOIX(3) = "TURBINE 6 PALES … 45ø"
7260 CHOIX(4) = "TURBINE 2 PALES RADIALES"
7270 CHOIX(5) = "TURBINE 4 PALES RADIALES"
7280 CHOIX(6) = "TURBINE 6 PALES RADIALES"
7290 CHOIX(7) = "TURBINE RUSHTON"
7300 CHOIX(8) = ""
7310 'CLS
7320 'Color 2, 0
7330 'LOCATE 5, 33: Debug.Print "TURBINES:"
7340 'Color 3, 0
7350 GoSub 7700
7360 If CHOIX = 1 Then GoTo 7450
7370 If CHOIX = 2 Then NP = 1.5: NQ = 0.75: ALP(V) = 45
7380 If CHOIX = 3 Then NP = 2.2: NQ = 0.78: ALP(V) = 45
7390 If CHOIX = 4 Then NP = 4.25: NQ = 0.75: ALP(V) = 90
7400 If CHOIX = 5 Then NP = 6.1: NQ = 0.87: ALP(V) = 90
7410 If CHOIX = 6 Then NP = 6.4: NQ = 0.98: ALP(V) = 90
7420 If CHOIX = 7 Then NP = 5.4: NQ = 0.8: ALP(V) = 90
7430 'CLS
7440 GoTo 7710
7450 CHOIX(1) = "****** AUTRE ******"
7460 CHOIX(2) = "TURBINE DILACERATRICE"
7470 CHOIX(3) = "TURBINE 6 PALES COURBES"
7480 CHOIX(4) = "CADRE D' AGITATION"
7490 CHOIX(5) = "IMPELLER"
7500 CHOIX(6) = "HELICE A PALES CINTREES PROFIL LARGE"
7510 CHOIX(7) = "HELICE A PALES CINTREES PROFIL EVOLUTIF"
7520 CHOIX(8) = "HELICE A PALES MULTIPLANS"
7530 CHOIX(9) = "*** HORS STANDARD ***"
7540 CHOIX(10) = ""
7550 'CLS
7560 'Color 2, 0
7570 'LOCATE 5, 30: Debug.Print "AUTRES MOBILES:"
7580 'Color 3, 0
7590 GoSub 7700
7600 If CHOIX = 1 Then GoTo 7010
7610 If CHOIX = 2 Then NP = 1.25: NQ = 0.2
7620 If CHOIX = 3 Then NP = 3.2: NQ = 1.1: ALP(V) = 90
7630 If CHOIX = 4 Then NP = 1.9: NQ = 1
7640 If CHOIX = 5 Then NP = 0.49: NQ = 1
7650 If CHOIX = 6 Then NP = 1: NQ = 1
7660 If CHOIX = 7 Then NP = 1: NQ = 1
7670 If CHOIX = 8 Then NP = 1: NQ = 1
7680 'CLS
7690 GoTo 7710
7700 GoTo 2380: Rem *** ALLER AU MENU ***
7710 NP(V) = NP
7720 NQ(V) = NQ
7730 CH(V) = Left$(CHOIX(CHOIX), 1)
7740 If CH(V) <> "H" And CH(V) <> "T" Then CH(V) = ""
7750 If Left$(CHOIX(CHOIX), 13) = "HELICE MARINE" Then R(V) = 0.8: Return
7760 If Left$(CHOIX(CHOIX), 6) = "HELICE" Then R(V) = 0.7: Return
7770 R(V) = 1.2
7780 Return
10000 If Err = 5 Then Resume Next
10010 'CLS: Debug.Print "ERREUR "; Err; " A LA LIGNE "; Erl
10020 End
End Sub