Last active
September 28, 2023 10:31
-
-
Save jsb2505/2d3d0cdfa1afc4f785c27b738c38522b to your computer and use it in GitHub Desktop.
A module of steel functions for excel AFE
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
UB_Table = { | |
//{"type","name",mass,height,breadth,web_thickness,flange_thickness,root radius} | |
"UB", "127 x 76 x 13", 13, 127, 76, 4, 7.6, 7.6; | |
"UB", "152 x 89 x 16", 16, 152.4, 88.7, 4.5, 7.7, 7.6; | |
"UB", "178 x 102 x 19", 19, 177.8, 101.2, 4.8, 7.9, 7.6; | |
"UB", "203 x 102 x 23", 23.1, 203.2, 101.8, 5.4, 9.3, 7.6; | |
"UB", "203 x 133 x 25", 25.1, 203.2, 133.2, 5.7, 7.8, 7.6; | |
"UB", "203 x 133 x 30", 30, 206.8, 133.9, 6.4, 9.6, 7.6; | |
"UB", "254 x 102 x 22", 22, 254, 101.6, 5.7, 6.8, 7.6; | |
"UB", "254 x 102 x 25", 25.2, 257.2, 101.9, 6, 8.4, 7.6; | |
"UB", "254 x 102 x 28", 28.3, 260.4, 102.2, 6.3, 10, 7.6; | |
"UB", "254 x 146 x 31", 31.1, 251.4, 146.1, 6, 8.6, 7.6; | |
"UB", "254 x 146 x 37", 37, 256, 146.4, 6.3, 10.9, 7.6; | |
"UB", "254 x 146 x 43", 43, 259.6, 147.3, 7.2, 12.7, 7.6; | |
"UB", "305 x 102 x 25", 24.8, 305.1, 101.6, 5.8, 7, 7.6; | |
"UB", "305 x 102 x 28", 28.2, 308.7, 101.8, 6, 8.8, 7.6; | |
"UB", "305 x 102 x 33", 32.8, 312.7, 102.4, 6.6, 10.8, 7.6; | |
"UB", "305 x 127 x 37", 37, 304.4, 123.4, 7.1, 10.7, 8.9; | |
"UB", "305 x 127 x 42", 41.9, 307.2, 124.3, 8, 12.1, 8.9; | |
"UB", "305 x 127 x 48", 48.1, 311, 125.3, 9, 14, 8.9; | |
"UB", "305 x 165 x 40", 40.3, 303.4, 165, 6, 10.2, 8.9; | |
"UB", "305 x 165 x 46", 46.1, 306.6, 165.7, 6.7, 11.8, 8.9; | |
"UB", "305 x 165 x 54", 54, 310.4, 166.9, 7.9, 13.7, 8.9; | |
"UB", "356 x 127 x 33", 33.1, 349, 125.4, 6, 8.5, 10.2; | |
"UB", "356 x 127 x 39", 39.1, 353.4, 126, 6.6, 10.7, 10.2; | |
"UB", "356 x 171 x 45", 45, 351.4, 171.1, 7, 9.7, 10.2; | |
"UB", "356 x 171 x 51", 51, 355, 171.5, 7.4, 11.5, 10.2; | |
"UB", "356 x 171 x 57", 57, 358, 172.2, 8.1, 13, 10.2; | |
"UB", "356 x 171 x 67", 67.1, 363.4, 173.2, 9.1, 15.7, 10.2; | |
"UB", "406 x 140 x 39", 39, 398, 141.8, 6.4, 8.6, 10.2; | |
"UB", "406 x 140 x 46", 46, 403.2, 142.2, 6.8, 11.2, 10.2; | |
"UB", "406 x 178 x 54", 54.1, 402.6, 177.7, 7.7, 10.9, 10.2; | |
"UB", "406 x 178 x 60", 60.1, 406.4, 177.9, 7.9, 12.8, 10.2; | |
"UB", "406 x 178 x 67", 67.1, 409.4, 178.8, 8.8, 14.3, 10.2; | |
"UB", "406 x 178 x 74", 74.2, 412.8, 179.5, 9.5, 16, 10.2; | |
"UB", "457 x 152 x 52", 52.3, 449.8, 152.4, 7.6, 10.9, 10.2; | |
"UB", "457 x 152 x 60", 59.8, 454.6, 152.9, 8.1, 13.3, 10.2; | |
"UB", "457 x 152 x 67", 67.2, 458, 153.8, 9, 15, 10.2; | |
"UB", "457 x 152 x 74", 74.2, 462, 154.4, 9.6, 17, 10.2; | |
"UB", "457 x 152 x 82", 82.1, 465.8, 155.3, 10.5, 18.9, 10.2; | |
"UB", "457 x 191 x 67", 67.1, 453.4, 189.9, 8.5, 12.7, 10.2; | |
"UB", "457 x 191 x 74", 74.3, 457, 190.4, 9, 14.5, 10.2; | |
"UB", "457 x 191 x 82", 82, 460, 191.3, 9.9, 16, 10.2; | |
"UB", "457 x 191 x 89", 89.3, 463.4, 191.9, 10.5, 17.7, 10.2; | |
"UB", "457 x 191 x 98", 98.3, 467.2, 192.8, 11.4, 19.6, 10.2; | |
"UB", "533 x 210 x 82", 82.2, 528.3, 208.8, 9.6, 13.2, 12.7; | |
"UB", "533 x 210 x 92", 92.1, 533.1, 209.3, 10.1, 15.6, 12.7; | |
"UB", "533 x 210 x 101", 101, 536.7, 210, 10.8, 17.4, 12.7; | |
"UB", "533 x 210 x 109", 109, 539.5, 210.8, 11.6, 18.8, 12.7; | |
"UB", "533 x 210 x 122", 122, 544.5, 211.9, 12.7, 21.3, 12.7; | |
"UB", "610 x 229 x 101", 101.2, 602.6, 227.6, 10.5, 14.8, 12.7; | |
"UB", "610 x 229 x 113", 113, 607.6, 228.2, 11.1, 17.3, 12.7; | |
"UB", "610 x 229 x 125", 125.1, 612.2, 229, 11.9, 19.6, 12.7; | |
"UB", "610 x 229 x 140", 139.9, 617.2, 230.2, 13.1, 22.1, 12.7; | |
"UB", "610 x 305 x 149", 149.2, 612.4, 304.8, 11.8, 19.7, 16.5; | |
"UB", "610 x 305 x 179", 179, 620.2, 307.1, 14.1, 23.6, 16.5; | |
"UB", "610 x 305 x 238", 238.1, 635.8, 311.4, 18.4, 31.4, 16.5; | |
"UB", "686 x 254 x 125", 125.2, 677.9, 253, 11.7, 16.2, 15.2; | |
"UB", "686 x 254 x 140", 140.1, 683.5, 253.7, 12.4, 19, 15.2; | |
"UB", "686 x 254 x 152", 152.4, 687.5, 254.5, 13.2, 21, 15.2; | |
"UB", "686 x 254 x 170", 170.2, 692.9, 255.8, 14.5, 23.7, 15.2; | |
"UB", "762 x 267 x 134", 133.9, 750, 264.4, 12, 15.5, 16.5; | |
"UB", "762 x 267 x 147", 146.9, 754, 265.2, 12.8, 17.5, 16.5; | |
"UB", "762 x 267 x 173", 173, 762.2, 266.7, 14.3, 21.6, 16.5; | |
"UB", "762 x 267 x 197", 196.8, 769.8, 268, 15.6, 25.4, 16.5; | |
"UB", "838 x 292 x 176", 175.9, 834.9, 291.7, 14, 18.8, 17.8; | |
"UB", "838 x 292 x 194", 193.8, 840.7, 292.4, 14.7, 21.7, 17.8; | |
"UB", "838 x 292 x 226", 226.5, 850.9, 293.8, 16.1, 26.8, 17.8; | |
"UB", "914 x 305 x 201", 200.9, 903, 303.3, 15.1, 20.2, 19.1; | |
"UB", "914 x 305 x 224", 224.2, 910.4, 304.1, 15.9, 23.9, 19.1; | |
"UB", "914 x 305 x 238", 238, 915, 305, 16.5, 25.9, 19; | |
"UB", "914 x 305 x 253", 253.4, 918.4, 305.5, 17.3, 27.9, 19.1; | |
"UB", "914 x 305 x 271", 271, 923, 307, 18.4, 30, 19; | |
"UB", "914 x 305 x 289", 289.1, 926.6, 307.7, 19.5, 32, 19.1; | |
"UB", "914 x 305 x 313", 313, 932, 309, 21.1, 34.5, 19; | |
"UB", "914 x 305 x 345", 345, 943, 308, 22.1, 39.9, 19; | |
"UB", "914 x 305 x 381", 381, 951, 310, 24.4, 43.9, 19; | |
"UB", "914 x 305 x 425", 425, 961, 313, 26.9, 49, 19; | |
"UB", "914 x 305 x 474", 474, 971, 316, 30, 54.1, 19; | |
"UB", "914 x 305 x 521", 521, 981, 319, 33, 58.9, 19; | |
"UB", "914 x 305 x 576", 576, 993, 322, 36.1, 65, 19; | |
"UB", "914 x 419 x 343", 343.3, 911.8, 418.5, 19.4, 32, 24.1; | |
"UB", "914 x 419 x 388", 388, 921, 420.5, 21.4, 36.6, 24.1; | |
"UB", "1016 x 305 x 222", 222, 970.3, 300, 16, 21.1, 30; | |
"UB", "1016 x 305 x 249", 248.7, 980.1, 300, 16.5, 26, 30; | |
"UB", "1016 x 305 x 272", 272.3, 990.1, 300, 16.5, 31, 30; | |
"UB", "1016 x 305 x 314", 314.3, 999.9, 300, 19.1, 35.9, 30; | |
"UB", "1016 x 305 x 350", 350, 1008, 302, 21.1, 40, 30; | |
"UB", "1016 x 305 x 393", 392.7, 1015.9, 303, 24.4, 43.9, 30; | |
"UB", "1016 x 305 x 415", 415, 1020, 304, 26, 46, 30; | |
"UB", "1016 x 305 x 438", 438, 1026, 305, 26.9, 49, 30; | |
"UB", "1016 x 305 x 494", 494, 1036, 309, 31, 54, 30; | |
"UB", "1016 x 305 x 584", 584, 1056, 314, 36, 64, 30 | |
}; | |
UKB_Table = { | |
//{"type","name",mass,height,breadth,web_thickness,flange_thickness,root radius} | |
"UKB", "127 x 76 x 13", 13, 127, 76, 4, 7.6, 7.6; | |
"UKB", "152 x 89 x 16", 16, 152.4, 88.7, 4.5, 7.7, 7.6; | |
"UKB", "178 x 102 x 19", 19, 177.8, 101.2, 4.8, 7.9, 7.6; | |
"UKB", "203 x 102 x 23", 23.1, 203.2, 101.8, 5.4, 9.3, 7.6; | |
"UKB", "203 x 133 x 25", 25.1, 203.2, 133.2, 5.7, 7.8, 7.6; | |
"UKB", "203 x 133 x 30", 30, 206.8, 133.9, 6.4, 9.6, 7.6; | |
"UKB", "254 x 102 x 22", 22, 254, 101.6, 5.7, 6.8, 7.6; | |
"UKB", "254 x 102 x 25", 25.2, 257.2, 101.9, 6, 8.4, 7.6; | |
"UKB", "254 x 102 x 28", 28.3, 260.4, 102.2, 6.3, 10, 7.6; | |
"UKB", "254 x 146 x 31", 31.1, 251.4, 146.1, 6, 8.6, 7.6; | |
"UKB", "254 x 146 x 37", 37, 256, 146.4, 6.3, 10.9, 7.6; | |
"UKB", "254 x 146 x 43", 43, 259.6, 147.3, 7.2, 12.7, 7.6; | |
"UKB", "305 x 102 x 25", 24.8, 305.1, 101.6, 5.8, 7, 7.6; | |
"UKB", "305 x 102 x 28", 28.2, 308.7, 101.8, 6, 8.8, 7.6; | |
"UKB", "305 x 102 x 33", 32.8, 312.7, 102.4, 6.6, 10.8, 7.6; | |
"UKB", "305 x 127 x 37", 37, 304.4, 123.4, 7.1, 10.7, 8.9; | |
"UKB", "305 x 127 x 42", 41.9, 307.2, 124.3, 8, 12.1, 8.9; | |
"UKB", "305 x 127 x 48", 48.1, 311, 125.3, 9, 14, 8.9; | |
"UKB", "305 x 165 x 40", 40.3, 303.4, 165, 6, 10.2, 8.9; | |
"UKB", "305 x 165 x 46", 46.1, 306.6, 165.7, 6.7, 11.8, 8.9; | |
"UKB", "305 x 165 x 54", 54, 310.4, 166.9, 7.9, 13.7, 8.9; | |
"UKB", "356 x 127 x 33", 33.1, 349, 125.4, 6, 8.5, 10.2; | |
"UKB", "356 x 127 x 39", 39.1, 353.4, 126, 6.6, 10.7, 10.2; | |
"UKB", "356 x 171 x 45", 45, 351.4, 171.1, 7, 9.7, 10.2; | |
"UKB", "356 x 171 x 51", 51, 355, 171.5, 7.4, 11.5, 10.2; | |
"UKB", "356 x 171 x 57", 57, 358, 172.2, 8.1, 13, 10.2; | |
"UKB", "356 x 171 x 67", 67.1, 363.4, 173.2, 9.1, 15.7, 10.2; | |
"UKB", "406 x 140 x 39", 39, 398, 141.8, 6.4, 8.6, 10.2; | |
"UKB", "406 x 140 x 46", 46, 403.2, 142.2, 6.8, 11.2, 10.2; | |
"UKB", "406 x 140 x 53", 53.3, 406.6, 143.3, 7.9, 12.9, 10.2; | |
"UKB", "406 x 178 x 54", 54.1, 402.6, 177.7, 7.7, 10.9, 10.2; | |
"UKB", "406 x 178 x 60", 60.1, 406.4, 177.9, 7.9, 12.8, 10.2; | |
"UKB", "406 x 178 x 67", 67.1, 409.4, 178.8, 8.8, 14.3, 10.2; | |
"UKB", "406 x 178 x 74", 74.2, 412.8, 179.5, 9.5, 16, 10.2; | |
"UKB", "406 x 178 x 85", 85.3, 417.2, 181.9, 10.9, 18.2, 10.2; | |
"UKB", "457 x 152 x 52", 52.3, 449.8, 152.4, 7.6, 10.9, 10.2; | |
"UKB", "457 x 152 x 60", 59.8, 454.6, 152.9, 8.1, 13.3, 10.2; | |
"UKB", "457 x 152 x 67", 67.2, 458, 153.8, 9, 15, 10.2; | |
"UKB", "457 x 152 x 74", 74.2, 462, 154.4, 9.6, 17, 10.2; | |
"UKB", "457 x 152 x 82", 82.1, 465.8, 155.3, 10.5, 18.9, 10.2; | |
"UKB", "457 x 191 x 67", 67.1, 453.4, 189.9, 8.5, 12.7, 10.2; | |
"UKB", "457 x 191 x 74", 74.3, 457, 190.4, 9, 14.5, 10.2; | |
"UKB", "457 x 191 x 82", 82, 460, 191.3, 9.9, 16, 10.2; | |
"UKB", "457 x 191 x 89", 89.3, 463.4, 191.9, 10.5, 17.7, 10.2; | |
"UKB", "457 x 191 x 98", 98.3, 467.2, 192.8, 11.4, 19.6, 10.2; | |
"UKB", "457 x 191 x 106", 105.8, 469.2, 194, 12.6, 20.6, 10.2; | |
"UKB", "457 x 191 x 133", 133.3, 480.6, 196.7, 15.3, 26.3, 10.2; | |
"UKB", "457 x 191 x 161", 161.4, 492, 199.4, 18, 32, 10.2; | |
"UKB", "533 x 165 x 66", 65.7, 524.7, 165.1, 8.9, 11.4, 12.7; | |
"UKB", "533 x 165 x 74", 74.7, 529.1, 165.9, 9.7, 13.6, 12.7; | |
"UKB", "533 x 165 x 85", 84.8, 534.9, 166.5, 10.3, 16.5, 12.7; | |
"UKB", "533 x 210 x 82", 82.2, 528.3, 208.8, 9.6, 13.2, 12.7; | |
"UKB", "533 x 210 x 92", 92.1, 533.1, 209.3, 10.1, 15.6, 12.7; | |
"UKB", "533 x 210 x 101", 101, 536.7, 210, 10.8, 17.4, 12.7; | |
"UKB", "533 x 210 x 109", 109, 539.5, 210.8, 11.6, 18.8, 12.7; | |
"UKB", "533 x 210 x 122", 122, 544.5, 211.9, 12.7, 21.3, 12.7; | |
"UKB", "533 x 210 x 138", 138.3, 549.1, 213.9, 14.7, 23.6, 12.7; | |
"UKB", "533 x 312 x 150", 150.6, 542.5, 312, 12.7, 20.3, 12.7; | |
"UKB", "533 x 312 x 182", 181.5, 550.7, 314.5, 15.2, 24.4, 12.7; | |
"UKB", "533 x 312 x 219", 218.8, 560.3, 317.4, 18.3, 29.2, 12.7; | |
"UKB", "533 x 312 x 272", 273.3, 577.1, 320.2, 21.1, 37.6, 12.7; | |
"UKB", "610 x 178 x 82", 81.8, 598.6, 177.9, 10, 12.8, 12.7; | |
"UKB", "610 x 178 x 92", 92.2, 603, 178.8, 10.9, 15, 12.7; | |
"UKB", "610 x 178 x 100", 100.3, 607.4, 179.2, 11.3, 17.2, 12.7; | |
"UKB", "610 x 229 x 101", 101.2, 602.6, 227.6, 10.5, 14.8, 12.7; | |
"UKB", "610 x 229 x 113", 113, 607.6, 228.2, 11.1, 17.3, 12.7; | |
"UKB", "610 x 229 x 125", 125.1, 612.2, 229, 11.9, 19.6, 12.7; | |
"UKB", "610 x 229 x 140", 139.9, 617.2, 230.2, 13.1, 22.1, 12.7; | |
"UKB", "610 x 305 x 149", 149.2, 612.4, 304.8, 11.8, 19.7, 16.5; | |
"UKB", "610 x 305 x 179", 179, 620.2, 307.1, 14.1, 23.6, 16.5; | |
"UKB", "610 x 305 x 238", 238.1, 635.8, 311.4, 18.4, 31.4, 16.5; | |
"UKB", "686 x 254 x 125", 125.2, 677.9, 253, 11.7, 16.2, 15.2; | |
"UKB", "686 x 254 x 140", 140.1, 683.5, 253.7, 12.4, 19, 15.2; | |
"UKB", "686 x 254 x 152", 152.4, 687.5, 254.5, 13.2, 21, 15.2; | |
"UKB", "686 x 254 x 170", 170.2, 692.9, 255.8, 14.5, 23.7, 15.2; | |
"UKB", "762 x 267 x 134", 133.9, 750, 264.4, 12, 15.5, 16.5; | |
"UKB", "762 x 267 x 147", 146.9, 754, 265.2, 12.8, 17.5, 16.5; | |
"UKB", "762 x 267 x 173", 173, 762.2, 266.7, 14.3, 21.6, 16.5; | |
"UKB", "762 x 267 x 197", 196.8, 769.8, 268, 15.6, 25.4, 16.5; | |
"UKB", "838 x 292 x 176", 175.9, 834.9, 291.7, 14, 18.8, 17.8; | |
"UKB", "838 x 292 x 194", 193.8, 840.7, 292.4, 14.7, 21.7, 17.8; | |
"UKB", "838 x 292 x 226", 226.5, 850.9, 293.8, 16.1, 26.8, 17.8; | |
"UKB", "914 x 305 x 201", 200.9, 903, 303.3, 15.1, 20.2, 19.1; | |
"UKB", "914 x 305 x 224", 224.2, 910.4, 304.1, 15.9, 23.9, 19.1; | |
"UKB", "914 x 305 x 238", 238, 915, 305, 16.5, 25.9, 19; | |
"UKB", "914 x 305 x 253", 253.4, 918.4, 305.5, 17.3, 27.9, 19.1; | |
"UKB", "914 x 305 x 271", 271, 923, 307, 18.4, 30, 19; | |
"UKB", "914 x 305 x 289", 289.1, 926.6, 307.7, 19.5, 32, 19.1; | |
"UKB", "914 x 305 x 313", 313, 932, 309, 21.1, 34.5, 19; | |
"UKB", "914 x 305 x 345", 345, 943, 308, 22.1, 39.9, 19; | |
"UKB", "914 x 305 x 381", 381, 951, 310, 24.4, 43.9, 19; | |
"UKB", "914 x 305 x 425", 425, 961, 313, 26.9, 49, 19; | |
"UKB", "914 x 305 x 474", 474, 971, 316, 30, 54.1, 19; | |
"UKB", "914 x 305 x 521", 521, 981, 319, 33, 58.9, 19; | |
"UKB", "914 x 305 x 576", 576, 993, 322, 36.1, 65, 19; | |
"UKB", "914 x 419 x 343", 343.3, 911.8, 418.5, 19.4, 32, 24.1; | |
"UKB", "914 x 419 x 388", 388, 921, 420.5, 21.4, 36.6, 24.1; | |
"UKB", "1016 x 305 x 222", 222, 970.3, 300, 16, 21.1, 30; | |
"UKB", "1016 x 305 x 249", 248.7, 980.1, 300, 16.5, 26, 30; | |
"UKB", "1016 x 305 x 272", 272.3, 990.1, 300, 16.5, 31, 30; | |
"UKB", "1016 x 305 x 314", 314.3, 999.9, 300, 19.1, 35.9, 30; | |
"UKB", "1016 x 305 x 350", 350, 1008, 302, 21.1, 40, 30; | |
"UKB", "1016 x 305 x 393", 392.7, 1015.9, 303, 24.4, 43.9, 30; | |
"UKB", "1016 x 305 x 415", 415, 1020, 304, 26, 46, 30; | |
"UKB", "1016 x 305 x 438", 438, 1026, 305, 26.9, 49, 30; | |
"UKB", "1016 x 305 x 494", 494, 1036, 309, 31, 54, 30; | |
"UKB", "1016 x 305 x 584", 584, 1056, 314, 36, 64, 30 | |
}; | |
UC_Table = { | |
//{"type","name",mass,height,breadth,web_thickness,flange_thickness,root radius} | |
"UC", "152 x 152 x 23", 23, 152.4, 152.2, 5.8, 6.8, 7.6; | |
"UC", "152 x 152 x 30", 30, 157.6, 152.9, 6.5, 9.4, 7.6; | |
"UC", "152 x 152 x 37", 37, 161.8, 154.4, 8, 11.5, 7.6; | |
"UC", "203 x 203 x 46", 46.1, 203.2, 203.6, 7.2, 11, 10.2; | |
"UC", "203 x 203 x 52", 52, 206.2, 204.3, 7.9, 12.5, 10.2; | |
"UC", "203 x 203 x 60", 60, 209.6, 205.8, 9.4, 14.2, 10.2; | |
"UC", "203 x 203 x 71", 71, 215.8, 206.4, 10, 17.3, 10.2; | |
"UC", "203 x 203 x 86", 86.1, 222.2, 209.1, 12.7, 20.5, 10.2; | |
"UC", "254 x 254 x 73", 73.1, 254.1, 254.6, 8.6, 14.2, 12.7; | |
"UC", "254 x 254 x 89", 88.9, 260.3, 256.3, 10.3, 17.3, 12.7; | |
"UC", "254 x 254 x 107", 107.1, 266.7, 258.8, 12.8, 20.5, 12.7; | |
"UC", "254 x 254 x 132", 132, 276.3, 261.3, 15.3, 25.3, 12.7; | |
"UC", "254 x 254 x 167", 167.1, 289.1, 265.2, 19.2, 31.7, 12.7; | |
"UC", "305 x 305 x 97", 96.9, 307.9, 305.3, 9.9, 15.4, 15.2; | |
"UC", "305 x 305 x 118", 117.9, 314.5, 307.4, 12, 18.7, 15.2; | |
"UC", "305 x 305 x 137", 136.9, 320.5, 309.2, 13.8, 21.7, 15.2; | |
"UC", "305 x 305 x 158", 158.1, 327.1, 311.2, 15.8, 25, 15.2; | |
"UC", "305 x 305 x 198", 198.1, 339.9, 314.5, 19.1, 31.4, 15.2; | |
"UC", "305 x 305 x 240", 240, 352.5, 318.4, 23, 37.7, 15.2; | |
"UC", "305 x 305 x 283", 282.9, 365.3, 322.2, 26.8, 44.1, 15.2; | |
"UC", "356 x 368 x 129", 129, 355.6, 368.6, 10.4, 17.5, 15.2; | |
"UC", "356 x 368 x 153", 152.9, 362, 370.5, 12.3, 20.7, 15.2; | |
"UC", "356 x 368 x 177", 177, 368.2, 372.6, 14.4, 23.8, 15.2; | |
"UC", "356 x 368 x 202", 201.9, 374.6, 374.7, 16.5, 27, 15.2; | |
"UC", "356 x 406 x 235", 235.1, 381, 394.8, 18.4, 30.2, 15.2; | |
"UC", "356 x 406 x 287", 287.1, 393.6, 399, 22.6, 36.5, 15.2; | |
"UC", "356 x 406 x 340", 339.9, 406.4, 403, 26.6, 42.9, 15.2; | |
"UC", "356 x 406 x 393", 393, 419, 407, 30.6, 49.2, 15.2; | |
"UC", "356 x 406 x 467", 467, 436.6, 412.2, 35.8, 58, 15.2; | |
"UC", "356 x 406 x 509", 509, 446, 416, 39.1, 62.7, 15; | |
"UC", "356 x 406 x 551", 551, 455.6, 418.5, 42.1, 67.5, 15.2; | |
"UC", "356 x 406 x 592", 633.9, 474.6, 424, 47.6, 77, 15.2; | |
"UC", "356 x 406 x 634", 633.9, 474.6, 424, 47.6, 77, 15.2; | |
"UC", "356 x 406 x 677", 677, 483, 428, 51.2, 81.5, 15; | |
"UC", "356 x 406 x 744", 744, 498, 432, 55.6, 88.9, 15; | |
"UC", "356 x 406 x 818", 818, 514, 437, 60.5, 97, 15; | |
"UC", "356 x 406 x 900", 900, 531, 442, 65.9, 106, 15; | |
"UC", "356 x 406 x 990", 990, 550, 448, 71.9, 115, 15; | |
"UC", "356 x 406 x 1086", 1086, 569, 454, 78, 125, 15; | |
"UC", "356 x 406 x 1202", 1202, 580, 471, 95, 130, 15.4; | |
"UC", "356 x 406 x 1299", 1299, 600, 476, 100, 140, 15.4 | |
}; | |
UKC_Table = { | |
//{"type","name",mass,height,breadth,web_thickness,flange_thickness,root radius} | |
"UKC", "152 x 152 x 23", 23, 152.4, 152.2, 5.8, 6.8, 7.6; | |
"UKC", "152 x 152 x 30", 30, 157.6, 152.9, 6.5, 9.4, 7.6; | |
"UKC", "152 x 152 x 37", 37, 161.8, 154.4, 8, 11.5, 7.6; | |
"UKC", "152 x 152 x 44", 44, 166, 155.9, 9.5, 13.6, 7.6; | |
"UKC", "152 x 152 x 51", 51.2, 170.2, 157.4, 11, 15.7, 7.6; | |
"UKC", "203 x 203 x 46", 46.1, 203.2, 203.6, 7.2, 11, 10.2; | |
"UKC", "203 x 203 x 52", 52, 206.2, 204.3, 7.9, 12.5, 10.2; | |
"UKC", "203 x 203 x 60", 60, 209.6, 205.8, 9.4, 14.2, 10.2; | |
"UKC", "203 x 203 x 71", 71, 215.8, 206.4, 10, 17.3, 10.2; | |
"UKC", "203 x 203 x 86", 86.1, 222.2, 209.1, 12.7, 20.5, 10.2; | |
"UKC", "203 x 203 x 100", 99.6, 228.6, 210.3, 14.5, 23.7, 10.2; | |
"UKC", "203 x 203 x 113", 113.5, 235, 212.1, 16.3, 26.9, 10.2; | |
"UKC", "203 x 203 x 127", 127.5, 241.4, 213.9, 18.1, 30.1, 10.2; | |
"UKC", "254 x 254 x 73", 73.1, 254.1, 254.6, 8.6, 14.2, 12.7; | |
"UKC", "254 x 254 x 89", 88.9, 260.3, 256.3, 10.3, 17.3, 12.7; | |
"UKC", "254 x 254 x 107", 107.1, 266.7, 258.8, 12.8, 20.5, 12.7; | |
"UKC", "254 x 254 x 132", 132, 276.3, 261.3, 15.3, 25.3, 12.7; | |
"UKC", "254 x 254 x 167", 167.1, 289.1, 265.2, 19.2, 31.7, 12.7; | |
"UKC", "305 x 305 x 97", 96.9, 307.9, 305.3, 9.9, 15.4, 15.2; | |
"UKC", "305 x 305 x 118", 117.9, 314.5, 307.4, 12, 18.7, 15.2; | |
"UKC", "305 x 305 x 137", 136.9, 320.5, 309.2, 13.8, 21.7, 15.2; | |
"UKC", "305 x 305 x 158", 158.1, 327.1, 311.2, 15.8, 25, 15.2; | |
"UKC", "305 x 305 x 198", 198.1, 339.9, 314.5, 19.1, 31.4, 15.2; | |
"UKC", "305 x 305 x 240", 240, 352.5, 318.4, 23, 37.7, 15.2; | |
"UKC", "305 x 305 x 283", 282.9, 365.3, 322.2, 26.8, 44.1, 15.2; | |
"UKC", "356 x 368 x 129", 129, 355.6, 368.6, 10.4, 17.5, 15.2; | |
"UKC", "356 x 368 x 153", 152.9, 362, 370.5, 12.3, 20.7, 15.2; | |
"UKC", "356 x 368 x 177", 177, 368.2, 372.6, 14.4, 23.8, 15.2; | |
"UKC", "356 x 368 x 202", 201.9, 374.6, 374.7, 16.5, 27, 15.2; | |
"UKC", "356 x 406 x 235", 235.1, 381, 394.8, 18.4, 30.2, 15.2; | |
"UKC", "356 x 406 x 287", 287.1, 393.6, 399, 22.6, 36.5, 15.2; | |
"UKC", "356 x 406 x 340", 339.9, 406.4, 403, 26.6, 42.9, 15.2; | |
"UKC", "356 x 406 x 393", 393, 419, 407, 30.6, 49.2, 15.2; | |
"UKC", "356 x 406 x 467", 467, 436.6, 412.2, 35.8, 58, 15.2; | |
"UKC", "356 x 406 x 509", 509, 446, 416, 39.1, 62.7, 15; | |
"UKC", "356 x 406 x 551", 551, 455.6, 418.5, 42.1, 67.5, 15.2; | |
"UKC", "356 x 406 x 592", 633.9, 474.6, 424, 47.6, 77, 15.2; | |
"UKC", "356 x 406 x 634", 633.9, 474.6, 424, 47.6, 77, 15.2; | |
"UKC", "356 x 406 x 677", 677, 483, 428, 51.2, 81.5, 15; | |
"UKC", "356 x 406 x 744", 744, 498, 432, 55.6, 88.9, 15; | |
"UKC", "356 x 406 x 818", 818, 514, 437, 60.5, 97, 15; | |
"UKC", "356 x 406 x 900", 900, 531, 442, 65.9, 106, 15; | |
"UKC", "356 x 406 x 990", 990, 550, 448, 71.9, 115, 15; | |
"UKC", "356 x 406 x 1086", 1086, 569, 454, 78, 125, 15; | |
"UKC", "356 x 406 x 1202", 1202, 580, 471, 95, 130, 15.4; | |
"UKC", "356 x 406 x 1299", 1299, 600, 476, 100, 140, 15.4 | |
}; | |
/** Work in progress */ | |
Get_Section_Table = LAMBDA(section_type, | |
IFS( | |
section_type = "UB", | |
UB_Table, | |
section_type = "UC", | |
UC_Table, | |
section_type = "UKB", | |
Sort_Table(VSTACK(UB_Table, UKB_Table), "Smallest section height"), | |
section_type = "UKC", | |
Sort_Table(VSTACK(UC_Table, UKC_Table), "Smallest section height") | |
) | |
); | |
Get_Section_Geometry_Parameters = LAMBDA(section_type, section_name, | |
LET( | |
mass, Get_Property_Value(section_type, section_name, "mass"), | |
height, Get_Property_Value(section_type, section_name, "height"), | |
breadth, Get_Property_Value(section_type, section_name, "breadth"), | |
web_thickness, Get_Property_Value(section_type, section_name, "web_thickness"), | |
flange_thickness, Get_Property_Value(section_type, section_name, "flange_thickness"), | |
root_radius, Get_Property_Value(section_type, section_name, "root_radius"), | |
VSTACK(mass, height, breadth, web_thickness, flange_thickness, root_radius) | |
) | |
); | |
Get_Property_Value = LAMBDA(section_type, section_name, property, | |
LET( | |
section_type_index, XMATCH(section_type, Section_Types), | |
section_table, CHOOSE(section_type_index, UB_Table, UKB_Table, UC_Table, UKC_Table), | |
name_property_index, Get_Property_Index("name"), | |
property_index, Get_Property_Index(property), | |
section_names, CHOOSECOLS(section_table, name_property_index), | |
section_name_index, XMATCH(section_name, section_names), | |
INDEX(section_table, section_name_index, property_index) | |
) | |
); | |
Get_Property_Index = LAMBDA(property, XMATCH(property, Section_Properties)); | |
Section_Types = {"UB", "UKB", "UC", "UKC"}; | |
Section_Properties = { | |
"type", | |
"name", | |
"mass", | |
"height", | |
"breadth", | |
"web_thickness", | |
"flange_thickness", | |
"root_radius" | |
}; | |
/** | |
Partial safety factor for buildings Clause 6.1(1) NA 2.15 BS EN 1993-1-1:2005 | |
*/ | |
γ_M0 = 1; | |
/** | |
Partial safety factor for buildings Clause 6.1(1) NA 2.15 BS EN 1993-1-1:2005 | |
*/ | |
γ_M1 = 1; | |
/** | |
Partial safety factor for buildings Clause 6.1(1) NA 2.15 BS EN 1993-1-1:2005 | |
*/ | |
γ_M2 = 1.1; | |
Get_Section_Selfweight = LAMBDA(section_type, section_name, | |
LET(m, Get_Property_Value(section_type, section_name, "mass"), m * 9.81 / 1000) | |
); | |
Get_Second_Moment_Of_Area = LAMBDA(section_type, section_name, [is_minor_axis], | |
LET( | |
is_minor_axis, IF(ISOMITTED(is_minor_axis), FALSE, is_minor_axis), | |
h, Get_Property_Value(section_type, section_name, "height"), | |
b, Get_Property_Value(section_type, section_name, "breadth"), | |
t_w, Get_Property_Value(section_type, section_name, "web_thickness"), | |
t_f, Get_Property_Value(section_type, section_name, "flange_thickness"), | |
r, Get_Property_Value(section_type, section_name, "root_radius"), | |
IF( | |
is_minor_axis, // conditional boolean | |
// MINOR AXIS | |
LET( | |
// Using parallel axis theorem and subtraction of symmetrical rectangles | |
// General I-beam without root radius | |
I_rec_outer, h * b ^ 3 / 12, | |
I_rec_inner, (h - 2 * t_f) * b ^ 3 / 12, | |
I_rec_web, (h - 2 * t_f) * t_w ^ 3 / 12, | |
// Root radius SMOA by substraction of semicircle from enclosing rectangle | |
// Distance to underside of root from neutral axis | |
y_bar_root_btm, t_w / 2, | |
// Distance from neutral axis of section to centroid of semicircle formed by roots | |
y_bar_root_semicircle, r * (1 - (4 / (3 * PI()))) + y_bar_root_btm, | |
// SMOA of semicircle enclosed by root radii | |
I_root_semicircle, ((PI() / 8) - (8 / (9 * PI()))) * r ^ 4, | |
A_root_semicircle, (PI() * r ^ 2) / 2, | |
I_root_semicircle_y, I_root_semicircle + | |
A_root_semicircle * y_bar_root_semicircle ^ 2, | |
// Distance from centroidal axis of section to centroid of rectangle enclosing roots | |
y_bar_root_rec, (r / 2) + y_bar_root_btm, | |
// SMOA of roots area between enclosing rectangle around roots and semi-circle void | |
I_root_rec, (2 * r) * r ^ 3 / 12, | |
A_root_rec, 2 * r ^ 2, | |
I_root_rec_y, I_root_rec + A_root_rec * y_bar_root_rec ^ 2, | |
// SMOA of root material (doubled as symmetrical about central centroid) | |
I_root_y, 2 * (I_root_rec_y - I_root_semicircle_y), | |
// Total SMOA of I-Beam + root radii | |
I_total, I_rec_outer - I_rec_inner + I_rec_web + I_root_y, | |
I_total | |
), | |
// MAJOR AXIS | |
LET( | |
// Using parallel axis theorem and subtraction of symmetrical rectangles | |
// General I-beam without root radius | |
I_rec_outer, b * h ^ 3 / 12, | |
I_rec_inner, (b - t_w) * (h - 2 * t_f) ^ 3 / 12, | |
// Root radius SMOA by substraction of semicircle from enclosing rectangle | |
// Distance to underside of root from neutral axis | |
y_bar_root_btm, (h - t_f - r) / 2, | |
// Distance from neutral axis of section to centroid of semicircle formed by roots | |
y_bar_root_semicircle, ((4 * r) / (3 * PI())) + y_bar_root_btm, | |
// SMOA of semicircle enclosed by root radii | |
I_root_semicircle, ((PI() / 8) - (8 / (9 * PI()))) * r ^ 4, | |
A_root_semicircle, (PI() * r ^ 2) / 2, | |
I_root_semicircle_y, I_root_semicircle + | |
A_root_semicircle * y_bar_root_semicircle ^ 2, | |
// Distance from centroidal axis of section to centroid of rectangle enclosing roots | |
y_bar_root_rec, (r / 2) + y_bar_root_btm, | |
// SMOA of roots area between enclosing rectangle around roots and semi-circle void | |
I_root_rec, (2 * r) * r ^ 3 / 12, | |
A_root_rec, 2 * r ^ 2, | |
I_root_rec_y, I_root_rec + A_root_rec * y_bar_root_rec ^ 2, | |
// SMOA of root material (doubled as symmetrical about central centroid) | |
I_root_y, 2 * (I_root_rec_y - I_root_semicircle_y), | |
// Total SMOA of I-Beam + root radii | |
I_total, I_rec_outer - I_rec_inner + I_root_y, | |
I_total | |
) | |
) | |
) | |
); | |
Get_Elastic_Section_Modulus = LAMBDA(section_type, section_name, [is_minor_axis], | |
LET( | |
is_minor_axis, IF(ISOMITTED(is_minor_axis), FALSE, is_minor_axis), | |
h, Get_Property_Value(section_type, section_name, "height"), | |
b, Get_Property_Value(section_type, section_name, "breadth"), | |
I, Get_Second_Moment_Of_Area(section_type, section_name, is_minor_axis), | |
IF(is_minor_axis, 2 * I / b, 2 * I / h) | |
) | |
); | |
Get_Plastic_Section_Modulus = LAMBDA(section_type, section_name, [is_minor_axis], | |
LET( | |
is_minor_axis, IF(ISOMITTED(is_minor_axis), FALSE, is_minor_axis), | |
h, Get_Property_Value(section_type, section_name, "height"), | |
b, Get_Property_Value(section_type, section_name, "breadth"), | |
t_w, Get_Property_Value(section_type, section_name, "web_thickness"), | |
t_f, Get_Property_Value(section_type, section_name, "flange_thickness"), | |
r, Get_Property_Value(section_type, section_name, "root_radius"), | |
IF( | |
is_minor_axis, | |
// MINOR AXIS | |
LET( | |
// Using parallel axis theorem to get areas of segments and their respective centroids | |
// Area of left hand side of both flanges | |
A_flanges_left, t_f * b, | |
// Centroid of left hand side flanges from plastic neutral axis | |
y_bar_flange_left, b / 4, | |
// Area of left hand side of web | |
A_web_left, t_w * (h - 2 * t_f) / 2, | |
// Centroid of top half of web from plastic neutral axis | |
y_bar_web_left, t_w / 4, | |
// Area of left roots void semicircle | |
A_roots_left_semicircle, PI() * r ^ 2 / 2, | |
// Centroid of left roots semicircle void from plastic neautral axis | |
y_bar_root_btm, t_w / 2, | |
y_bar_root_semicircle, r * (1 - (4 / (3 * PI()))) + y_bar_root_btm, | |
// Area of left roots enclosing rectangle | |
A_roots_left_rec, 2 * r ^ 2, | |
// Centroid of left roots enclosing rectangle from plastic neautral axis | |
y_bar_root_rec, r / 2 + y_bar_root_btm, | |
//Plastic section modulus of entire section | |
2 * | |
SUM( | |
A_flanges_left * y_bar_flange_left, | |
A_web_left * y_bar_web_left, | |
A_roots_left_rec * y_bar_root_rec, | |
-A_roots_left_semicircle * y_bar_root_semicircle | |
) | |
), | |
// MAJOR AXIS | |
LET( | |
// Using parallel axis theorem to get areas of segments and their respective centroids | |
// Area of top flange | |
A_flange, b * t_f, | |
// Centroid of top flange from plastic neutral axis | |
y_bar_flange, (h - t_f) / 2, | |
// Area of top half of web | |
A_web_top, t_w * (h - 2 * t_f) / 2, | |
// Centroid of top half of web from plastic neutral axis | |
y_bar_web_top, (h / 2 - t_f) / 2, | |
// Area of top roots void semicircle | |
A_roots_top_semicircle, PI() * r ^ 2 / 2, | |
// Centroid of top roots from plastic neautral axis | |
y_bar_root_btm, (h - t_f - r) / 2, | |
y_bar_root_semicircle, ((4 * r) / (3 * PI())) + y_bar_root_btm, | |
// Area of left roots enclosing rectangle | |
A_roots_top_rec, 2 * r ^ 2, | |
// Centroid of left roots enclosing rectangle from plastic neautral axis | |
y_bar_root_rec, r / 2 + y_bar_root_btm, | |
//Plastic section modulus of entire section | |
2 * | |
SUM( | |
A_flange * y_bar_flange, | |
A_web_top * y_bar_web_top, | |
A_roots_top_rec * y_bar_root_rec, | |
-A_roots_top_semicircle * y_bar_root_semicircle | |
) | |
) | |
) | |
) | |
); | |
Get_Effective_Section_Modulus = LAMBDA(section_type, section_name, [is_minor_axis], | |
NA() | |
// To Finish for class 4 sections | |
); | |
Get_Radius_Of_Gyration = LAMBDA(section_type, section_name, [is_minor_axis], | |
LET( | |
is_minor_axis, IF(ISOMITTED(is_minor_axis), FALSE, is_minor_axis), | |
A, Get_Section_Area(section_type, section_name), | |
I, Get_Second_Moment_Of_Area(section_type, section_name, is_minor_axis), | |
SQRT(I / A) | |
) | |
); | |
Get_Warping_Constant = LAMBDA(section_type, section_name, | |
LET( | |
h, Get_Property_Value(section_type, section_name, "height"), | |
t_f, Get_Property_Value(section_type, section_name, "flange_thickness"), | |
I_zz, Get_Second_Moment_Of_Area(section_type, section_name, TRUE), | |
h_s, h - t_f, | |
(I_zz * h_s ^ 2) / 4 | |
) | |
); | |
Get_Torsional_Constant = LAMBDA(section_type, section_name, | |
LET( | |
h, Get_Property_Value(section_type, section_name, "height"), | |
b, Get_Property_Value(section_type, section_name, "breadth"), | |
t_w, Get_Property_Value(section_type, section_name, "web_thickness"), | |
t_f, Get_Property_Value(section_type, section_name, "flange_thickness"), | |
r, Get_Property_Value(section_type, section_name, "root_radius"), | |
α_1, -0.042 + 0.2204 * (t_w / t_f) + 0.1355 * (r / t_f) - 0.0865 * (r * t_w / t_f ^ 2) - | |
0.0725 * (t_w ^ 2 / t_f ^ 2), | |
D_1, ((t_f + r) ^ 2 + (r + 0.25 * t_w) * t_w) / (2 * r + t_f), | |
(2 / 3) * b * t_f ^ 3 + (1 / 3) * (h - 2 * t_f) * t_w ^ 3 + 2 * α_1 * D_1 ^ 4 - | |
0.42 * t_f ^ 4 | |
) | |
); | |
Get_Epsilon = LAMBDA(yield_strength, LET(f_y, yield_strength, SQRT(235 / f_y))); | |
Youngs_Modulus = 210000; | |
Poissons_Ratio = 0.3; | |
Get_Shear_Modulus = LAMBDA(youngs_modulus, poissons_ratio, | |
LET(E, youngs_modulus, ν, poissons_ratio, E / (2 * (1 + ν))) | |
); | |
Get_Flange_Buckling_Ratio = LAMBDA(section_type, section_name, steel_grade, | |
LET( | |
h, Get_Property_Value(section_type, section_name, "height"), | |
b, Get_Property_Value(section_type, section_name, "breadth"), | |
t_f, Get_Property_Value(section_type, section_name, "flange_thickness"), | |
r, Get_Property_Value(section_type, section_name, "root_radius"), | |
f_y, Get_Yield_Strength(section_type, section_name, steel_grade), | |
ε, Get_Epsilon(f_y), | |
d, h - 2 * (t_f + r), | |
E, Youngs_Modulus, | |
section_class, Get_Section_Class(section_type, section_name, steel_grade), | |
CHOOSE(section_class, 0.3, 0.4, 0.55, 0.55) * (E / f_y) * SQRT((d * t_f) / (b * t_f)) | |
) | |
); | |
Get_Web_Slenderness_Ratio = LAMBDA(section_type, section_name, steel_grade, | |
LET( | |
h, Get_Property_Value(section_type, section_name, "height"), | |
t_w, Get_Property_Value(section_type, section_name, "web_thickness"), | |
t_f, Get_Property_Value(section_type, section_name, "flange_thickness"), | |
r, Get_Property_Value(section_type, section_name, "root_radius"), | |
f_y, Get_Yield_Strength(section_type, section_name, steel_grade), | |
ε, Get_Epsilon(f_y), | |
c_w, h - 2 * (t_f + r), | |
c_w / t_w / ε | |
) | |
); | |
Get_Outstand_Flange_Ratio = LAMBDA(section_type, section_name, steel_grade, | |
LET( | |
b, Get_Property_Value(section_type, section_name, "breadth"), | |
t_w, Get_Property_Value(section_type, section_name, "web_thickness"), | |
t_f, Get_Property_Value(section_type, section_name, "flange_thickness"), | |
r, Get_Property_Value(section_type, section_name, "root_radius"), | |
f_y, Get_Yield_Strength(section_type, section_name, steel_grade), | |
ε, Get_Epsilon(f_y), | |
c_f, (b - t_w - 2 * r) / 2, | |
c_f / t_f / ε | |
) | |
); | |
Get_Section_Class = LAMBDA(section_type, section_name, steel_grade, | |
LET( | |
internal_parts, Get_Web_Slenderness_Ratio(section_type, section_name, steel_grade), | |
outstand_flanges, Get_Outstand_Flange_Ratio(section_type, section_name, steel_grade), | |
MAX( | |
IFS( | |
internal_parts <= 72, | |
1, | |
internal_parts <= 83, | |
2, | |
internal_parts <= 124, | |
3, | |
internal_parts > 124, | |
4 | |
), | |
IFS( | |
outstand_flanges <= 9, | |
1, | |
outstand_flanges <= 10, | |
2, | |
outstand_flanges <= 14, | |
3, | |
outstand_flanges > 14, | |
4 | |
) | |
) | |
) | |
); | |
Get_Ultimate_Strength = LAMBDA(section_type, section_name, steel_grade, | |
LET( | |
t_w, Get_Property_Value(section_type, section_name, "web_thickness"), | |
t_f, Get_Property_Value(section_type, section_name, "flange_thickness"), | |
t_max, Get_Max_Thickness(t_w, t_f), | |
t_nom, Get_Nominal_Thickness(t_max), | |
IF( | |
steel_grade = "S275", | |
IFS(t_nom <= 100, 410, t_nom <= 150, 400), | |
IF(steel_grade = "S355", IFS(t_nom <= 100, 470, t_nom <= 150, 450)) | |
) | |
) | |
); | |
Get_Yield_Strength = LAMBDA(section_type, section_name, steel_grade, | |
LET( | |
t_w, Get_Property_Value(section_type, section_name, "web_thickness"), | |
t_f, Get_Property_Value(section_type, section_name, "flange_thickness"), | |
t_max, Get_Max_Thickness(t_w, t_f), | |
t_nom, Get_Nominal_Thickness(t_max), | |
IF( | |
steel_grade = "S275", | |
IFS( | |
t_nom = 16, | |
275, | |
t_nom = 40, | |
265, | |
t_nom = 63, | |
255, | |
t_nom = 80, | |
245, | |
t_nom = 100, | |
235, | |
t_nom = 150, | |
225 | |
), | |
IF( | |
steel_grade = "S355", | |
IFS( | |
t_nom = 16, | |
355, | |
t_nom = 40, | |
345, | |
t_nom = 63, | |
335, | |
t_nom = 80, | |
325, | |
t_nom = 100, | |
315, | |
t_nom = 150, | |
295 | |
) | |
) | |
) | |
) | |
); | |
Get_Nominal_Thickness = LAMBDA(max_thickness, | |
LET( | |
t_max, max_thickness, | |
IFS( | |
t_max <= 16, | |
16, | |
t_max <= 40, | |
40, | |
t_max <= 63, | |
63, | |
t_max <= 80, | |
80, | |
t_max <= 100, | |
100, | |
t_max <= 150, | |
150 | |
) | |
) | |
); | |
Get_Shear_Area = LAMBDA(section_type, section_name, | |
LET( | |
h, Get_Property_Value(section_type, section_name, "height"), | |
b, Get_Property_Value(section_type, section_name, "breadth"), | |
t_w, Get_Property_Value(section_type, section_name, "web_thickness"), | |
t_f, Get_Property_Value(section_type, section_name, "flange_thickness"), | |
r, Get_Property_Value(section_type, section_name, "root_radius"), | |
a, Get_Section_Area(section_type, section_name), | |
η, 1, // Cl NA 2.4 BS EN 1993-1-1:2005 | |
h_w, h - 2 * t_f, | |
MAX(a - (2 * t_f * b) + t_f * (t_w + 2 * r), η * h_w * t_w) | |
) | |
); | |
Get_Section_Area = LAMBDA(section_type, section_name, | |
LET( | |
h, Get_Property_Value(section_type, section_name, "height"), | |
b, Get_Property_Value(section_type, section_name, "breadth"), | |
t_w, Get_Property_Value(section_type, section_name, "web_thickness"), | |
t_f, Get_Property_Value(section_type, section_name, "flange_thickness"), | |
r, Get_Property_Value(section_type, section_name, "root_radius"), | |
(2 * b * t_f) + t_w * (h - 2 * t_f) + r ^ 2 * (4 - PI()) | |
) | |
); | |
Get_Max_Thickness = LAMBDA(thickness_1, thickness_2, | |
LET(t_1, thickness_1, t_2, thickness_2, MAX(t_1, t_2)) | |
); | |
Get_Elastic_Bending_Resistance = LAMBDA(section_type, section_name, steel_grade, shear_force_kN, | |
LET( | |
W_el_y, Get_Elastic_Section_Modulus(section_type, section_name), | |
Get_Bending_Resistance(section_type, section_name, steel_grade, shear_force_kN, W_el_y) | |
) | |
); | |
Get_Plastic_Bending_Resistance = LAMBDA(section_type, section_name, steel_grade, shear_force_kN, | |
LET( | |
W_pl_y, Get_Plastic_Section_Modulus(section_type, section_name), | |
Get_Bending_Resistance(section_type, section_name, steel_grade, shear_force_kN, W_pl_y) | |
) | |
); | |
Get_Effective_Bending_Resistance = LAMBDA(section_type, section_name, steel_grade, shear_force_kN, | |
LET( | |
W_eff_y, Get_Effective_Section_Modulus(section_type, section_name), | |
Get_Bending_Resistance(section_type, section_name, steel_grade, shear_force_kN, W_eff_y) | |
) | |
); | |
Get_Bending_Resistance = LAMBDA( | |
section_type, | |
section_name, | |
steel_grade, | |
shear_force_kN, | |
section_modulus, | |
//***Check if this is still valid when effective section modulus passed*** | |
LET( | |
h, Get_Property_Value(section_type, section_name, "height"), | |
t_w, Get_Property_Value(section_type, section_name, "web_thickness"), | |
t_f, Get_Property_Value(section_type, section_name, "flange_thickness"), | |
f_y, Get_Yield_Strength(section_type, section_name, steel_grade), | |
V_Ed, shear_force_kN, | |
V_pl_Rd, Get_Shear_Resistance(section_type, section_name, steel_grade), | |
ρ, Get_Yield_Strength_Reduction_Factor( | |
section_type, | |
section_name, | |
steel_grade, | |
shear_force_kN | |
), | |
W_y, section_modulus, | |
h_w, h - 2 * t_f, | |
A_w, h_w * t_w, | |
f_y * (W_y - (ρ * A_w ^ 2) / (4 * t_w)) / 10 ^ 6 / γ_M0 | |
) | |
); | |
/** | |
For areas of high shear the yield strength of the shear area is reduced. | |
*/ | |
Get_Yield_Strength_Reduction_Factor = LAMBDA( | |
section_type, | |
section_name, | |
steel_grade, | |
shear_force_kN, | |
LET( | |
V_Ed, shear_force_kN, | |
V_pl_Rd, Get_Shear_Resistance(section_type, section_name, steel_grade), | |
IF(V_Ed < V_pl_Rd / 2, 0, ((2 * V_Ed / V_pl_Rd) - 1) ^ 2) | |
) | |
); | |
Get_Shear_Resistance = LAMBDA(section_type, section_name, steel_grade, | |
LET( | |
f_y, Get_Yield_Strength(section_type, section_name, steel_grade), | |
a_v, Get_Shear_Area(section_type, section_name), | |
a_v * f_y / SQRT(3) / 10 ^ 3 / γ_M0 | |
) | |
); | |
Get_Deflection = LAMBDA(section_type, section_name, length_mm, UDL, | |
LET( | |
L, length_mm, | |
E, Youngs_Modulus, | |
I_yy, Get_Second_Moment_Of_Area(section_type, section_name), | |
(5 * UDL * L ^ 4) / (384 * E * I_yy) | |
) | |
); | |
/** | |
For Rolled doubly symmetric I & H sections. | |
Defined in EC3 UKNA Table NA.1 | |
*/ | |
Get_Buckling_Curve = LAMBDA(section_type, section_name, | |
LET( | |
h, Get_Property_Value(section_type, section_name, "height"), | |
b, Get_Property_Value(section_type, section_name, "breadth"), | |
h_b_ratio, h / b, | |
IFS(h_b_ratio <= 2, "b", h_b_ratio <= 3.1, "c", h_b_ratio > 3.1, "d") | |
) | |
); | |
/** | |
Required for LTB design buckling moment resistance. | |
*/ | |
Get_α_LT = LAMBDA(section_type, section_name, | |
LET( | |
buckling_curve, Get_Buckling_Curve(section_type, section_name), | |
IFS(buckling_curve = "b", 0.34, buckling_curve = "c", 0.49, buckling_curve = "d", 0.76) | |
) | |
); | |
/** | |
Required for LTB design buckling moment resistance. | |
*/ | |
Get_ƛ_LT = LAMBDA(section_type, section_name, steel_grade, elastic_critical_bending_moment_kNm, | |
LET( | |
M_cr, elastic_critical_bending_moment_kNm * 10 ^ 6, | |
class, Get_Section_Class(section_type, section_name, steel_grade), | |
W_y, IFS( | |
class <= 2, | |
Get_Plastic_Section_Modulus(section_type, section_name), | |
class > 2, | |
Get_Elastic_Section_Modulus(section_type, section_name) | |
), | |
f_y, Get_Yield_Strength(section_type, section_name, steel_grade), | |
SQRT(W_y * f_y / M_cr) | |
) | |
); | |
/** | |
Required for LTB design buckling moment resistance. | |
Defined in EC3 NA.2.17(a) | |
*/ | |
β = 0.75; | |
/** | |
Required for LTB design buckling moment resistance. | |
Defined in EC3 NA.2.17(a) | |
*/ | |
ƛ_LT0 = 0.4; | |
/** | |
Required for LTB design buckling moment resistance | |
*/ | |
Get_Φ_LT = LAMBDA(section_type, section_name, slenderness_factor_ƛ_LT, | |
LET( | |
α_LT, Get_α_LT(section_type, section_name), | |
ƛ_LT, slenderness_factor_ƛ_LT, | |
(1 + α_LT * (ƛ_LT - ƛ_LT0) + β * ƛ_LT ^ 2) / 2 | |
) | |
); | |
/** | |
Required for LTB design buckling moment resistance | |
*/ | |
Get_χ_LT = LAMBDA(section_type, section_name, slenderness_factor_ƛ_LT, slenderness_factor_Φ_LT, | |
LET( | |
α_LT, Get_α_LT(section_type, section_name), | |
ƛ_LT, slenderness_factor_ƛ_LT, | |
Φ_LT, slenderness_factor_Φ_LT, | |
MIN(1 / (Φ_LT + SQRT(Φ_LT ^ 2 - β * ƛ_LT ^ 2)), 1, 1 / ƛ_LT ^ 2) | |
) | |
); | |
/** | |
Required for LTB design buckling moment resistance | |
*/ | |
Get_Modifaction_Factor_f = LAMBDA(slenderness_factor_ƛ_LT, slenderness_correction_factor_k_c, | |
LET( | |
ƛ_LT, slenderness_factor_ƛ_LT, | |
k_c, slenderness_correction_factor_k_c, | |
MIN(1 - 0.5 * (1 - k_c) * (1 - 2 * (ƛ_LT - 0.8) ^ 2), 1) | |
) | |
); | |
Get_χ_LT_mod = LAMBDA(slenderness_factor_χ_LT, Modifaction_Factor_f, slenderness_factor_ƛ_LT, | |
LET( | |
χ_LT, slenderness_factor_χ_LT, | |
ƛ_LT, slenderness_factor_ƛ_LT, | |
f, Modifaction_Factor_f, | |
MIN(χ_LT / f, 1, 1 / ƛ_LT ^ 2) | |
) | |
); | |
Get_LTB_Bucking_Resistance = LAMBDA( | |
section_type, | |
section_name, | |
steel_grade, | |
LTB_reduction_factor_χ_LT_mod, | |
LET( | |
χ_LT_mod, LTB_reduction_factor_χ_LT_mod, | |
f_y, Get_Yield_Strength(section_type, section_name, steel_grade), | |
class, Get_Section_Class(section_type, section_name, steel_grade), | |
W_y, IFS( | |
class <= 2, | |
Get_Plastic_Section_Modulus(section_type, section_name), | |
class = 3, | |
Get_Elastic_Section_Modulus(section_type, section_name), | |
class = 4, | |
Get_Effective_Section_Modulus(section_type, section_name) | |
), | |
χ_LT_mod * W_y * f_y / 10 ^ 6 / γ_M1 | |
) | |
); | |
Get_M_cr = LAMBDA( | |
section_type, | |
section_name, | |
steel_grade, | |
length_mm, | |
k, | |
C_1, | |
C_2, | |
z_g, | |
[k_w], | |
[M_cr_manual_kNm], | |
LET( | |
f_y, Get_Yield_Strength(section_type, section_name, steel_grade), | |
I_yy, Get_Second_Moment_Of_Area(section_type, section_name), | |
I_zz, Get_Second_Moment_Of_Area(section_type, section_name, TRUE), | |
I_w, Get_Warping_Constant(section_type, section_name), | |
I_t, Get_Torsional_Constant(section_type, section_name), | |
L, length_mm, | |
g, SQRT(1 - I_zz / I_yy), | |
E_s, Youngs_Modulus, | |
ν, Poissons_Ratio, | |
G_s, Get_Shear_Modulus(E_s, ν), | |
k_w, IF(ISOMITTED(k_w), 1, k_w), | |
M_cr, ( | |
((C_1 * PI() ^ 2 * E_s * I_zz) / ((k * L) ^ 2 * g)) * | |
( | |
SQRT( | |
(k / k_w) ^ 2 * (I_w / I_zz) + | |
((k * L) ^ 2 * G_s * I_t) / (PI() ^ 2 * E_s * I_zz) + (C_2 * z_g) ^ 2 | |
) - (C_2 * z_g) | |
) | |
) / 10 ^ 6, | |
IF(OR(ISOMITTED(M_cr_manual_kNm), M_cr_manual_kNm = 0), M_cr, M_cr_manual_kNm) | |
) | |
); | |
/** | |
Correction factor for moment distribution between lateral restraints. | |
EC3 Table 6.6 | |
*/ | |
Get_k_c = LAMBDA(coefficient_of_restraint_C_1, | |
LET(C_1, coefficient_of_restraint_C_1, 1 / SQRT(C_1)) | |
); | |
Get_z_g = LAMBDA(section_type, section_name, load_type, | |
LET( | |
h, Get_Property_Value(section_type, section_name, "height"), | |
IFS( | |
load_type = "Destabilising", | |
h / 2, | |
load_type = "Shear Centre", | |
0, | |
load_type = "Stabilising", | |
-h / 2 | |
) | |
) | |
); | |
Get_Auto_Designed_Section = LAMBDA( | |
steel_grade, | |
length_mm, | |
permanent_UDL, | |
imposed_UDL, | |
deflection_limit_span_imposed, | |
deflection_limit_span_total, | |
deflection_limit_abs_total, | |
design_priority, | |
lookup_section_table_1, | |
lookup_section_table_2, | |
max_height, | |
min_height, | |
max_breadth, | |
min_breadth, | |
restrained_bool, | |
effective_length_factor_k, | |
effective_length_factor_warping_k_w, | |
load_type, | |
[section_index], | |
LET( | |
// General assigning | |
L, length_mm, | |
g_k, permanent_UDL, | |
q_k, imposed_UDL, | |
k, effective_length_factor_k, | |
k_w, effective_length_factor_warping_k_w, | |
δ_lim_span_qk, deflection_limit_span_imposed, | |
δ_lim_span_SLS, deflection_limit_span_total, | |
δ_lim_abs_SLS, IF( | |
ISBLANK(deflection_limit_abs_total), | |
δ_lim_span_SLS, | |
deflection_limit_abs_total | |
), | |
max_h, IF(OR(ISBLANK(max_height), max_height = 0), 9999, max_height), | |
max_b, IF(OR(ISBLANK(max_breadth), max_breadth = 0), 9999, max_breadth), | |
min_h, IF(ISBLANK(min_height), 0, min_height), | |
min_b, IF(ISBLANK(min_breadth), 0, min_breadth), | |
section_index, IF(ISOMITTED(section_index), 1, section_index), | |
section_table_1, IFS( | |
lookup_section_table_1 = "UB", | |
UB_Table, | |
lookup_section_table_1 = "UKB", | |
UKB_Table, | |
lookup_section_table_1 = "UC", | |
UC_Table, | |
lookup_section_table_1 = "UKC", | |
UKC_Table | |
), | |
section_table_2, IFS( | |
lookup_section_table_2 = "UB", | |
UB_Table, | |
lookup_section_table_2 = "UKB", | |
UKB_Table, | |
lookup_section_table_2 = "UC", | |
UC_Table, | |
lookup_section_table_2 = "UKC", | |
UKC_Table | |
), | |
// Combine section lookup tables & remove duplicates | |
section_table_unsorted, UNIQUE(VSTACK(section_table_1, section_table_2)), | |
// Filtering table to minimum & maximum size limit constraints | |
section_table_filtered, Filter_Table(section_table_unsorted, max_h, min_h, max_b, min_b), | |
// Sorting table to design priority order | |
section_table_sorted, Sort_Table(section_table_filtered, design_priority), | |
// Get section from sorted and filtered section table | |
name_property_index, Get_Property_Index("name"), | |
type_property_index, Get_Property_Index("type"), | |
section_name, INDEX(section_table_sorted, section_index, name_property_index), | |
section_type, INDEX(section_table_sorted, section_index, type_property_index), | |
g_swt, Get_Section_Selfweight(section_type, section_name), | |
w_SLS, SUM(g_k, g_swt, q_k), | |
// DESIGN CHECKS | |
// Section Class | |
class, Get_Section_Class(section_type, section_name, steel_grade), | |
web_slenderness_ratio, Get_Web_Slenderness_Ratio(section_type, section_name, steel_grade), | |
flange_buckling_ratio, Get_Flange_Buckling_Ratio(section_type, section_name, steel_grade), | |
flange_buckling_UR, web_slenderness_ratio / flange_buckling_ratio, | |
// Shear | |
V_Ed, Loading.Get_Shear_Force(g_k + g_swt, q_k, L), | |
V_pl_Rd, Get_Shear_Resistance(section_type, section_name, steel_grade), | |
V_UR, V_Ed / V_pl_Rd, | |
// Moment | |
M_Ed, Loading.Get_Bending_Moment(g_k + g_swt, q_k, L), | |
M_y_Rd, IFS( | |
class <= 2, | |
Get_Plastic_Bending_Resistance(section_type, section_name, steel_grade, V_Ed), | |
class = 3, | |
Get_Elastic_Bending_Resistance(section_type, section_name, steel_grade, V_Ed), | |
class = 4, | |
Get_Effective_Bending_Resistance(section_type, section_name, steel_grade, V_Ed) | |
), | |
M_UR, M_Ed / M_y_Rd, | |
// Deflection | |
// Imposed only | |
δ_qk, Get_Deflection(section_type, section_name, L, q_k), | |
δ_lim_qk, L / δ_lim_span_qk, | |
δ_qk_UR, δ_qk / δ_lim_qk, | |
// Total | |
δ_SLS, Get_Deflection(section_type, section_name, L, w_SLS), | |
δ_lim_SLS, L / δ_lim_span_SLS, | |
δ_SLS_UR, δ_SLS / MIN(δ_lim_SLS, δ_lim_abs_SLS), | |
// LTB | |
// For coefficient of restraint factors see NCCI: SN003b-EN-EU | |
C_1, 1.127, // Assumes simply-supported with UDL | |
C_2, 0.454, // Assumes simply-supported with UDL | |
k_c, Get_k_c(C_1), | |
z_g, Get_z_g(section_type, section_name, load_type), | |
M_cr, Get_M_cr(section_type, section_name, steel_grade, L, k, C_1, C_2, z_g, k_w), | |
ƛ_LT, Get_ƛ_LT(section_type, section_name, steel_grade, M_cr), | |
Φ_LT, Get_Φ_LT(section_type, section_name, ƛ_LT), | |
χ_LT, Get_χ_LT(section_type, section_name, ƛ_LT, Φ_LT), | |
f, Get_Modifaction_Factor_f(ƛ_LT, k_c), | |
χ_LT_mod, Get_χ_LT_mod(χ_LT, f, ƛ_LT), | |
M_b_Rd, Get_LTB_Bucking_Resistance(section_type, section_name, steel_grade, χ_LT_mod), | |
LTB_UR, IF( | |
OR(restrained_bool, ƛ_LT <= ƛ_LT0, M_Ed / M_cr <= ƛ_LT0 ^ 2), | |
"Not Req'd", | |
M_Ed / M_b_Rd | |
), | |
// Results | |
results, VSTACK(section_type, section_name, V_UR, M_UR, δ_qk_UR, δ_SLS_UR, LTB_UR), | |
// Auto Design Recursive Loop | |
sections_length, ROWS(section_table_sorted), | |
IF( | |
OR(AND(V_UR < 1, M_UR < 1, δ_qk_UR < 1, δ_SLS_UR < 1), section_index = sections_length), | |
IF( | |
OR(restrained_bool, LTB_UR = "Not Req'd"), | |
results, | |
IF( | |
LTB_UR < 1, | |
results, | |
Get_Auto_Designed_Section( | |
steel_grade, | |
length_mm, | |
permanent_UDL, | |
imposed_UDL, | |
deflection_limit_span_imposed, | |
deflection_limit_span_total, | |
deflection_limit_abs_total, | |
design_priority, | |
lookup_section_table_1, | |
lookup_section_table_2, | |
max_h, | |
min_h, | |
max_b, | |
min_b, | |
restrained_bool, | |
k, | |
k_w, | |
load_type, | |
section_index + 1 | |
) | |
) | |
), | |
Get_Auto_Designed_Section( | |
steel_grade, | |
length_mm, | |
permanent_UDL, | |
imposed_UDL, | |
deflection_limit_span_imposed, | |
deflection_limit_span_total, | |
deflection_limit_abs_total, | |
design_priority, | |
lookup_section_table_1, | |
lookup_section_table_2, | |
max_h, | |
min_h, | |
max_b, | |
min_b, | |
restrained_bool, | |
k, | |
k_w, | |
load_type, | |
section_index + 1 | |
) | |
) | |
) | |
); | |
Sort_Table = LAMBDA(table, design_priority, | |
LET( | |
sort_index, IFS( | |
design_priority = "Lowest mass", | |
Get_Property_Index("mass"), | |
design_priority = "Smallest section height", | |
Get_Property_Index("height") | |
), | |
SORT(table, sort_index) | |
) | |
); | |
Filter_Table = LAMBDA(table, max_height, min_height, max_breadth, min_breadth, | |
LET( | |
height_property_index, Get_Property_Index("height"), | |
breadth_property_index, Get_Property_Index("breadth"), | |
sort_array_heights, CHOOSECOLS(table, height_property_index), | |
sort_array_breadths, CHOOSECOLS(table, breadth_property_index), | |
FILTER( | |
table, | |
(sort_array_heights <= max_height) * (sort_array_heights >= min_height) * | |
(sort_array_breadths <= max_breadth) * (sort_array_breadths >= min_breadth) | |
) | |
) | |
); |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment