CAPITOLO 4 EXCEL MACRO
4.12 Definizione casi di carico-4 del Modello Geometrico su Straus7(API)
4.12.1 Macro utilizzata nell’applicazione 1
Definiamo ora, il caso di carico 4, che è stato usato nell’applicazione 1. A questo punto del processo di calcolo, il modello presenta, i carichi precedentemente definiti nel caso di carico 3.
Il caso di carico 4 è indicato nelle celle da BO3 a BO5 per il nodo N3 e nelle celle da BO7 a BO9 per il nodo N1.
CASO 4 - St7SetNodeForce3 N3 FX = -333.3333 N FY = 0 N FZ= 0 N N1 FX = 333.333 N FY = 0 N FZ= 0 N M = -1 N*m M = 1000 N*mm
Tabella 4.49 – Definizione del caso di carico 4 (Appl. 1)
Come si evince dalla Tabella 4.49, la coppia unitaria M = -1 Nm è stata convertita in M= -1000 Nmm e è stata scomposta in una coppia di forze da applicare all’estremo libero della delaminazione di altezza H2.
Le due forze sono state ricavate dividendo il momento unitario per l’altezza H2.
In questo caso, la coppia unitaria è nel verso opposto rispetto alla coppia del caso di carico 3 per l’applicazione 1.
La subroutine si chiama CASO_4 e si collega alle altre subroutine attraverso il comando di chiamata “Call”. Il flusso logico con cui si avviano le subroutine è:
CASO_4 (Inizio) - Call St7Init - Apertura di un modello già creato
Call SetNodeForce3_N6- Definizione carico nullo N6- Call SetNodeForce3_N4- Definizione carico nullo N4 Call SetNodeForce3_N3- Definizione carico sul nodo N3 Call SetNodeForce3_N1- Definizione carico sul nodo N1
Capitolo 4 132 Call RunSolver- Lancio del risolutore
Call OpenResult- Apertura risultati analisi Call GetNodeResult_UP- Lettura risultati Nodo UPCRACK Call GetNodeResult_DOWN- Lettura risultati Nodo DOWNCRACK
CASO_3 (Fine) – Salva e Chiudi il File
SetNodeForce3_N6
Sub SetNodeForce3_N6()
Dim errore As Integer Dim Force(2) As Double For I = 0 To 2
Force(I) = BS(I + 3)
Next I
errore = St7SetNodeForce3(1, N°Nodo N6, 1, Force(0)) AE18 = errore
SetNodeForce3_N4
Sub SetNodeForce3_N4()
Dim errore As Integer Dim Force(2) As Double For I = 0 To 2
Force(I) = BS(I + 7)
Next I
errore = St7SetNodeForce3(1, N°Nodo N4, 1, Force(0)) AE19 = errore
SetNodeForce3_N3
Sub SetNodeForce3_N3()
Dim errore As Integer Dim Force(2) As Double For I = 0 To 2
Force(I) = BO(I + 3)
Next I
errore = St7SetNodeForce3(1, N°Nodo N6, 1, Force(0)) AE22 = errore
SetNodeForce3_N4
Sub SetNodeForce3_N4()
Dim errore As Integer Dim Force(2) As Double For I = 0 To 2
Force(I) = BO(I + 7)
Next I
errore = St7SetNodeForce3(1, N°Nodo N4, 1, Force(0)) AE23 = errore
RunSolver
Sub RunSolver()
Dim errore As Integer
Solvers = BA2 SolversModes = BA3 Wait = BA4
errore = St7RunSolver(1, Solvers, SolversModes, Wait) AE14 = errore
Sub OpenResult()
Dim errore As Integer
Dim percorso As String, modello As String, nome_analisi As String
percorso = C31 modello = C33
nome_analisi = percorso & modello & ".lsa"
errore = St7OpenResultFile(1, nome_analisi, "", 0, 1, 0) AE15 = errore
GetNodeResult_UP
Sub GetNodeResult_UP()
Dim errore As Integer, ResultType As Long Dim NodeRes(6) As Double
ResultType = BD2
errore = St7GetNodeResult(1, ResultType, N°Nodo UPCRACK, 1, NodeRes(0)) AE16 = errore M40 = NodeRes(0) M41= NodeRes(1) M42 = NodeRes(2) M43 = NodeRes(3) M44 = NodeRes(4) M45 = NodeRes(5) GetNodeResult_DOWN Sub GetNodeResult_DOWN()
Dim errore As Integer Dim NodeRes(6) As Double
ResultType = BD2
errore = St7GetNodeResult(1, ResultType, N°Nodo DOWNCRACK, 1, NodeRes(0)) AE17 = errore M47 = NodeRes(0) M48 = NodeRes(1) M49 = NodeRes(2) M50 = NodeRes(3) M51 = NodeRes(4) M52 = NodeRes(5)
4.12.2 Macro utilizzata nell’applicazione 3
In questo paragrafo verrà definito il caso di carico 4, che è stato usato nell’applicazione 3.
Il caso di carico nullo, verrà usato per i nodi N6 e N4.
Il caso di carico 4 è esplitato nelle celle da BO3 a BO5 per il nodo N3 e nelle celle da BO7 a BO9 per il nodo N1.
Capitolo 4 134 CASO 4 - St7SetNodeForce3 N3 FX = 105.2631579 N FY = 0 N FZ= 0 N N1 FX = -105.2631579 N FY = 0 N FZ= 0 N M2 = 1 N*m M2 = 1000 N*mm
Tabella 4.50 – Definizione del caso di carico 4 (Appl. 3)
Come si evince dalla Tabella 4.50, la coppia unitaria M = 1 Nm è stata convertita in M= 1000 Nmm e è stata scomposta in una coppia di forze da applicare all’estremo libero della delaminazione di altezza H2.
Le due forze sono state ricavate dividendo il momento unitario per l’altezza H2.
Rispetto al caso di carico 4 per l’applicazione 1, la coppia unitaria è nello stesso verso della coppia del caso di carico 3 per l’applicazione 3.
La subroutine si chiama CASO_4 e si collega alle altre subroutine attraverso il comando di chiamata “Call”. Il flusso logico con cui si avviano le subroutine è:
CASO_4 (Inizio) - Call St7Init - Apertura di un modello già creato
Call SetNodeForce3_N6- Definizione carico nullo N6- Call SetNodeForce3_N4- Definizione carico nullo N4 Call SetNodeForce3_N3- Definizione carico sul nodo N3 Call SetNodeForce3_N1- Definizione carico sul nodo N1
Call RunSolver- Lancio del risolutore Call OpenResult- Apertura risultati analisi Call GetNodeResult_UP- Lettura risultati Nodo UPCRACK Call GetNodeResult_DOWN- Lettura risultati Nodo DOWNCRACK
SetNodeForce3_N6
Sub SetNodeForce3_N6()
Dim errore As Integer Dim Force(2) As Double For I = 0 To 2
Force(I) = BS(I + 3)
Next I
errore = St7SetNodeForce3(1, N°Nodo N6, 1, Force(0)) AE18 = errore
SetNodeForce3_N4
Sub SetNodeForce3_N4()
Dim errore As Integer Dim Force(2) As Double For I = 0 To 2
Force(I) = BS(I + 7)
Next I
errore = St7SetNodeForce3(1, N°Nodo N4, 1, Force(0)) AE19 = errore
SetNodeForce3_N3
Sub SetNodeForce3_N3()
Dim errore As Integer Dim Force(2) As Double For I = 0 To 2
Force(I) = BO(I + 3)
Next I
errore = St7SetNodeForce3(1, N°Nodo N6, 1, Force(0)) AE22 = errore
SetNodeForce3_N4
Sub SetNodeForce3_N4()
Dim errore As Integer Dim Force(2) As Double For I = 0 To 2
Force(I) = BO(I + 7)
Next I
errore = St7SetNodeForce3(1, N°Nodo N4, 1, Force(0)) AE23 = errore
RunSolver
Sub RunSolver()
Dim errore As Integer
Solvers = BA2 SolversModes = BA3 Wait = BA4
errore = St7RunSolver(1, Solvers, SolversModes, Wait) AE14 = errore
OpenResult
Sub OpenResult()
Capitolo 4 136
Dim percorso As String, modello As String, nome_analisi As String
percorso = C31 modello = C33
nome_analisi = percorso & modello & ".lsa"
errore = St7OpenResultFile(1, nome_analisi, "", 0, 1, 0) AE15 = errore
GetNodeResult_UP
Sub GetNodeResult_UP()
Dim errore As Integer, ResultType As Long Dim NodeRes(6) As Double
ResultType = BD2
errore = St7GetNodeResult(1, ResultType, N°Nodo UPCRACK, 1, NodeRes(0)) AE16 = errore M40 = NodeRes(0) M41= NodeRes(1) M42 = NodeRes(2) M43 = NodeRes(3) M44 = NodeRes(4) M45 = NodeRes(5) GetNodeResult_DOWN Sub GetNodeResult_DOWN()
Dim errore As Integer Dim NodeRes(6) As Double
ResultType = BD2
errore = St7GetNodeResult(1, ResultType, N°Nodo DOWNCRACK, 1, NodeRes(0)) AE17 = errore M47 = NodeRes(0) M48 = NodeRes(1) M49 = NodeRes(2) M50 = NodeRes(3) M51 = NodeRes(4) M52 = NodeRes(5)