Vezérlő Sub adatbazis_click () On Error GoTo hiba: dde = Shell(CurDir$ + "\adatbaz.exe", 1) On Error GoTo 0 GoTo tovabb: hiba: MsgBox "Ez a program nincs telepítve!", MB_OK, "Figyelem!" Exit Sub tovabb: nagyfonok.windowstate = 1 Exit Sub Sub alapertek () erdes = 0 gg = 9.81 'gravitációs gyorsulás valtoztat = 0 e.anyagnev = "" 'Szállítandó anyag neve e.dg = 89 'Kezdő görgőátmérő e.typ = "Nincs megfelelő" e.bet = 0 Vajanl =.001 'e.dg * PI / 180 e.v = Vajanl 'Szalagsebesség e.haj = 0 'hajtási mód egydobos első e.nagy = 1 'nagyitás módja e.szak = 3 'szakaszok száma e.ft =.25 'Gépelhejezési tényező e.mghjt =.02 'Meghajtási szorzó e.mu =.25 'Surlódási tényező e.fisz = 0 'Anyag halmazolási szöge e.suruseg = 0 'Sürüség e.q = 1000 'Szállítandó anyagmennyiség e.kia = 1 'kialakitas háromgörgős azonos e.mu =.25 krny = "Száraz" e.mghjt =.02 gepelh = "Átlagos" e.ft =.25 meghjt = "Aszinkron motor" e.x(1) = 0 e.x(2) = 100 e.x(3) = 200 'pontok koordinátái 1
e.x(4) = 300 e.y(1) = 0 e.y(2) = 20 e.y(3) = 20 e.y(4) = 30 kp.kx = 1500 kp.ky = 500 Sub anyagtomeg_click () mennyiseg.show Sub anyagvallasztas_click () anyagjellemzo.show Sub beolvas_click () 'olvasas.show 1 Sub edi_click () dde = Shell(CurDir$ + "\EDIT.EXE EREDMENY.TXT", 1) Sub gepkornyezet_click () megkotes.show Sub hajthely_click () hajtas.show Sub hiba () Sub hid_click () hidprogram Sub hidprogram () On Error GoTo hiba6: dde = Shell(CurDir$ + "\hid.exe", 1) On Error GoTo 0 GoTo tovabb6: hiba6: MsgBox "Ez a program nincs telepítve!", MB_OK, "Figyelem!" Exit Sub 2
tovabb6: mentes End Exit Sub Sub kilep_click () kilepjek.show 1 Sub leiras_click () On Error GoTo hiba3: dde = Shell(CurDir$ + "\leiras.exe", 1) On Error GoTo 0 GoTo tovabb3: hiba3: MsgBox "Ez a program nincs telepítve!", MB_OK, "Figyelem!" Exit Sub tovabb3: Exit Sub Sub MDIForm_Load () curpath = CurDir$ If ujra = 0 Then alapertek elsokep.show anyagjellemzo.show kialakitas.show mennyiseg.show megkotes.show e.nagy = 1 nagyfonok.width = 9350 nagyfonok.height = 6500 Sub ment_click () 'mentes.show Sub mentes () 'itt kellene lementeni 3
Sub nevjegy_click () keszitette.show Sub palyavonal_click () palyavonala.show Sub Picture2_Click () anyagjellemzo.show Sub Picture3_Click () megkotes.show Sub Picture4_Click () mennyiseg.show Sub Picture5_Click () kialakitas.show Sub Picture6_Click () palyavonala.show Sub Picture7_Click () picture7.left = 45 picture7.top = 60 picture2.visible = 0 picture3.visible = 0 picture4.visible = 0 picture5.visible = 0 picture6.visible = 0 anyagvallasztas.visible = 0 gepkornyezet.visible = 0 anyagtomeg.visible = 0 szalagvalyu.visible = 0 palyavonal.visible = 0 anyagvallasztas.enabled = 0 gepkornyezet.enabled = 0 anyagtomeg.enabled = 0 szalagvalyu.enabled = 0 palyavonal.enabled = 0 rdb(6) = 1 4
nagyfonok.mousepointer = 11 hajtas.show Sub Picture8_Click () hidprogram Sub szalagvalyu_click () kialakitas.show Sub Timer1_Timer () If rdb(1) > 0 And rdb(2) > 0 And rdb(3) > 0 And rdb(4) > 0 Then If rdb(5) > 0 Then hajthely.enabled = -1 hajthely.visible = -1 picture7.visible = -1 If rdb(6) < 1 Then picture6.visible = -1 palyavonal.enabled = -1 palyavonal.visible = -1 If rdb(5) > 0 Then picture6.visible = 0 palyavonal.enabled = 0 If picture7.visible = -1 Then picture2.visible = 0 picture3.visible = 0 picture4.visible = 0 picture5.visible = 0 picture6.visible = 0 Sub Timer2_Timer () label1.caption = Time 5
Bejelentkező Sub Form_Load () screen.mousepointer = 11 ujra = 0 Sub Form_Unload (Cancel As Integer) screen.mousepointer = 1 Sub Timer1_Timer () Dim grgs As grgtom Dim sztp As szaldat Dim megnevas anyagn Dim grg As grgldat Open CurDir$ + "\adatbaz1.dat" For Random Access Read As #1 Len = Len(grgs) Get #1, 1, grgs Open CurDir$ + "\adatbaz2.dat" For Random Access Read As #2 Len = Len(sztp) Get #2, 1, sztp Open CurDir$+"\adatbaz3.dat"For Random Access Read As #3 Len = Len(megnev) Get #3, 1, megnev Open CurDir$ + "\adatbaz4.dat" For Random Access Read As #4 Len = Len(grg) Get #4, 1, grg Close #1 Close #2 Close #3 Close #4 If grgs.atm <= 0 Or sztp.fon <= 0 Or megnev.suru <= 0 Or grg.b <= 0 Then Unload bejelentkezo MsgBox "Hiányoznak a szükséges adatfájlok, a program nem futtatható. Telepítsen újra, vagy futtassa az Adatbázis kezelőt!", MB_OK, "Figyelem!" Unload bejelentkezo nagyfonok.show 6
Anyagjellemző Dim keresoas anyagn Dim megnevas anyagn Dim i As Integer Sub anyagneve_click () If anyagneve.listindex <> -1 Then For i = 1 To LOF(1) / Len(kereso) Get #1, i, kereso If kereso.nev = anyagneve.text Then label2(0).caption = kereso.suru label2(1).caption = kereso.fisz label2(2).caption = kereso.nev label2(3).caption = kereso.seb e.suruseg = kereso.suru e.fisz = kereso.fisz e.anyagnev = kereso.nev vajanl = kereso.seb Exit For Next i Sub Command1_Click () If e.suruseg >= 0 And e.fisz >= 0 Then Close #1 rdb(1) = 1 nagyfonok.picture2.borderstyle = 1 s = nagyfonok.anyagvallasztas.caption If Left$(s, 2) <> "+ " Then nagyfonok.anyagvallasztas.caption = "+ " + nagyfonok.anyagvallasztas.caption Unload anyagjellemzo Sub Form_Load () anyagjellemzo.top = 50 anyagjellemzo.left = 50 anyagjellemzo.height = 2400 anyagjellemzo.width = 4800 label2(0).caption = e.suruseg label2(1).caption = e.fisz label2(2).caption = e.anyagnev label2(3).caption = vajanl 7
ng = 3 Open CurDir$ + "\adatbaz3.dat" For Random Access Read As #1 Len = Len(kereso) Get #1, 1, megnev If megnev.suru = 0 Then Beep MsgBox "Nincs meg a szükséges adatbázis! Indítsa újra a telepítőt vagy az Adatbázis vezérlőt!", MB_OK, "Figyelem!" Exit Sub For i = 1 To LOF(1) / Len(megnev) Get #1, i, megnev anyagneve.additem megnev.nev Next i Sub Timer1_Timer () If e.suruseg > 0 And e.fisz > 0 And e.anyagnev <> "" And vajanl > 0 Then command1.enabled = 1 8
Anyagmennyiség Dim mertegys(1 To 3) As String * 9 Sub Form_Load () mennyiseg.top = 2500 mennyiseg.left = 50 mennyiseg.height = 2100 mennyiseg.width = 3300 mertegys(1) = "tonna/óra" mertegys(2) = "m3/óra" mertegys(3) = "kg/sec" combo1.additem mertegys(1) combo1.additem mertegys(2) combo1.additem mertegys(3) combo1.text = mertegys(1) ertek.text = e.q Sub rendben_click () Dim i As Integer Dim a As Double Qmax = 30000 'max. szállítható ag. mennyisé t/ó a = Val(LTrim$(RTrim$(ertek.Text))) If a < 32767 Then Select Case LTrim$(RTrim$(combo1.Text)) Case "tonna/óra" e.q = Int(a) Case "m3/óra" e.q = Int(a * e.suruseg) Case "kg/sec" e.q = Int(a / 3.6) End Select If e.q > 0 Or e.q < Qmax Then rdb(3) = 1 nagyfonok.picture4.borderstyle = 1 s = nagyfonok.anyagtomeg.caption If Left$(s, 2) <> "+ " Then nagyfonok.anyagtomeg.caption = "+ " + nagyfonok.anyagtomeg.caption If rdb(4) = 1 Then rdb(4) = 0 kialakitas.show Unload mennyiseg Unload mennyiseg 9
intervallumon kívül MsgBox "Valamelyik adat a megengedett kívül esik!", MB_OK, "Figyelem!" MsgBox "Valamelyik adat a megengedett intervallumon esik!", MB_OK, "Figyelem!" 10
Kialakítás Dim i As Integer Dim szeles As Integer Dim valyusz As Integer Dim lambdad As Integer Dim DDg(1 To 5) As Integer Dim szakasz As Integer Dim Vszam As Single Dim lambda As Single Dim terulet As Single Dim terulet2 As Single Dim k As Single Dim d As Single Dim L1 As Single 'görgőhossz Dim L2 As Single 'görgőhossz Dim Bs As Single 'Nedvesített hevederszélesség Dim la1 As Single Dim la2 As Single Dim la3 As Single Dim la4 As Single Dim l1szam As Single Dim l2szam As Single Dim ngh As Single 'határfordulatszám görgőre (600 1/min) Dim grg As grgldat Sub ellen_click () ellenoriz If terulet < e.q Then elszurtad.show 1 eltalaltad.show 1 Sub ellenoriz () d =.01 Bs = k * Val(RTrim$(LTrim$(combo2.Text))) / 1000 -.05 lambda = Val(RTrim$(LTrim$(combo3.Text))) * (PI / 180) Select Case valtoztat Case 0 'háromgörgős egyenlő görgöhossz terulet = (L1 + (Bs - L1) * Cos(lambda) / 2) * Sin(lambda) * (Bs - L1) / 2 + (((L1 + (Bs - L1) * Cos(lambda)) / 2) ^ 2) * Tan(e.fisz * (PI / 180)) terulet = terulet * 3600 *.81 * e.suruseg * Val(RTrim$(LTrim$(combo1.Text))) 11
Case 1 'háromgörgős különböző görgőhossz terulet = (L1 + (Bs - L1) * Cos(lambda) / 2) * Sin(lambda) * (Bs - L1) / 2 + (((L1 + (Bs - L1) * Cos(lambda)) / 2) ^ 2) * Tan(e.fisz * (PI / 180)) terulet = terulet * 3600 *.81 * e.suruseg * Val(RTrim$(LTrim$(combo1.Text))) Case 2 'kétgörgős terulet = ((Bs / 2) ^ 2) * Cos(lambda) * Sin(lambda) + (((Bs / 2) * Cos(lambda)) ^ 2) * Tan(e.fisz * (PI / 180)) terulet = terulet * 3600 *.81 * e.suruseg * Val(RTrim$(LTrim$(combo1.Text))) Case 3 'ötgörgős If Val(RTrim$(LTrim$(combo2.Text))) > 2000 Then d =.015 If lambdad = 30 Then la3 = 60 If lambdad = 25 Then la3 = 55 Beep combo3.text = "25" lambdad = 25 la3 = 55 la1 = lambdad * PI / 180 la2 = la3 * PI / 180 l1szam = L1 + 2 * (d * Cos(la1 / 2) - d * Sin(la1 / 2) / Tan(la1 / 2)) l2szam = L1 + 2 * d * Sin(la1 / 2) / Sin(la1) terulet = (l1szam + l2szam * Cos(la1)) * l2szam * Sin(la1) + ((l1szam / 2 + l2szam * Cos(la1) + Cos(la2) * (Bs - l1szam-2* l2szam) / 2) ^ 2) * Tan(e.fisz * PI / 180) terulet = terulet + (l1szam + 2 * l2szam * Cos(la1) + Cos(la2) * (Bs - l1szam - 2 * l2szam) / 2) * (Bs - l1szam - 2 * l2szam) * Sin(la2) / 2 terulet = terulet * 3600 *.81 * e.suruseg * Val(RTrim$(LTrim$(combo1.Text))) label1.caption = "L=" + Format$(L1 * 1000, "0") End Select Sub feltolt () 12
combo2.additem "400" combo2.additem "500" combo2.additem "650" combo2.additem "800" combo2.additem "1000" combo2.additem "1200" combo2.additem "1400" combo2.additem "1600" combo2.additem "1800" combo2.additem "2000" combo2.additem "2200" combo2.additem "2400" combo2.additem "2600" combo2.additem "2800" combo2.additem "3000" combo1.additem "0.42" combo1.additem "0.52" combo1.additem "0.66" combo1.additem "0.84" combo1.additem "1.05" combo1.additem "1.31" combo1.additem "1.68" combo1.additem "2.09" combo1.additem "2.62" combo1.additem "3.35" combo1.additem "4.19" combo1.additem "5.20" combo1.additem "6.60" combo1.additem "8.40" For i = 20 To 45 Step 5 combo3.additem Str$(i) Next i Sub Form_Load () DDg(1) = 89 DDg(2) = 108 DDg(3) = 133 DDg(4) = 159 DDg(5) = 194 Open LTrim$(RTrim$(curpath)) + "\adatbaz4.dat" For Random Access Read As #4 Len = Len(grg) kialakitas.top = 2500 kialakitas.left = 3400 kialakitas.height = 2100 kialakitas.width = 5700 k =.9 If e.alf > 0 And e.v > 0 And e.b > 0 Then Vszam = e.v 13
valyusz = e.alf szeles = e.b lambdakeres feltolt picture1(valtoztat).visible = -1 If valtoztat = 1 Then label1.caption = "L1=" + Format$(L1 * 1000, "0") + "; L2=" + Format$(L2 * 1000, "0") label1.caption = "L=" + Format$(L1 * 1000, "0") combo1.text = Forma(Vszam) combo3.text = valyusz combo2.text = szeles Sub Form_Unload (Cancel As Integer) e.v = Val(combo1.Text) For i = 1 To 5 ngh = 60 * e.v / (PI * (DDg(i) / 1000)) If ngh >= 550 And ngh <= 650 Then e.dg = DDg(i) Exit For Next i Close #4 Sub kialakit_click () If valtoztat < 3 Then valtoztat = valtoztat + 1 valtoztat = 0 lambdakeres Select Case valtoztat Case 0 e.kia = 1 Case 1 e.kia = 2 Case 2 e.kia = 0 Case 3 e.kia = 3 End Select For i = 0 To 3 14
picture1(i).visible = 0 Next i picture1(valtoztat).visible = -1 combo1.text = Forma(Vszam) combo3.text = valyusz combo2.text = szeles Sub lambdakeres () i = 2 Get #4, 1, grg valyusz = 20 'Kezdő vályuszög szeles = grg.b 'Kezdő szalagszélesség lambda = valyusz * (PI / 180) Bs = k * szeles / 1000 -.05 'Nedvesített szélesség Select Case valtoztat Case 0 'háromgörgős egyenlő görgőhossz terulet = (grg.hl / 1000 + (Bs - grg.hl / 1000) * Cos(lambda) / 2) * Sin(lambda) * (Bs - grg.hl / 1000) / 2 + (((grg.hl / 1000 + (Bs - grg.hl / 1000) * Cos(lambda)) / 2) ^ 2) * Tan(e.fisz * (PI / 180)) terulet = terulet - e.q / (3600 *.81 * e.suruseg * Vajanl) L1 = grg.hl / 1000 L2 = 0 Do Get #4, i, grg If grg.hl > 0 Then Bs = k * grg.b / 1000 -.05 For lambdad = 25 To 45 Step 5 lambda = lambdad * (PI / 180) terulet2 = (grg.hl / 1000 + (Bs - grg.hl / 1000) * Cos(lambda) / 2) * Sin(lambda) * Bs -grg.hl / 1000) / 2 + (((grg.hl / 1000 + (Bs - grg.hl / 1000) * Cos(lambda)) / 2) ^ 2) * Tan(e.fisz * (PI / 180)) terulet2 = terulet2 - e.q / (3600 *.81 * e.suruseg * Vajanl) If Abs(terulet2) < Abs(terulet) Then terulet = terulet2 valyusz = lambdad szeles = grg.b 15
radiánba +.1 1000) / Vajanl) L1 = grg.hl / 1000 Next lambdad i = i + 1 Loop While (grg.b > 0) i = 1 e.tl = L1 * 1000 Bs = k * szeles / 1000 -.05 lambda = valyusz * (PI / 180) 'fokból -> terulet = (L1 + (Bs - L1) * Cos(lambda) / 2) * Sin(lambda) * (Bs - L1) / 2 + (((L1 + (Bs - L1) * Cos(lambda)) / 2) ^ 2) * Tan(e.fisz * (PI / 180)) e.ter = terulet Vszam = e.q / (3600 *.81 * e.suruseg * terulet) label1.caption = "L=" + Format$(L1 * 1000, "0") Case 1 'háromgörgős nem egyenlő görgőhossz terulet = (grg.hl1 / 1000 + (Bs - grg.hl1 / 1000) * Cos(lambda) / 2) * Sin(lambda) * (Bs - grg.hl1 / 2 + (((grg.hl1 / 1000 + (Bs - grg.hl1 / 1000) * Coss(lambda)) / 2) ^ 2) *Tan(e.fisz * (PI / 180)) terulet = terulet - e.q / (3600 *.81 * e.suruseg * L1 = grg.hl1 / 1000 L2 = grg.hl2 / 1000 Do Get #4, i, grg If grg.hl1 > 0 Then Bs = k * grg.b / 1000 -.05 For lambdad = 25 To 45 Step 5 lambda = lambdad * (PI / 180) Sin(lambda) * grg.hl1 / 2) * (3600 * 16 terulet2 = (grg.hl1 / 1000 + (Bs - grg.hl1 / 1000) * Cos(lambda) / 2) * (Bs - grg.hl1 / 1000) / 2 + (((grg.hl1 / 1000 + (Bs - 1000) * Cos(lambda)) / 2) ^ Tan(e.fisz * (PI / 180)) terulet2 = terulet2 - e.q /.81 * e.suruseg * Vajanl) If Abs(terulet2) < Abs(terulet) Then
+.1 "0") + "; terulet = terulet2 valyusz = lambdad szeles = grg.b L1 = grg.hl1 / 1000 L2 = grg.hl2 / 1000 Next lambdad i = i + 1 Loop While (grg.b > 0) i = 1 e.tl = L2 * 1000 Bs = k * szeles / 1000 -.05 lambda = valyusz * (PI / 180) terulet = (L1 + (Bs - L1) * Cos(lambda) / 2) * Sin(lambda) * (Bs - L1) / 2 + (((L1 + (Bs - L1) * Cos(lambda)) / 2) ^ 2) * Tan(e.fisz * (PI / 180)) e.ter = terulet Vszam = e.q / (3600 *.81 * e.suruseg * terulet) label1.caption = "L1=" + Format$(L1 * 1000, L2=" + Format$(L2 * 1000, "0") Case 2 'kétgörgős terulet = ((Bs / 2) ^ 2) * Cos(lambda) * Sin(lambda) + (((Bs / 2) * Cos(lambda)) ^ 2) * Tan(e.fisz * (PI / 180)) terulet = terulet - e.q / (3600 *.81 * e.suruseg * Vajanl) L1 = grg.kl / 1000 L2 = 0 Do Get #4, i, grg If grg.kl > 0 Then Bs = k * grg.b / 1000 -.05 For lambdad = 25 To 45 Step 5 lambda = lambdad * (PI / 180) * (3600 * 17 terulet2 = ((Bs / 2) ^ 2) * Cos(lambda) * Sin(lambda) + (((Bs / 2) * Cos(lambda)) ^ 2) Tan(e.fisz * (PI / 180)) terulet2 = terulet2 - e.q /.81 * e.suruseg * Vajanl) If Abs(terulet2) < Abs(terulet) Then terulet = terulet2
radiánba Sin(lambda) + 180)) +.1 valyusz = lambdad szeles = grg.b L1 = grg.kl / 1000 Next lambdad i = i + 1 Loop While (grg.b > 0) i = 1 e.tl = L1 * 1000 Bs = k * szeles / 1000 -.05 lambda = valyusz * (PI / 180) 'fokból -> terulet = ((Bs / 2) ^ 2) * Cos(lambda) * (((Bs / 2) * Cos(lambda)) ^ 2) * Tan(e.fisz * (PI / e.ter = terulet Vszam = e.q / (3600 *.81 * e.suruseg * terulet) label1.caption = "L=" + Format$(L1 * 1000, "0") Sin(la1) 180) Cos(la1) + l1szam Vajanl) Cos(la2) * Case 3 'ötgörgős d =.01 la1 = 25 * PI / 180 la2 = 55 * PI / 180 l1szam = grg.ol / 1000 + 2 * (d * Cos(la1 / 2) - d * Sin(la1 / 2) / Tan(la1 / 2)) l2szam = grg.ol / 1000 + 2 * d * Sin(la1 / 2) / terulet = (l1szam + l2szam * Cos(la1)) * l2szam * Sin(la1) + ((l1szam / 2 + l2szam * Cos(la1) + (Bs - l1szam - 2 * l2szam)/2)^2) * Tan(e.fisz * PI / terulet = terulet + (l1szam + 2 * l2szam * Cos(la2) * (Bs - l1szam - 2 * l2szam) / 2) * (Bs - - 2 * l2szam) * Sin(la2) / 2 terulet = terulet - e.q / (3600 *.81 * e.suruseg * L1 = grg.ol / 1000 L2 = 0 valyusz = 25 la4 = 55 Do Get #4, i, grg If grg.ol > 0 Then Bs = k * grg.b / 1000 -.05 18
(d * * + + If grg.b > 2000 Then d =.015 For lambdad = 25 To 30 Step 5 If lambdad = 30 Then la3 = 60 la3 = 55 la1 = lambdad * PI / 180 la2 = la3 * PI / 180 l1szam = grg.ol / 1000 + 2 * Cos(la1 / 2) - d * Sin(la1 / 2) / Tan(la1 / 2)) l2szam = grg.ol / 1000 + 2 * d Sin(la1 / 2) / Sin(la1) terulet2 = (l1szam + l2szam * Cos(la1)) * l2szam * Sin(la1) ((l1szam / 2 + l2szam * (la1) Cos(la2) * (Bs - l1szam - 2 * + 2 * (Bs - / 2 (3600 * l2szam)/2)^2)*tan(e.fisz*pi/180) terulet2 = terulet2 + (l1szam * l2szam * Cos(la1) + Cos(la2) (Bs - l1szam - 2 * am) / 2) * l1szam - 2 * l2szam) * Sin(la2) terulet2 = terulet2 - e.q /.81 * e.suruseg * Vajanl) If Abs(terulet2) < Abs(terulet) Then terulet = terulet2 valyusz = lambdad szeles = grg.b la4 = la3 L1 = grg.ol / 1000 Next lambdad i = i + 1 Loop While (grg.b > 0) i = 1 Bs = k * szeles / 1000 -.05 19
2) / 180) s(la2) * Cos(la1) + l1szam - 2 +.1 If szeles > 2000 Then d =.015 d =.01 la1 = lambdad * PI / 180 la2 = la4 * PI / 180 l1szam = L1 + 2 * (d * Cos(la1 / 2) - d * Sin(la1 / Tan(la1 / 2)) l2szam = L1 + 2 * d * Sin(la1 / 2) / Sin(la1) terulet = (l1szam + l2szam * Cos(la1)) * l2szam * Sin(la1) + ((l1szam / 2 + l2szam * Cos(la1) + (Bs - l1szam-2*l2szam) / 2) ^ 2) * Tan(e.fisz * PI / terulet = terulet + (l1szam + 2 * l2szam * Cos(la2) * (Bs - l1szam - 2 * l2szam) / 2) *s - * l2szam) * Sin(la2) / 2 e.ter = terulet Vszam = e.q / (3600 *.81 * e.suruseg * terulet) label1.caption = "L=" + Format$(L1 * 1000, "0") e.tl = L1 * 1000 End Select Sub tovabb_click () ellenoriz If terulet < e.q Then elszurtad.show 1 rdb(4) = 1 nagyfonok.picture5.borderstyle = 1 s = nagyfonok.szalagvalyu.caption If Left$(s, 2) <> "+ " Then nagyfonok.szalagvalyu.caption = "+ " + nagyfonok.szalagvalyu.caption e.v = Val(RTrim$(LTrim$(combo1.Text))) e.b = Val(RTrim$(LTrim$(combo2.Text))) e.alf = Val(RTrim$(LTrim$(combo3.Text))) Qa = 1 Unload kialakitas 20
Megkötés Sub Command1_Click () olvas rdb(2) = 1 nagyfonok.picture3.borderstyle = 1 s = nagyfonok.gepkornyezet.caption If Left$(s, 2) <> "+ " Then nagyfonok.gepkornyezet.caption = "+ " + nagyfonok.gepkornyezet.caption Unload megkotes Sub Form_Load () megkotes.top = 50 megkotes.left = 4900 megkotes.height = 2400 megkotes.width = 4200 check1.value = erdes combo1.text = krny combo2.text = gepelh combo3.text = meghjt combo1.additem "Száraz" combo1.additem "Enyhén nedves" combo1.additem "Igen nedves" combo2.additem "Jó" combo2.additem "Átlagos" combo2.additem "Rossz" combo3.additem "Aszinkron motor [AM]" combo3.additem "AM + surlódó tgk." combo3.additem "Csúszógyűrüs motor" Sub olvas () If check1.value = 0 Then erdes = 0 If combo1.text = "Száraz" Then e.mu =.25 krny = "Száraz" If combo1.text = "Enyhén nedves" Then e.mu =.15 krny = "Enyhén nedves" If combo1.text = "Igen nedves" Then e.mu =.1 krny = "Igen nedves" erdes = 1 21
If combo1.text = "Száraz" Then e.mu =.35 krny = "Száraz" If combo1.text = "Enyhén nedves" Then e.mu =.3 krny = "Enyhén nedves" If combo1.text = "Igen nedves" Then e.mu =.25 krny = "Igen nedves" If combo2.text = "Jó" Then e.mghjt =.018 gepelh = "Jó" If combo2.text = "Átlagos" Then e.mghjt =.02 gepelh = "Átlagos" If combo2.text = "Rossz" Then e.mghjt =.03 gepelh = "Rossz" If combo3.text = "Aszinkron motor [AM]" Then e.ft =.25 meghjt = "Aszinkron motor [AM]" If combo3.text = "AM + surlódó tgk." Then e.ft =.15 meghjt = "AM + surlódó tgk." If combo3.text = "Csúszógyűrüs motor" Then e.ft =.1 meghjt = "Csúszógyűrüs motor" 22
Pályavonal Dim aa As Integer Dim bb As Integer Dim Xa As Integer Dim Ya As Integer Dim xx As Integer 'koordinátapont (pályavonal) Dim yy As Integer 'koordinátapont (pályavonal) Dim J As Integer Dim vedett As Integer Dim nagyit As Integer Dim elso As Integer Sub feltolt () elso = 0 aa = 2480 bb = 600 combo2.text = e.szak combo1.text = e.nagy Sub Form_DblClick () If elso <= 1 And vedett > 0 Then elso = elso + 1 J = 1 currentx = xx currenty = yy kp.kx = xx + bb kp.ky = aa - yy e.x(j) = 0 e.y(j) = 0 list1.additem Format(e.x(J), "###0") list2.additem Format(e.y(J), "###0") aa = aa - Ya bb = bb + Xa kord.caption = "0 0" fillstyle = 0 Circle (xx, yy), 50,,,, 1 fillstyle = 1 Sub Form_Load () palyavonala.top = 50 palyavonala.left = 50 vedett = 0 For i = 1 To 10 combo1.additem Str$(i) combo2.additem Str$(i) Next i 23
nagyit = e.nagy * 10 szakasz = e.szak combo2.text = e.szak combo1.text = e.nagy elso = 0 aa = 2620 bb = 600 J = 1 rajzol Sub Form_MouseDown (button As Integer, Shift As Integer, x As Single, y As Single) xx = x yy = y Xa = x - bb Ya = aa - y If Xa > 0 Then If vedett >= 1 And Xa > e.x(j) And Abs((Ya / nagyit - e.y(j)) / (Xa / nagyit - e.x(j))) <=.34 Then If elso >= 1 And elso < Val(RTrim$(LTrim$(combo2.Text))) + 1) Then J = J + 1 elso = elso + 1 Line -(xx, yy) fillstyle = 0 Circle (xx, yy), 50,,,, 1 fillstyle = 1 e.x(j) = Xa / nagyit e.y(j) = Ya / nagyit list1.additem Format$(e.x(J), "###0") list2.additem Format$(e.y(J), "###0") z = "Hibás pont" Sub Form_MouseMove (button As Integer, Shift As Integer, x As Single, y As Single) Xa = x - bb Ya = aa - y If y > 900 And y <= 2620 And x < 7115 And x >= 600 Then kord.left = x - 850 kord.top = y - 350 kord.caption = Format$(Xa / nagyit, "0") + "" + Format$(Ya / 24
nagyit, "0") kord.caption = "Határon kívül" Sub rajzol () currentx = kp.kx currenty = kp.ky fillstyle = 0 Circle (kp.kx - bb, aa - kp.ky), 50,,,, 1 fillstyle = 1 list1.additem Format(e.x(1), "###0") list2.additem Format(e.y(1), "###0") For i = 1 To 11 If e.x(i) > 0 Or e.y(i) > 0 Then list1.additem Format(e.x(i), "###0") list2.additem Format(e.y(i), "###0") If e.x(i) > 0 Then fillstyle = 0 Circle (e.x(i) * nagyit + kp.kx - bb, aa - e.y(i) * nagyit - kp.ky), 50,,,, 1 fillstyle = 1 Line (e.x(i - 1) * nagyit - bb + kp.kx, aa - e.y(i - 1) * nagyit - kp.ky)-(e.x(i) * nagyit - bb + kp.kx, - e.y(i) * nagyit - kp.ky) Next i Sub rendben_click () e.nagy = nagyit e.szak = szakasz rdb(5) = 1 nagyfonok.picture6.borderstyle = 1 s = nagyfonok.palyavonal.caption If Left$(s, 2) <> "+ " Then nagyfonok.palyavonal.caption = "+ " + nagyfonok.palyavonal.caption nagyfonok.picture6.visible = 0 nagyfonok.palyavonal.enabled = 0 Unload palyavonala 25
Sub Timer1_Timer () szakasz = Val(RTrim$(LTrim$(combo2.Text))) If szakasz > 10 Then szakasz = 10 combo2.text = szakasz If szakasz < 1 Then szakasz = 1 combo2.text = szakasz nagyit = Val(RTrim$(LTrim$(combo1.Text))) * 10 If nagyit < 10 Then nagyit = 10 combo1.text = "1" If nagyit > 10 Then nagyit = 100 combo1.text = "10" Sub torles_click () list1.clear list2.clear palyavonala.cls feltolt kp.kx = 0 kp.ky = 0 kord.caption = "0 0" vedett = 1 26
Hajtáselrendezés Sub Form_Load () picture1(e.haj).borderstyle = 1 hajtas.top = 50 hajtas.left = 50 nagyfonok.mousepointer = 1 gorgosuly 'görgő kiválasztása adatbázisból 'pl. a hevederszélesség fügvénye. Sub gorgosuly () Dim grgs As grgtom i = 0 Open CurDir$ + "\adatbaz1.dat" For Random Access Read As #7 Len = 18 For i = 1 To LOF(7) / Len(grgs) Get #7, i, grgs If (e.kia = grgs.kia And e.dg = grgs.atm And e.b <= grgs.sel) Then Exit For Next i e.tg = grgs.tom Close #7 Sub kilepes () nagyfonok.picture7.borderstyle = 1 s = nagyfonok.hajthely.caption If Left$(s, 2) <> "+ " Then nagyfonok.hajthely.caption = "+ " + nagyfonok.hajthely.caption nagyfonok.picture7.visible = 0 optimal.show Unload hajtas Sub Picture1_Click (Index As Integer) Dim i As Integer For i = 0 To 4 picture1(i).borderstyle = 0 Next i Select Case Index Case 0 27
e.haj = 0 picture1(index).borderstyle = 1 Case 2 e.haj = 2 picture1(index).borderstyle = 1 Case 3 e.haj = 4 picture1(index).borderstyle = 1 Case 4 e.haj = 3 picture1(index).borderstyle = 1 End Select Sub Picture1_DblClick (Index As Integer) Select Case Index Case 0 e.haj = 0 Smn = Fker * (1 + 1 / (Exp(e.mu * 230 * PI / 180))) Case 2 e.haj = 2 Smn = Fker * (1 + 1 / (Exp(e.mu * 230 * PI / 180))) Case 3 e.haj = 4 Smn = Fker * (1 + 1 / (Exp(2 * e.mu * 210 * PI / 180))) Case 4 e.haj = 3 Smn = Fker * (1 + 1 / (Exp(2 * e.mu * 210 * PI / 180))) End Select nagyfonok.timer1.enabled = 0 kilepes 28
Heveder kivállasztás Dim li Dim hi Dim sztp Dim j Dim PP As Single'szakasz hossza As Single'szakasz emelkedése As szaldat'heveder adatbázis As Integer'Smax nyílvántartója As Integer'potenciális eredmények nyílvántartása Const nb = 4 'bizt. tény. Sub Command1_Click () Unload optimal Unload nagyfonok ujra = 1 nagyfonok.show nagyfonok.picture2.visible = 1 nagyfonok.picture3.visible = 1 nagyfonok.picture4.visible = 1 nagyfonok.picture5.visible = 1 nagyfonok.picture6.visible = 0 nagyfonok.picture7.visible = 0 For i = 1 To 6 rdb(i) = 0 Next i Sub elfogad_click () e.h = epo(1 + list1.listindex).h e.typ = epo(1 + list1.listindex).typ e.tip = epo(1 + list1.listindex).tip e.bet = epo(1 + list1.listindex).bet e.faj = epo(1 + list1.listindex).faj hajtero mentes Unload optimal nagyfonok.picture8.visible = -1 nagyfonok.hid.enabled = -1 nagyfonok.szerk.enabled = 0 szoveg nagyfonok.edi.enabled = 1 'nagyfonok.height = 1150 Sub Form_Load () optimal.top = 150 optimal.left = 1500 qh = e.b / 45 'Heveder folyómétertömege (induló) N/m 29
Open CurDir$ + "\adatbaz2.dat" For Random Access Read As #9 Len = Len(sztp) keres Sub Form_Unload (Cancel As Integer) Close #9 Sub hajtero () 'a hajtasnal ebredő erő kerül majd ide Sub keres () Dim ias Integer Dim iias Integer Dim iii As Integer Dim jas Integer Call kiindulo(qh) PP = 0 For i = 1 To LOF(9) / Len(sztp) Get #9, i, sztp If (Smx * nb / e.b) <= (sztp.lan * sztp.fon) And (Smx * nb / e.b) >= (sztp.lan * sztp.fon *.9) Then PP = PP + 1 epot(pp).h = sztp.tom * e.b *.001 list2.additem sztp.typ+format$(sztp.tip, "####")+Format$(sztp.fon, "##")+ sztp.faj Next i ii = 0 For i = 1 To PP Call kiindulo(epot(i).h) epot(i).h = 0 For j = 1 To LOF(9) / Len(sztp) Get #9, j, sztp If (Smx * nb / e.b) <= (sztp.lan * sztp.fon) And (Smx * nb / e.b) >= (sztp.lan * sztp.fon *.9) Then ii = ii + 1 ep(ii).h = sztp.tom * e.b *.001 ep(ii).typ = sztp.typ ep(ii).tip = sztp.tip ep(ii).bet = sztp.fon ep(ii).faj = sztp.faj 30
Next j Next i Call kivalaszt(ii) Sub kiindulo (qqh As Single) e.lom = 1 e.lum = 3 * e.lom 'görgőosztás felül 'görgőosztás alul qa = gg * e.q / (3.6 * e.v) 'Anyag folyómétertömege N/m qfo = e.tg * gg / e.lom 'görgő folyómétertömege felül qfu = e.tg * gg / e.lum 'görgő folyómétertömege alul qo = qqh + qfo qu = qqh + qfu e.qq = qo + qu + qfu + qfo + qa 'átadódó megoszló terhelés Fo = 0 Fu = 0 Smn = 0 Smx = 0 erő For i = 1 To e.szak li = e.x(i + 1) - e.x(i) hi = e.y(i + 1) - e.y(i) Fu = Fu + (e.mu * li + hi) * qu 'alsóági erő erő If hi < 0 Then Fo = Fo + (e.mu * li + hi) * qo 'felsőági lejtő Fo = Fo + (e.mu * li + hi) * (qo + qa) emelkedő 'felsőági Next i Fker = Fo + Fu Smn = (qa + qqh) * e.lom ^ 2 Smn = Smn / (8 *.15) 'relativ belógás = 1.5%3.16 Smx = Smn + Fker 'Max húzóerő, a hevedert erre kell kiválasztani ld:3.4-6 31
Sub kivalaszt (ii As Integer) Dim ias Integer Dim jas Integer Dim kas Integer Dim aa As Integer And epo(k).faj Next i k = 1 epo(1) = ep(1) list1.additem Mid$(epo(1).typ, 1, 7) + " " + epo(1).faj For i = 1 To ii aa = 0 For j = 1 To k If ep(i).tip + ep(i).bet = epo(j).tip + epo(j).bet ep(i).faj = epo(j).faj Then aa = 1 Next j If aa = 0 Then k = k + 1 epo(k) = ep(i) list1.additem Mid$(epo(k).typ, 1, 7) + " " + Sub List1_Click () If list1.listindex >= 0 Then label2(0).caption = epo(1 + list1.listindex).tip label2(1).caption = epo(1 + list1.listindex).faj label2(2).caption = epo(1 + list1.listindex).bet label2(3).caption = epo(1 + list1.listindex).h elfogad.enabled = True Sub mentes () Open CurDir$ + "\eredmeny.dat" For Random Access Write As #3 Len = Len(e) Put #3, 1, e Close #3 clipboard.settext "SZALAG", CF_TEXT Sub szoveg () Open CurDir$ + "\eredmeny.txt" For Output As #20 Print #20, "Szállítandó anyag jellemzői:" Print #20, Print #20, Spc(16); "Szállítandó anyag neve:"; e.anyagnev 32
Print #20, Spc(16); "Anyagterület :"; e.ter,, " m^2" Print #20, Spc(16); "Halmazolhatósági szög:";(e.fisz,), " fok" Print #20, Spc(16); "Sűrüség:"; Format$(e.suruseg, "##,##"), " t/m^3" Print #20, Spc(16); "Anyagmennyiség:"; Format$(e.Q, "#"), " t/h" Print #20, Print #20, Print #20, "A kiválasztott heveder jellemzői:" Print #20, Print #20, Spc(16); "Hevederszélesség :"; Format$(e.B, "#"), " mm" Print #20, Spc(16); "Heveder név :"; e.typ Print #20, Spc(16); "Heveder tipusszám:"; Format$(e.tip, "####") Print #20, Spc(16); "Heveder betétszám:"; Format$(e.bet, "####") Print #20, Spc(16); "Heveder folyómétertömeg:"; e.h, ""), " kg/m" Print #20, Spc(16); "Heveder kivitele :"; e.faj Print #20, Print #20, Print #20, "Vályúkialakításra vonatkozó jellemzők:" Print #20, " " Print #20, Spc(16); "Görgőátmérő:"; Format$(e.Dg, "####"), " mm" Print #20, Spc(16); "Görgőhossz:"; Format$(e.Tl, "####"), " mm" Print #20, Spc(16); "Görgőtömeg:"; Format$(e.Tg, "###,#"), " kg" Print #20, Spc(16); "Görgőosztás felül:"; Format$(e.lom, "####"), " m" Print #20, Spc(16); "Görgőosztás alul :"; Format$(e.lum, "####"), " m" Print #20, Spc(16); "Vályúszög:"; Format$(e.alf, "####"), " fok" Print #20, Print #20, Print #20, "Terhelési jellemzők:" Print #20, Spc(16); "Sebesség :"; Format$(e.v, "####"), " m/s" Print #20, Spc(16); "Átadódó megoszló terhelés:"; e.qq, " kg/m" Print #20, Spc(16); "Teljesítmény igény:"; e.p,, " kw" Print #20, Print #20, Print #20, "Pályaszakasz pontjainak koordinátái:" Print #20, Spc(16); "1.töréspont :[0, 0]m" For i = 2 To e.szak + 1 Print #20, Spc(16); Format$(i, ""); ".töréspont :["; 33
"####"); Next i Close #20 Format$(e.x(i), "####"); ","; Format$(e.y(i), "]", " m" 34
Elsőkép Sub Form_Load () elsokep.top = 100 elsokep.left = (nagyfonok.width / 2) - 3600 Sub Timer1_Timer () Unload elsokep Kilépés megerősítő Sub Form_Load () Beep Sub igen_click () End Sub nem_click () Unload kilepjek Névjegy Sub Timer1_Timer () Unload keszitette Figyelmeztető 1 Sub Timer1_Timer () Unload elszurtad Figyelmeztető 2 Sub Timer1_Timer () Unload eltalaltad 35
Változók Type szaldat typ As String * 8 tip As Integer lan As Integer vet As Integer fon As Integer tom As Single faj As String * 9 End Type 'szalag adatbazas 'név 'tipszám 'hosszirányu teherbírás 'keresztirányu teherbírás 'betétszám 'tömeg 'fajta Type grgldat 'Görgőhosszak a kialakítás B As Integer 'és a szalagszélesség fgv-jében kl As Integer hl As Integer hl1 As Integer hl2 As Integer ol As Integer End Type Type grgtom 'Tartógörgő súlytáblázat sel As Integer 'Szélesség atm As Integer 'Átmérő tom As Single 'Tömeg kia As Integer 'Kialakítás :Vályus, Lapos End Type Type anyagn 'Anyagnév és sűrüség tárolása nev As String * 20 'Anyagnév suru As Single 'Sűrüség fisz As Single 'Fi "halmazolhatósági" szög seb As Single 'Ajánlott sebesség End Type Type kezdopont kx As Integer ky As Integer End Type 'Pályavonal 36
Type eredmeny P As Single 'teljesítmény igény kw ter As Single 'anyagterület m^2 Dg As Integer 'Görgőátmérő Tl As Integer 'Görgőhossz Tg As Single 'Görgőtömeg lom As Single 'görgőosztás felül lum As Single 'görgőosztás alul ft As Single 'Gépelhejezési tényező mghjt As Single 'Meghajtási szorzó mu As Single 'Surlódási tényező fisz As Single 'Anyag halmazolási szöge surusegas Single 'Sürüség v As Single 'Sebesség alf As Integer 'Vályuszög Q As Integer 'Szállítandó anyagmennyiség B As Integer 'Kiválasztott szalag szélesség kia As Integer 'kialakítas typ As String * 16 'Heveder név tip As Integer 'Heveder tipusszám bet As Integer 'Heveder betétszám h As Single 'Heveder folyómétertömeg faj As String * 9 'Heveder kivitele haj As Integer 'hajtáshely anyagnev As String * 20 'Szállítandó anyag neve nagy As Integer 'Nagyitási tányező pályavonalnál szak As Integer 'Pályaszakaszok száma x(1 To 11) As Integer 'X koordináták y(1 To 11) As Integer ' Y koordináták qq As Single 'megoszló terhelés End Type 37
Global i As Integer 'Általános számláló Global Qmax As Integer 'Maximális szállítható mennyiség Global valtoztat As Integer 'figyelö (kialakítás) Global szakasz As Integer Global erdes As Integer 'figyelö (erdesség) Global ng As Integer 'Görgőszám Global rdb(1 To 6) As Integer Global ujra As Integer 'Újraindítás Global gg As Single Global Fo As Single 'Felsőági erő Global Fu As Single 'Alsóági erő Global Fker As Single 'Kerületi erő Global qh As Single 'heveder fm. súly Global qo As Single 'heveder+görgő fm. súly felül Global qu As Single 'heveder+görgő fm. súly alul Global qfo As Single 'görgő fm. súly felül Global qfu As Single 'görgő fm. súly alul Global qa As Single 'anyag f. súly Global Vajanl As Single 'Ajánlott sebesség Global Smn As Single 'vonóelemben ébredő minimális húzóerő Global Smx As Single 'vonóelemben ébredő maximális húzóerő Fker+Smn Global kp As kezdopont 'pályavonal kezdőpont Global e As eredmeny 'Eredmény rekord Global epot(1 To 100)As eredmeny 'Potenciális eredmények Global epo(1 To 100) As eredmeny Global ep(1 To 100) As eredmeny 'Potenciális eredmények Global meghjt As String * 20'Meghajtási mód kiválasztásához Global krny As String * 20'Környezet kiválasztásához Global gepelh As String * 10'Gépelhelyezés kiválasztásához Global adatnev As String * 30'Az eredményfile nevének megjegyzése Global curpath As String * 30'Az aktuális elérési utvonal 38
Global Const PI = 3.14159265359 Global Const CF_LINK = &HBF00 Global Const CF_TEXT = 1 Global Const CF_BITMAP = 2 Global Const CF_METAFILE = 3 Global Const CF_DIB = 8 Global Const CF_PALETTE = 9 Global Const MB_OK = 0 ' OK button only Global Const MB_OKCANCEL = 1 ' OK and Cancel buttons Global Const MB_ABORTRETRYIGNORE = 2' Abort, Retry, and Ignore buttons Global Const MB_YESNOCANCEL = 3 ' Yes, No, and Cancel buttons Global Const MB_YESNO = 4 ' Yes and No buttons Global Const MB_RETRYCANCEL = 5 ' Retry and Cancel buttons 39
Függfények Function forma (be As Single) As String Dim ttt As Integer Dim kkk As Single If be >= 0 Then ttt = Int(be) kkk = Int(1000 * (be - ttt)) ttt = Int(be) + 1 kkk = Int(1000 * (be - ttt)) 'egészrész 'törtrész 'egészrész 'törtrész (kkk)) If ttt <> 0 Then If kkk > 0 Then forma = LTrim$(Str$(ttt)) + "." + LTrim$(Str$ forma = LTrim$(Str$(ttt)) + ".000" If kkk <> 0 Then forma = "0." + LTrim$(Str$(kkk)) If kkk = 0 Then forma = "0.000" End Function 40