Calculate the bias joints according CSN 014216-65 in pascal
Delphi & Pascal (česká wiki)
Category: Source in Pascal
Program: Tlakspoj.pas
File exe: Tlakspoj.exe
File ubuntu: Tlakspoj
need: Tabulky.pas
Program: Tlakspoj.pas
File exe: Tlakspoj.exe
File ubuntu: Tlakspoj
need: Tabulky.pas
Same as for Skrutka.pas. It is able to calculate the bias joints. To give a hint of what I am talking about, here is an example. When you heat up a cog-wheel and put it on a shaft it cools down after a while and creates the demountable joint. How much weight this joint is able to bear can be calculated using this program.
{ TABULKY.PAS Copyright (c) TrSek alias Zdeno Sekerak } { Kniznica pre SKRUTKA.PAS a TLAKSPOJ.PAS blizsie informacie } { v tychto suboroch. Data z STK 2 a Strojnickych tabuliek. } { } { Datum:04.08.1992 http://www.trsek.com } unit tabulky; interface function obr90(lk,d,Da,m:integer):real; procedure obr107(da,db,dt:real;var c2a,c2b:real); { VYMENOVANE TABULKY V UNITE } {Metricke zavity ,Vyber pre skrutky a matice STK str.151 CSN 01 4010 "MetrickeZavity"} {Pozadovana bezpecnost STK 2 str 90 "tab9"} {Predbezna volba priemeru skrutky STK 2 str.92 tab.11 "tab11"} {Mechanicke vlastnosti ocelovych skrutiek a matic STK 2 str.92 tab.10 "tab10"} {Smerne hodnoty sucinitela utahovania Ku STK 2 str.94 tab.13 "tab13"} {Maximalne dovolene sily predpatia a utahovacie momenty pre normalizovane skrutky STK 2 str. 96 tab.14 "tab14"} {Smerne hodnoty unavovej pevnosti skrutkovych spojov sigma a MPa STK 2 str.97 tab.15 "tab15"} {Smerne hodnoty dovoleneho tlaku Pd MPa pri stlaceni suciastok z rzneho materialu STK 2 str.98 tab.16 "tab16"} {Diagram na urcenie siloveho pomeru @(fi)c STK 2 str.93 obr.88 "obr88"} {Stupne presnosti ozubenych kolies STT str.334 tab.1 "ktab1"} {Prevadzkovy sucinitel Ki STT str.335 tab.2 "ktab2"} {Sucinitele vnutornych dynamickych sil Kv STT str.335 tab.3 "ktab3"} {Casova pevnost materialov v ohybe ëfc a v dotyku ëhc STT str.336-337 tab.4 "ktab4"} {Pruzna poddajnost spojovanych casti c2 STK 2 str.95 obr.90 "function obr90"} {Hodnoty konstant pruznosti C2a,C2b STK 2 str.112 obr.107} {Tolerancie ulozeni s presahom STT str. 122-128 "ulozenia"} {Tolerancie ulozeni s presahom u ulozeni H STT str. 128 "ulozeniah"} const {Metricke zavity ,Vyber pre skrutky a matice STK str.151 CSN 01 4010 "MetrickeZavity"} MetrickeZavity:array[1..11,1..4] of real= ((4,3.545,3.141,7),(5,4.48,4.019,8), (6,5.35,4.773,10),(8,7.188,6.466,14), (10,9.026,8.16,17),(12,10.863,9.853,19), (14,12.701,11.546,22),(16,14.701,11.546,24), (20,18.376,16.933,30),(24,22.051,20.319,36), (30,27.727,25.706,46)); {Pozadovana bezpecnost STK 2 str 90 "tab9"} tab9:array[1..2,1..9] of real= ((4,5,6,8,10,12,16,30,30),(2.2,1.9,1.7,1.5,1.4,1.3,1.2,1.2,1.2)); {Predbezna volba priemeru skrutky STK 2 str.92 tab.11 "tab11"} tab11:array[1..12,1..10] of real= ((1.6,1,0.32,2.5,6,5,4,4,4,4), (2.5,1.6,0.5,4,8,6,5,5,4,4), (4,2.5,0.8,6.3,10,8,6,6,5,5), (6.3,4,1.25,10,12,10,8,8,6,5), (10,6.3,2,16,16,12,10,8,8,8), (16,10,3.15,25,20,16,12,10,10,8), (25,16,5,40,24,20,14,14,12,10), (40,25,8,63,27,24,18,16,14,12), (63,40,12.5,100,33,30,22,20,16,16), (100,63,20,160,30,30,27,24,20,20), (160,100,31.5,250,30,30,30,30,27,24), (250,160,50,400,30,30,30,30,30,30)); {Mechanicke vlastnosti ocelovych skrutiek a matic STK 2 str.92 tab.10 "tab10"} tab10:array[1..3,1..10] of real= ((0,1,2,3,4,5,6,7,8,9), (350,500,500,600,800,800,1000,1000,1000,1200), (210,300,400,480,650,640,800,900,900,1080)); {Smerne hodnoty sucinitela utahovania Ku STK 2 str.94 tab.13 "tab13"} tab13:array[1..3] of real=(3,1.4,2); {Maximalne dovolene sily predpatia a utahovacie momenty pre normalizovane skrutky STK 2 str. 96 tab.14 "tab14"} Tab14:array[1..14,1..13] of real= ((4,1.3,1.8,2.4,3.9,5.45,6.55,1,1.35,1.8,2.9,4.1,4.9), (5,2.1,3,3.95,6.35,8.95,10.7,2,2.8,3.8,6,8.5,10), (6,3,4.2,5.6,9,12.6,15.1,3.3,4.7,6.3,10,14,17), (8,5.4,7.7,10.3,16.5,23.2,27.9,8.2,12,16,25,35,41), (10,8.6,12.3,16.4,26.2,36.9,44.3,16,23,31,42,69,83), (12,12.6,18,23.9,38.3,54,64.5,28,40,54,86,120,145), (14,17.2,24.6,32.8,52.5,74,88.5,44,63,84,135,190,230), (16,24,34.2,45.6,73,102,123,69,98,131,210,295,355), (18,29,41,55,88,124,148,95,136,181,290,405,485), (20,37,53,71,114,160,192,134,192,256,410,580,690), (22,46,66,88,141,199,239,180,258,345,550,780,930), (24,54,77,102,164,230,276,233,335,445,710,1000,1200), (27,71,101,134,215,302,363,345,490,655,1050,1500,1800), (30,85,123,164,262,368,442,475,680,905,1450,2000,2400)); {Smerne hodnoty unavovej pevnosti skrutkovych spojov sigma a MPa STK 2 str.97 tab.15 "tab15"} TAB15:array[1..6,1..5] of real= ((4,4,40,34,27),(5,4,45,38,30),(6,5,55,45,35), (8,6,60,50,40),(10,8,70,60,50),(12,8,70,60,50)); {pomocne, doplnil trsek} pomoc:array[0..9] of integer= (1,2,3,3,4,4,5,5,6,6); {Smerne hodnoty dovoleneho tlaku Pd MPa pri stlaceni suciastok z rzneho materialu STK 2 str.98 tab.16 "tab16"} tab16:array[1..4,1..2] of real= ((180,120),(750,500),(500,330),(900,600)); {Diagram na urcenie siloveho pomeru @(fi)c STK 2 str.93 obr.88 "obr88"} obr88:array[1..3,1..11,1..6] of real= (((0.75,0.63,0.50,0.37,0.51,0.64), (0.75,0.63,0.50,0.37,0.51,0.64), (0.75,0.63,0.50,0.37,0.51,0.64), (0.75,0.63,0.50,0.37,0.51,0.64), (0.75,0.63,0.50,0.37,0.51,0.64), (0.75,0.63,0.50,0.37,0.51,0.64), (0.75,0.63,0.50,0.37,0.51,0.64), (0.75,0.63,0.50,0.37,0.51,0.64), (0.75,0.63,0.50,0.37,0.51,0.64), (0.75,0.63,0.50,0.37,0.51,0.64), (0.75,0.63,0.50,0.37,0.51,0.64)), ((0.75,0.63,0.50,0.37,0.51,0.64), (0.69,0.57,0.42,0.27,0.42,0.55), (0.62,0.50,0.37,0.24,0.38,0.49), (0.59,0.45,0.30,0.21,0.32,0.45), (0.54,0.395,0.275,0.17,0.27,0.4), (0.5,0.37,0.25,0.15,0.25,0.35), (0.45,0.32,0.22,0.13,0.22,0.31), (0.42,0.29,0.195,0.118,0.19,0.28), (0.38,0.26,0.175,0.105,0.175,0.26), (0.36,0.24,0.158,0.09,0.155,0.24), (0.33,0.22,0.145,0.085,0.14,0.22)), ((0.75,0.63,0.50,0.37,0.51,0.64), (0.62,0.49,0.35,0.23,0.35,0.49), (0.53,0.39,0.27,0.17,0.28,0.39), (0.48,0.35,0.24,0.14,0.24,0.35), (0.42,0.29,0.19,0.12,0.19,0.28), (0.37,0.25,0.16,0.1,0.16,0.25), (0.34,0.23,0.14,0.08,0.14,0.23), (0.29,0.19,0.12,0.07,0.12,0.19), (0.26,0.17,0.11,0.06,0.11,0.16), (0.23,0.15,0.09,0.055,0.09,0.14), (0.22,0.14,0.08,0.047,0.08,0.13))); {Stupne presnosti ozubenych kolies STT str.334 tab.1 "ktab1"} ktab1:array[1..3,1..12] of real= ((1,2,3,4,5,6,7,8,9,10,11,12), (0,0,0,12,12,4,4,0.8,0.8,0,0,0), (0,0,0,60,60,12,12,4,4,0.8,0.8,0.8)); {Prevadzkovy sucinitel Ki STT str.335 tab.2 "ktab2"} ktab2:array[1..3,1..3] of real= ((1,1.25,1.75),(1.25,1.5,2),(1.5,1.75,2.25)); {Sucinitele vnutornych dynamickych sil Kv STT str.335 tab.3 "ktab3"} ktab3:array[1..2,1..4,1..2,1..5] of real= ((((0,1,1.2,1.3,1.45),(0,1,1.15,1.25,1.35)), ((1,1.15,1.35,1.45,0),(1,1.15,1.25,1.35,0)), ((1,1.25,1.45,0,0),(1,1.2,1.35,0,0)), ((1.1,1.45,0,0,0),(1.1,1.35,0,0,0))), (((0,1,1,1.1,1.2),(0,1,1,1,1.1)), ((1,1,1,1.2,1.3),(1,1,1,1.1,1.1)), ((1,1.1,1.3,1.4,0),(1,1.1,1.2,1.3,0)), ((1,1.3,1.4,0,0),(1,1.2,1.3,0,0)))); {Casova pevnost materialov v ohybe ëfc a v dotyku ëhc STT str.336-337 tab.4 "ktab4"} ktab4:array[1..44,1..4] of real= ((422420,200,40,370),(422425,250,45,380), (422430,300,50,390),(422550,500,120,420), (422304,420,135,380),(422306,600,135,470), (422307,700,135,500),(422650,520,145,500), (422460,600,155,530),(422750,650,165,560), (422719,700,170,570),(422719,750,175,590), (422750,800,185,620),(11500,500,140,490), (11523,520,145,500),(11600,600,155,530), (11700,700,170,570),(12050,550,150,510), (12050,650,165,560),(12061,670,175,590), (12061,750,185,620),(13240,800,185,620), (14140,900,200,670),(15241,950,210,690), (16440,900,200,670),(422660,600,100,1220), (422719,700,110,1240),(11600,600,100,1220), (11700,700,110,1240),(12051,650,110,1240), (14140,800,125,1260),(15241,1000,140,1300), (12010,450,185,1320),(12020,500,195,1340), (14220,800,270,1460),(14223,900,295,1500), (16220,900,295,1500),(16420,950,305,1520), (15230,800,270,1250),(15330,800,270,1250), (14140,1600,270,1500),(12020,400,160,600), (12060,600,185,750),(14140,800,210,900)); {Vybrane mechanicke vlastnosti materialov STK 2 str.114 tab.19} tab19:array[1..4,1..8] of real= ((205000,95000,125000,80000,110000,70000,40500,90000), (0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.25), (11,10,16,18,16,23,26,10), (-8.5,-8,-14,-16,-14,-18,-21,-8)); {Sucinitel zovretia STK 2 str.113 tab.18} tab18:array[1..5,1..3] of real= ((0.13,0.35,0.09),(0.14,0.35,0.09),(0.08,0.15,0.05), (0.055,0.15,0.05),(0,0,0.055)); {Tolerancie ulozeni s presahom STT str. 122-128 "ulozenia"} ulozenia:array[1..15,1..26] of real= ((40,12,53,17,64,20,93,27,121,55,175,97,256,164,364,256,428, 302,712,568,871,709,1089,911,1347,1153), (34,6,46,10,56,12,72,18,97,31,136,58,196,100,264,156,373, 247,497,353,606,444,749,571,917,723), (32,4,41,5,50,6,60,6,81,15,109,31,148,56,198,90,27,148,356, 212,431,269,524,336,637,443), (28,4,35,5,43,6,51,6,62,36,95,31,132,56,179,90,250,147,330, 212,402,269,492,346,603,443), (24,0,31,1,38,1,46,1,56,2,68,4,83,7,106,17,132,37,168,58, 210,77,247,101,295,135), (0,0,0,0,0,0,66,21,88,34,120,56,166,90,226,137,315,212, 624,294,506,373,619,473,757,597), (0,0,0,0,0,0,0,0,108,43,153,89,220,144,308,219,443,340,492, 474,731,702,909,763,1097,937), (24,0,33,3,41,4,50,5,61,7,73,9,89,13,108,19,131,28,156,38, 179,46,203,57,229,69), (28,8,35,11,43,13,51,15,62,27,85,35,117,57,159,89,210,150, 282,218,367,263,447,333,553,427), (0,0,0,0,0,0,0,0,54,20,70,29,94,45,126,69,171,106,225,150, 272,188,330,237,400,297), (24,4,31,7,38,8,46,10,56,14,58,18,83,23,106,36,132,60, 168,212,210,263,247,333,295,428), (24,4,31,7,38,8,46,10,56,14,68,18,83,23,106,36,132,60,168, 212,210,263,247,333,295,427), (16,0,23,3,28,4,34,5,41,7,50,9,60,11,73,16,88,25,106,34, 126,42,144,51,166,63), (20,12,27,11,32,14,39,17,48,22,59,27,78,40,101,57,133,83, 169,111,202,138,244,172,292,212), (16,6,23,10,28,13,34,15,41,19,42,10,62,30,76,39,93,50,113, 64,130,75,150,89,172,105)); {Tolerancie ulozeni s presahom u ulozeni H STT str. 128 "hulozenia"} ulozeniah:array[1..5,1..13] of real= ((4,5,6,8,9,11,13,15,18,20,23,25,27), (6,8,9,11,13,16,19,22,25,29,32,36,40), (10,12,15,18,21,25,30,35,40,46,52,57,63), (14,18,22,27,33,39,46,54,63,72,81,89,97), (25,30,36,43,52,62,74,87,100,115,130,140,155)); rozmery:array[1..13] of integer = (3,6,10,18,30,50,80,120,180,250,315,400,500); naz_ulozenia:array[1..14] of string = ('H8/z8','H8/x8','H8/u8','H8/u7','H8/s7','H8/v7','H8/y7', 'H8/r7','H7/u7','H7/t6','H7/s7','H7/r6','H6/s6','H6/r5'); implementation {Pruzna poddajnost spojovanych casti c2 STK 2 str.95 obr.90 "function obr90"} function obr90(lk,d,Da,m:integer):real; const pz:array[1..2,1..12] of real= ((0,1.25,1.75,2.25,2.75,3.25,3.75,4.25,4.75,5.25,5.75,100), (50,39,30,24,19,15,11,8,5,3,0,0)); vz:array[1..4,1..24] of real= ((0,5,10,15,20,25,30,35,40,45,50,55,60,65,70,75,80,85,90,95,100,105,110,115), (100,85,70,59,49,41,35,29,24,20,17,14,12,9.5,8,6.8,5.5,4.7,3.9,3.2,2.8,2.2,1.9,1.7), (175,150,125,100,85,72,60,50,41,35,29,25,20,17,14,13,10,8.1,6.9,5.8,4.8,4,3.2,2.8), (300,250,210,175,150,125,100,85,70,60,50,41,34,29,25,20,17,14,12,9.7,8.1,6.9,5.5,4.7)); var x,y,c:real; a,p:integer; begin if m=4 then m:=3; if m=3 then m:=1 else if m=1 then m:=3; if lk/d>10 then y:=pz[2,11]; if lk/d<0 then y:=pz[2,1]; for a:=1 to 11 do if (lk/d>=pz[1,a]) and (lk/d<pz[1,a+1]) then y:=pz[2,a]; if Da/d<=1.5 then p:=1; if (Da/d>1.5) and (Da/d<=3) then p:=2; if Da/d>3 then p:=3; case p of 1:x:=1.04*y; 2:x:=(34*y+1000)/50; 3:x:=(25*y+1650)/50; end; case d of 4:c:=0; 5:c:=60*6; 6:c:=60*11; 8:c:=60*14; 10:c:=60*26; 12:c:=60*30; 14:c:=60*34; 16:c:=60*38; 18:c:=60*41; 20:c:=60*45; 22:c:=60*47; 24:c:=60*49; 27:c:=60*52; 30:c:=60*55; end; y:=(59*x+c)/60; for a:=1 to 23 do if (y>=vz[1,a]) and (y<vz[1,a+1]) then obr90:=vz[m+1,a]; end; {Hodnoty konstant pruznosti C2a,C2b STK 2 str.112 obr.107} procedure obr107(da,db,dt:real;var c2a,c2b:real); const vyb:array[1..3,1..12] of real= ((0,1.15,1.3,1.5,1.8,2.25,2.75,3.5,4.5,6.5,9,11), (0.1,0.17,0.27,0.35,0.43,0.48,0.52,0.545,0.565,0.57,0.573,-1), (0.1,0.16,0.24,0.3,0.375,0.43,0.45,0.47,0.48,0.49,0.5,-1)); var a,b:real; i:integer; begin if (dt<0) or (da<0) then begin c2a:=0;c2b:=0;exit; end; if db>0 then b:=dt/db; a:=da/dt; if a>10 then a:=10; for i:=1 to 11 do begin if (vyb[1,i]<a) and (vyb[1,i+1]>=a) then c2a:=vyb[2,i]; if db>0 then if (vyb[1,i]<b) and (vyb[1,i+1]>=b) then c2b:=vyb[3,i]; end; if db<=0 then c2b:=1; end; function kobr1(d,m,it,p,ze,ea:real;var kfa,kha:real):boolean; begin kobr1:=false; if (m<0) or (m>20) then exit; if (d<12) or (d>1600) then exit; if (it<3) or (it>12) then exit; end; end.