Title: Presentaci
1Parte 3. Descripción del código de una función
2Parte 3. Descripción del código de una función
Como ejemplo se escribirá el código de una
función para encontrar el diámetro exterior de
una cañería de acero al carbono, con input del
diámetro nominal en pulgadas.
3Parte 3. Descripción del código de una función
Como ejemplo se escribirá el código de una
función para encontrar el diámetro exterior de
una cañería de acero al carbono, con input del
diámetro nominal en pulgadas.
El nombre de la función será
4Parte 3. Descripción del código de una función
Como ejemplo se escribirá el código de una
función para encontrar el diámetro exterior de
una cañería de acero al carbono, con input del
diámetro nominal en pulgadas.
El nombre de la función será
"Pipe_Imp_CS_Dext_dn_sch"
5Parte 3. Descripción del código de una función
Como ejemplo se escribirá el código de una
función para encontrar el diámetro exterior de
una cañería de acero al carbono, con input del
diámetro nominal en pulgadas.
El nombre de la función será
"Pipe_Imp_CS_Dext_dn_sch"
Esta función se basa en los diámetros exteriores
definidos en la norma ASME B36.10M
6Parte 3. Descripción del código de una función
Como ejemplo se escribirá el código de una
función para encontrar el diámetro exterior de
una cañería de acero al carbono, con input del
diámetro nominal en pulgadas.
El nombre de la función será
"Pipe_Imp_CS_Dext_dn_sch"
Esta función se basa en los diámetros exteriores
definidos en la norma ASME B36.10M
Una tabla con los diámetros exteriores dext
mm correspondientes a los diámetros nominales
dn in, se debe incluir en una hoja del
archivo Excel. La función leerá la información
desde esta hoja.
7La tabla que sigue entrega los diámetros
exteriores y espesores para cañerías de acero
carbono de diferentes diámetros nominales y
cédulas, de acuerdo a la norma ASME B36. 10
8(No Transcript)
9Código de la función para el diámetro exterior
10Código de la función para el diámetro exterior
Según se explicó en la Parte 1, el código se
inicia definiendo el nombre de la función y
Visual Basic agrega el End Function .
11Código de la función para el diámetro exterior
Según se explicó en la Parte 1, el código se
inicia definiendo el nombre de la función y
Visual Basic agrega el End Function .
Function Pipe_Imp_CS_Dext_dn(Dn) End Function
12El diámetro exterior depende sólo del diámetro
nominal (Dn) y se encuentra en la tercera columna
de la tabla.
13(No Transcript)
14El código empieza definiendo la matriz C que
contiene las filas 1 a la 36 y las columnas 1 a
3.
15(No Transcript)
16Matriz C, en cuya tercera columna, desde las
filas 7 a la 36 se encuentran los diámetros
exteriores Dext mm
17A continuación se definirá en el código, la
dimensión de la matriz C
18Function Pipe_Imp_CS_Dext_dn(Dn)
Dim C(36, 3)
End Function
19Function Pipe_Imp_CS_Dext_dn(Dn)
Dim C(36, 3)
End Function
La matriz C se ha definido con 36 columnas y 3
filas
20Lectura de la tabla
21Lectura de la tabla
Para leer la información de la tabla, se usa una
estructura llamada For -next
22Lectura de la tabla
Para leer la información de la tabla, se usa una
estructura llamada For -next
El For-next indica que se debe repetir una
operación que depende de un índice m y se
indican los valores inicial y final de m.
23Lectura de la tabla
Para leer la información de la tabla, se usa una
estructura llamada For -next
El For-next indica que se debe repetir una
operación que depende de un índice m y se
indican los valores inicial y final de m.
For m 1 To 36
24Lectura de la tabla
Para leer la información de la tabla, se usa una
estructura llamada For -next
El For-next indica que se debe repetir una
operación que depende de un índice m y se
indican los valores inicial y final de m.
For m 1 To 36
En este espacio se indican las operaciones que se
deben efectuar, las que dependen del valor del
momento del índice m
25Lectura de la tabla
Para leer la información de la tabla, se usa una
estructura llamada For -next
El For-next indica que se debe repetir una
operación que depende de un índice m y se
indican los valores inicial y final de m.
For m 1 To 36
En este espacio se indican las operaciones que se
deben efectuar, las que dependen del valor del
momento del índice m
Las operaciones con el índice m terminan con
Next m
26Lectura de la tabla
Para leer la información de la tabla, se usa una
estructura llamada For -next
El For-next indica que se debe repetir una
operación que depende de un índice m y se
indican los valores inicial y final de m.
For m 1 To 36
En este espacio se indican las operaciones que se
deben efectuar, las que dependen del valor del
momento del índice m
Las operaciones con el índice m terminan con
Next m
El loop termina después que m toma el valor 36
27El For-next se programa como sigue
28El For-next se programa como sigue
29El For-next se programa como sigue
Aquí se indica que se deben leer las celdas de la
columna 3, desde la fila 1 a la 36.
30El For-next se programa como sigue
Aquí se indica que se deben leer las celdas de la
columna 3, desde la fila 1 a la 36.
31El For-next se programa como sigue
Aquí se indica que se deben leer las celdas de la
columna 3, desde la fila 1 a la 36.
El valor leído se asigna al elemento (m,3) de la
matriz C
32El For-next se programa como sigue
Aquí se indica que se deben leer las celdas de la
columna 3, desde la fila 1 a la 36.
El valor leído se asigna al elemento (m,3) de la
matriz C
33El For-next se programa como sigue
Aquí se indica que se deben leer las celdas de la
columna 3, desde la fila 1 a la 36.
El valor leído se asigna al elemento (m,3) de la
matriz C
La lectura se hace en la hoja que se ha nombrado
6.CS_Imp
34El For-next se programa como sigue
Aquí se indica que se deben leer las celdas de la
columna 3, desde la fila 1 a la 36.
El valor leído se asigna al elemento (m,3) de la
matriz C
La lectura se hace en la hoja que se ha nombrado
6.CS_Imp
35El For-next se programa como sigue
Aquí se indica que se deben leer las celdas de la
columna 3, desde la fila 1 a la 36.
El valor leído se asigna al elemento (m,3) de la
matriz C
La lectura se hace en la hoja que se ha nombrado
6.CS_Imp
En la hoja 6.CS_Imp, se lee el contenido de la
celda (m,3)
36Resumen de los pasos de programación dados
37Resumen de los pasos de programación dados
Function
38Resumen de los pasos de programación dados
Function
Pipe_Imp_CS_Dext_dn(Dn)
39Resumen de los pasos de programación dados
Function
Pipe_Imp_CS_Dext_dn(Dn)
End Function
40Resumen de los pasos de programación dados
Function
Pipe_Imp_CS_Dext_dn(Dn)
End Function
41Resumen de los pasos de programación dados
Function
Pipe_Imp_CS_Dext_dn(Dn)
Dim C(36, 3)
End Function
42Resumen de los pasos de programación dados
Function
Pipe_Imp_CS_Dext_dn(Dn)
Dim C(36, 3)
For m 1 To 36
End Function
43Resumen de los pasos de programación dados
Function
Pipe_Imp_CS_Dext_dn(Dn)
Dim C(36, 3)
For m 1 To 36
C(m, 3) thisWorkbook.Worksheets("6.CS_Imp").Cel
ls(m, 3).Value
End Function
44Resumen de los pasos de programación dados
Function
Pipe_Imp_CS_Dext_dn(Dn)
Dim C(36, 3)
For m 1 To 36
C(m, 3) thisWorkbook.Worksheets("6.CS_Imp").Cel
ls(m, 3).Value
Next m
End Function
45Identificación de la fila en que se encuentra
cada diámetro nominal
46Identificació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 en la fila
de todos los datos correspondientes a ese
diámetro.
47(No Transcript)
48Identificació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
49Identificació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
50Identificació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
51Identificació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
52Identificació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
ElseIf Dn 0.75 Then x 8
53Identificació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
ElseIf Dn 0.75 Then x 8
Cuyo significado es O Si Dn tiene el valor 0.75
in , se trata de la fila 8
54Identificació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
ElseIf Dn 0.75 Then x 8
Cuyo significado es O Si Dn tiene el valor 0.75
in , se trata de la fila 8
Y así sucesivamente hasta identificar todas las
filas
55Identificació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 la fila es la fila 7
La siguiente línea es
ElseIf Dn 0.75 Then x 8
Cuyo significado es O Si Dn tiene el valor 0.75
in , se trata de la fila 8
Y así sucesivamente hasta identificar todas las
filas
Con estas dos nuevas líneas, el código se ve así
56 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
57Y con todas las filas identificadas, el código se
ve así
58 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
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
Esta parte de la función termina diciendo, Else
esto es, en otro caso, si el diámetro nominal
recibido como input no es ninguno de los
revisados, entonces el input es erróneo. La
función termina entregando como respuesta un No
Aplica (N/A)
60Si el valor del diámetro nominal corresponde a
alguno de los valores definidos en la estándar,
significa que en el examen recién realizado se ha
encontrado la línea correspondiente al diámetro
nominal recibido. Esto es, se conoce el valor de
x
61Si el valor del diámetro nominal corresponde a
alguno de los valores definidos en la estándar,
significa que en el examen recién realizado se
ha encontrado la línea correspondiente al
diámetro nominal recibido. Esto es, se conoce el
valor de x
Conocida la fila de la matriz en la que se
encuentra el diámetro exterior buscado (fila
x), y como se sabe que este diámetro está en
la columna 3, el elemento de la matriz con el
valor buscado es el elemento (x,3)
62Si el valor del diámetro nominal corresponde a
alguno de los valores definidos en la estándar,
significa que en el examen recién realizado se ha
encontrado la línea correspondiente al diámetro
nominal recibido. Esto es, se conoce el valor de
x
Conocida la fila de la matriz en la que se
encuentra el diámetro exterior buscado (fila
x), y como se sabe que este diámetro está en
la columna 3, el elemento de la matriz con el
valor buscado es el elemento (x,3)
Así, el valor de la función buscada es
63Si el valor del diámetro nominal corresponde a
alguno de los valores definidos en la estándar,
significa que en el examen recién realizado se
ha encontrado la línea correspondiente al
diámetro nominal recibido. Esto es, se conoce el
valor de x
Conocida la fila de la matriz en la que se
encuentra el diámetro exterior buscado (fila
x), y como se sabe que este diámetro está en
la columna 3, el elemento de la matriz con el
valor buscado es el elemento (x,3)
Así, el valor de la función buscada es
Pipe_Imp_CS_Dext_dn C(x, 3)
64Si el valor del diámetro nominal corresponde a
alguno de los valores definidos en la estándar,
significa que en el examen recién realizado se ha
encontrado la línea correspondiente al diámetro
nominal recibido. Esto es, se conoce el valor de
x
Conocida la fila de la matriz en la que se
encuentra el diámetro exterior buscado (fila
x), y como se sabe que este diámetro está en
la columna 3, el elemento de la matriz con el
valor buscado es el elemento (x,3)
Así, el valor de la función buscada es
Pipe_Imp_CS_Dext_dn C(x, 3)
Con esto, la función queda terminada.
65Si el valor del diámetro nominal corresponde a
alguno de los valores definidos en la estándar,
significa en el examen recién realizado se ha
encontrado la línea correspondiente al diámetro
nominal recibido. Esto es, se conoce el valor de
x
Conocida la fila de la matriz en la que se
encuentra el diámetro exterior buscado (fila
x), y como se sabe que este diámetro está en
la columna 3, el elemento de la matriz con el
valor buscado es el elemento (x,3)
Así, el valor de la función buscada es
Pipe_Imp_CS_Dext_dn C(x, 3)
Con esto, la función queda terminada
El código completo es
66 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
67Fin de la Parte 3
Nota. En el archivo de la página web
piping-tools.net, Pipe_dimensions_and_friction_f
actor.xlsm se encuentran las tres funciones
(diámetro exterior, diámetro interior y espesor)
con su código completo.