Download presentation
Presentation is loading. Please wait.
Published byAryan Dewing Modified over 10 years ago
1
Part 3. Description of a function code 1
2
Part 3. Description of a function code 2 As an example we will write a function code to find the outside diameter of a carbon steel pipe, with input nominal diameter in inches.
3
Part 3. Description of a function code 3 As an example we will write a function code to find the outside diameter of a carbon steel pipe, with input nominal diameter in inches. The name of the function will be
4
Part 3. Description of a function code 4 "Pipe_Imp_CS_Dext_dn_sch" As an example we will write a function code to find the outside diameter of a carbon steel pipe, with input nominal diameter in inches. The name of the function will be
5
Part 3. Description of a function code 5 "Pipe_Imp_CS_Dext_dn_sch" As an example we will write a function code to find the outside diameter of a carbon steel pipe, with input nominal diameter in inches. The name of the function will be This function is based on outside diameters defined in ASME B36.10M
6
Part 3. Description of a function code 6 "Pipe_Imp_CS_Dext_dn_sch" As an example we will write a function code to find the outside diameter of a carbon steel pipe, with input nominal diameter in inches. The name of the function will be This function is based on outside diameters defined in ASME B36.10M A table with the outside diameters "dext [mm]", corresponding to the nominal diameters "dn [in]", should be included on a sheet in the Excel file. The function will read the information from this sheet.
7
7 The following table shows outside diameters and thicknesses for carbon steel pipes of different nominal diameters and schedules, according to the standard ASME B36. 10
8
8
9
9 Function code for the exterior diameter
10
10 Function code for the exterior diameter As explained in Part 1, the code starts by defining the function name and Visual Basic adds the "End Function".
11
11 Function code for the exterior diameter As explained in Part 1, the code starts by defining the function name and Visual Basic adds the "End Function". Function Pipe_Imp_CS_Dext_dn(Dn) End Function
12
12 The exterior diameter depends only on the nominal diameter (Dn) and is in the third column of the table.
13
13
14
14 The code begins by defining the matrix "C" containing rows 1 through 36 and columns 1 through 3.
15
15
16
16 Matrix "C" in whose third column from rows 7 to 36 are the exterior diameters "OD [mm]"
17
17 Next, it will be defined in the code, the array dimension of "C"
18
18 Dim C(36, 3) Function Pipe_Imp_CS_Dext_dn(Dn) End Function
19
19 Dim C(36, 3) Function Pipe_Imp_CS_Dext_dn(Dn) End Function The matrix C is defined with 36 columns and 3 rows
20
20 Reading of the table
21
21 Reading of the table To read the information in the table, one uses a structure called For-next
22
22 Reading of the table To read the information in the table, one uses a structure called For-next The For-next indicates to repeat an operation that depends on an index "m" and indicates the start and end values of "m".
23
23 Reading of the table To read the information in the table, one uses a structure called For-next The For-next indicates to repeat an operation that depends on an index "m" and indicates the start and end values of "m". For m = 1 To 36
24
24 Reading of the table To read the information in the table, one uses a structure called For-next The For-next indicates to repeat an operation that depends on an index "m" and indicates the start and end values of "m". For m = 1 To 36 In this space are introduced the operations to be performed, which depend on the temporal value of the index "m"
25
25 Reading of the table To read the information in the table, one uses a structure called For-next The For-next indicates to repeat an operation that depends on an index "m" and indicates the start and end values of "m". For m = 1 To 36 In this space are introduced the operations to be performed, which depend on the temporal value of the index "m" The operations with the index "m" end with
26
26 Reading of the table To read the information in the table, one uses a structure called For-next The For-next indicates to repeat an operation that depends on an index "m" and indicates the start and end values of "m". For m = 1 To 36 In this space are introduced the operations to be performed, which depend on the temporal value of the index "m" Next m The operations with the index "m" end with
27
27 Reading of the table To read the information in the table, one uses a structure called For-next The For-next indicates to repeat an operation that depends on an index "m" and indicates the start and end values of "m". For m = 1 To 36 In this space are introduced the operations to be performed, which depend on the temporal value of the index "m" Next m The operations with the index "m" end with The loop ends after the operation with index "m = 36" is performed.
28
28 The For-next is programed as follows
29
29 The For-next is programed as follows
30
30 The For-next is programed as follows This indicates that cells in column 3, from row 1 to 36, shall be read
31
31 The For-next is programed as follows This indicates that cells in column 3, from row 1 to 36, shall be read
32
32 The For-next is programed as follows This indicates that cells in column 3, from row 1 to 36, shall be read The read value is assigned to the element (m, 3) of the matrix "C"
33
33 The For-next is programed as follows This indicates that cells in column 3, from row 1 to 36, shall be read The read value is assigned to the element (m, 3) of the matrix "C"
34
34 The For-next is programed as follows This indicates that cells in column 3, from row 1 to 36, shall be read The reading is done in the sheet that has been named 6.CS_Imp The read value is assigned to the element (m, 3) of the matrix "C"
35
35 The For-next is programed as follows This indicates that cells in column 3, from row 1 to 36, shall be read The reading is done in the sheet that has been named 6.CS_Imp The read value is assigned to the element (m, 3) of the matrix "C"
36
36 The For-next is programed as follows This indicates that cells in column 3, from row 1 to 36, shall be read The reading is done in the sheet that has been named 6.CS_Imp The read value is assigned to the element (m, 3) of the matrix "C" On sheet "6.CS_Imp" it must be read the contents of the cell (m, 3)
37
37 Summary of programming steps
38
38 Summary of programming steps Function
39
39 Summary of programming steps Function Pipe_Imp_CS_Dext_dn(Dn) End Function
40
40 Summary of programming steps Function Pipe_Imp_CS_Dext_dn(Dn) End Function Dim C(36, 3)
41
41 Summary of programming steps Function Pipe_Imp_CS_Dext_dn(Dn) End Function Dim C(36, 3) For m = 1 To 36
42
42 Summary of programming steps Function Pipe_Imp_CS_Dext_dn(Dn) End Function Dim C(36, 3) For m = 1 To 36 C(m, 3) = thisWorkbook.Worksheets("6.CS_Imp").Cells(m, 3).Value
43
43 Summary of programming steps Function Pipe_Imp_CS_Dext_dn(Dn) End Function Dim C(36, 3) For m = 1 To 36 C(m, 3) = thisWorkbook.Worksheets("6.CS_Imp").Cells(m, 3).Value Next m
44
44 Identification of the row in which each nominal diameter is found
45
45 Identification of the row in which each nominal diameter is found By associating the nominal diameter to its row in the matrix, one knows the row where the rest of the data related to this diameter is located in the matrix.
46
46
47
47 Identification of the row in which each nominal diameter is found By associating the nominal diameter to its row in the matrix, one knows the row where the rest of the data related to this diameter is located in the matrix. En el código se agrega la siguiente línea
48
48 Identificación de la fila en que se encuentra cada diámetro nominal Al asociar el diámetro nominal del caso a su fila en la matriz, se conoce la ubicación de la fila de todos los datos correspondientes a ese diámetro. En el código se agrega la siguiente línea If Dn = 0.5 Then x = 7
49
49 Identificación de la fila en que se encuentra cada diámetro nominal Al asociar el diámetro nominal del caso a su fila en la matriz, se conoce la ubicación de la fila de todos los datos correspondientes a ese diámetro. En el código se agrega la siguiente línea If Dn = 0.5 Then x = 7 Cuyo significado es Si Dn tiene el valo 0.5 [in] entonces se trata de la fila 7
50
50 Identificación de la fila en que se encuentra cada diámetro nominal Al asociar el diámetro nominal del caso a su fila en la matriz, se conoce la ubicación de la fila de todos los datos correspondientes a ese diámetro. En el código se agrega la siguiente línea If Dn = 0.5 Then x = 7 Cuyo significado es Si Dn tiene el valo 0.5 [in] entonces se trata de la fila 7 La siguiente línea es
51
51 Identificación de la fila en que se encuentra cada diámetro nominal Al asociar el diámetro nominal del caso a su fila en la matriz, se conoce la ubicación de la fila de todos los datos correspondientes a ese diámetro. En el código se agrega la siguiente línea ElseIf Dn = 0.75 Then x = 8 If Dn = 0.5 Then x = 7 Cuyo significado es Si Dn tiene el valo 0.5 [in] entonces se trata de la fila 7 La siguiente línea es
52
52 Identificación de la fila en que se encuentra cada diámetro nominal Al asociar el diámetro nominal del caso a su fila en la matriz, se conoce la ubicación de la fila de todos los datos correspondientes a ese diámetro. En el código se agrega la siguiente línea Cuyo significado es O Si Dn tiene el valor 0.75 [in], se trata de la fila 8 ElseIf Dn = 0.75 Then x = 8 If Dn = 0.5 Then x = 7 Cuyo significado es Si Dn tiene el valo 0.5 [in] entonces se trata de la fila 7 La siguiente línea es
53
53 Identificación de la fila en que se encuentra cada diámetro nominal By associating the nominal diameter to its row in the matrix, one knows the row where the rest of the data related to this diameter is located in the matrix. En el código se agrega la siguiente línea Cuyo significado es O Si Dn tiene el valor 0.75 [in], se trata de la fila 8 ElseIf Dn = 0.75 Then x = 8 If Dn = 0.5 Then x = 7 Y así sucesivamente hasta identificar todas las filas Cuyo significado es Si Dn tiene el valo 0.5 [in] entonces se trata de la fila 7 La siguiente línea es
54
54 Identification of the row in which each nominal diameter is found By associating the nominal diameter to its row in the matrix, one knows the row where the rest of the data related to this diameter is located in the matrix. In the code we add the following line Whose meaning is Or if Dn has the value 0.75 [in], then it is row 8 ElseIf Dn = 0.75 Then x = 8 If Dn = 0.5 Then x = 7 And so on until all all rows are identified With these two new lines, the code looks like Whose meaning is If Dn has the values 0.5 [in] then the row is row 7 The next line is
55
55 Function Pipe_Imp_CS_Dext_dn(Dn) Dim C(36, 3) For m = 1 To 36 C(m, 3) = ThisWorkbook.Worksheets("6.CS_Imp").Cells(m, 3).Value Next m If Dn = 0.5 Then x = 7 ElseIf Dn = 0.75 Then x = 8 End Function
56
56 And with all the rows identified, this part of the code looks like
57
57 Function Pipe_Imp_CS_Dext_dn(Dn) Dim C(36, 3) For m = 1 To 36 C(m, 3) = ThisWorkbook.Worksheets("6.CS_Imp").Cells(m, 3).Value Next m If Dn = 0.5 Then x = 7 ElseIf Dn = 0.75 Then x = 8 ElseIf Dn = 1 Then x = 9 ElseIf Dn = 1.5 Then x = 10 ElseIf Dn = 2 Then x = 11 ElseIf Dn = 3 Then x = 12 ElseIf Dn = 4 Then x = 13 ElseIf Dn = 5 Then x = 14 ElseIf Dn = 6 Then x = 15 ElseIf Dn = 8 Then x = 16 ElseIf Dn = 10 Then x = 17 ElseIf Dn = 12 Then x = 18 ElseIf Dn = 14 Then x = 19 ElseIf Dn = 16 Then x = 20 ElseIf Dn = 18 Then x = 21 ElseIf Dn = 20 Then x = 22 ElseIf Dn = 22 Then x = 23 ElseIf Dn = 24 Then x = 24 ElseIf Dn = 26 Then x = 26 ElseIf Dn = 28 Then x = 26 ElseIf Dn = 30 Then x = 27 ElseIf Dn = 32 Then x = 28 ElseIf Dn = 34 Then x = 29 ElseIf Dn = 36 Then x = 30 ElseIf Dn = 38 Then x = 31 ElseIf Dn = 40 Then x = 32 ElseIf Dn = 42 Then x = 33 ElseIf Dn = 44 Then x = 34 ElseIf Dn = 46 Then x = 35 ElseIf Dn = 48 Then x = 36 ' If the Dn-value is not within the given values, ' The function returns Dext = "N/A" Else Pipe_Imp_CS_Dext_dn = "N/A" Exit Function End If
58
58 A resume of the code is
59
59 Function Pipe_Imp_CS_Dext_dn(Dn) Dim C(36, 3) For m = 1 To 36 C(m, 3) = ThisWorkbook.Worksheets("6.CS_Imp").Cells(m, 3).Value Next m If Dn = 0.5 Then x = 7 ElseIf Dn = 0.75 Then x = 8 ElseIf Dn = 1 Then x = 9 ElseIf Dn = 1.5 Then x = 10 ElseIf Dn = 2 Then x = 11 ElseIf Dn = 44 Then x = 34 ElseIf Dn = 46 Then x = 35 ElseIf Dn = 48 Then x = 36 ' If the Dn-value is not within the given values, ' The function returns Dext = "N/A" Else Pipe_Imp_CS_Dext_dn = "N/A" Exit Function End If
60
60 Function Pipe_Imp_CS_Dext_dn(Dn) Dim C(36, 3) For m = 1 To 36 C(m, 3) = ThisWorkbook.Worksheets("6.CS_Imp").Cells(m, 3).Value Next m If Dn = 0.5 Then x = 7 ElseIf Dn = 0.75 Then x = 8 ElseIf Dn = 1 Then x = 9 ElseIf Dn = 1.5 Then x = 10 ElseIf Dn = 2 Then x = 11 ElseIf Dn = 44 Then x = 34 ElseIf Dn = 46 Then x = 35 ElseIf Dn = 48 Then x = 36 ' If the Dn-value is not within the given values, ' The function returns Dext = "N/A" Else Pipe_Imp_CS_Dext_dn = "N/A" Exit Function End If This part of the function concludes saying, "Else" that is, in another case, if the nominal diameter received as input is not one of those reviewed, then the input is wrong. The function finish giving the answer Not Applicable (N / A)
61
61 If the input value of the nominal diameter corresponds to one of the values defined in the standard, it means that in the recently made review, the "x value" of the line corresponding to the nominal diameter has been identified.
62
62 If the input value of the nominal diameter corresponds to one of the values defined in the standard, it means that in the recently made review, the "x value" of the line corresponding to the nominal diameter has been identified. Thus, the value of x is a known value
63
63 If the input value of the nominal diameter corresponds to one of the values defined in the standard, it means that in the recently made review, the "x value" of the line corresponding to the nominal diameter has been identified. Known the matrix row in which the required exterior diameter is (row "x"), and as it is also known that this diameter is in column "3", the element of array with the desired value is the element (x, 3) Thus, the value of x is a known value
64
64 If the input value of the nominal diameter corresponds to one of the values defined in the standard, it means that in the recently made review, the "x value" of the line corresponding to the nominal diameter has been identified. Known the matrix row in which the required exterior diameter is (row "x"), and as it is also known that this diameter is in column "3", the element of array with the desired value is the element (x, 3) Thus, the value of the desired function is Thus, the value of x is a known value
65
65 If the input value of the nominal diameter corresponds to one of the values defined in the standard, it means that in the recently made review, the "x value" of the line corresponding to the nominal diameter has been identified. Pipe_Imp_CS_Dext_dn = C(x, 3) Known the matrix row in which the required exterior diameter is (row "x"), and as it is also known that this diameter is in column "3", the element of array with the desired value is the element (x, 3) Thus, the value of the desired function is Thus, the value of x is a known value
66
66 If the input value of the nominal diameter corresponds to one of the values defined in the standard, it means that in the recently made review, the "x value" of the line corresponding to the nominal diameter has been identified. Pipe_Imp_CS_Dext_dn = C(x, 3) Known the matrix row in which the required exterior diameter is (row "x"), and as it is also known that this diameter is in column "3", the element of array with the desired value is the element (x, 3) Thus, the value of the desired function is With this, the function is finished Thus, the value of x is a known value
67
67 The complete code is
68
68 Function Pipe_Imp_CS_Dext_dn(Dn) Dim C(36, 3) As Variant For m = 1 To 36 C(m, 3) = ThisWorkbook.Worksheets("6.CS_Imp").Cells(m, 3).Value Next m x = 7 ElseIf Dn = 0.75 Then x = 8 ElseIf Dn = 1 Then x = 9 ElseIf Dn = 1.5 Then x = 10 ElseIf Dn = 2 Then x = 11 ElseIf Dn = 3 Then x = 12 ElseIf Dn = 4 Then x = 13 ElseIf Dn = 5 Then x = 14 ElseIf Dn = 6 Then x = 15 ElseIf Dn = 8 Then x = 16 ElseIf Dn = 10 Then x = 17 ElseIf Dn = 12 Then x = 18 ElseIf Dn = 14 Then x = 19 ElseIf Dn = 16 Then x = 20 ElseIf Dn = 18 Then x = 21 ElseIf Dn = 20 Then x = 22 ElseIf Dn = 22 Then x = 23 ElseIf Dn = 24 Then x = 24 ElseIf Dn = 26 Then x = 26 ElseIf Dn = 28 Then x = 26 ElseIf Dn = 30 Then x = 27 ElseIf Dn = 32 Then x = 28 ElseIf Dn = 34 Then x = 29 ElseIf Dn = 36 Then x = 30 ElseIf Dn = 38 Then x = 31 ElseIf Dn = 40 Then x = 32 ElseIf Dn = 42 Then x = 33 ElseIf Dn = 44 Then x = 34 ElseIf Dn = 46 Then x = 35 ElseIf Dn = 48 Then x = 36 Else Pipe_Imp_CS_Dext_dn = "N/A" Exit Function End If Pipe_Imp_CS_Dext_dn = C(x, 3) End Function
69
69 End of Part 3 Note. In the web page "piping-tools.net", in the file Pipe dimensions and friction factor.xlsm, there are three functions (outside diameter, inside diameter and thickness) with complete code.
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.