In questo articolo viene mostrata l’integrazione delle API di NextFEM Designer in Excel, in particolare per il calcolo delle sezioni trasversali di travi e pilastri in c.a.

 

Excel® è il programma più usato dagli ingegneri. In particolare gli strutturisti svolgono molte verifiche in questo ambiente, riportando manualmente i dati dai loro programmi di calcolo.

NextFEM Designer offre la possibilità di caricare tutte le sue funzionalità in programmi di terze parti, come Excel, per la lettura dei risultati delle analisi. Vediamo come fare in pochi semplici passi.

Caricamento delle API NextFEM

Prima di iniziare dobbiamo modificare alcune opzioni sulla sicurezza delle macro di Excel: dal comando File / Opzioni / Centro protezione / Impostazioni macro attiviamo “Attiva tutte le macro” and “Considera attendibile l’accesso al modello a oggetti dei progetti VBA”.

Vogliamo quindi che Excel possa caricare le componenti .NET 4.0 di NextFEM API. Per far questo, creiamo un file di testo chiamato excel.exe.config  con questo contenuto:

<configuration>

  <startup useLegacyV2RuntimeActivationPolicy="true">

    <supportedRuntime version="v4.0.30319"/>

  </startup>

</configuration>

 

e lo copiamo nella cartella di excel.exe (tipicamente è C:\Program Files\Microsoft Office\Office15 o simili, a seconda della versione installata).

Ci siamo. Ora scarica questo file Excel, che contiene tutte le macro necessarie per la verifica di una sezione in c.a.. Se hai Excel a 32bit, potrebbe essere richiesto un passo ulteriore.

Se non ti interessa approfondire come caricare le API in modo automatico, puoi saltare il prossimo paragrafo.

 

Caricamento di NextFEM API

Apriamo il file e premiamo ALT+F11. Possiamo vedere come ci sia del codice in “Questa_cartella_di_lavoro”.

Private Sub Workbook_Open()

    If NF Is Nothing Then

        Call loadLib

    End If

End Sub

LoadLib è una funzione che carica automaticamente le API di NextFEM. Può essere eseguita in ogni momento per caricare o ricaricare le librerie.

La cartella di installazione di NextFEM Designer viene trovata automaticamente – questo è importante perché rende lo script utilizzabile in tutti i PC in cui NextFEM Designer è installato, senza altre modifiche.

Tutti gli utenti possono caricare le API di NextFEM in Excel, poiché il loro utilizzo è libero, senza la necessità di codici di licenza.

Per Excel a 32bit

Per verificare quale versione di Excel hai, vai su File / Account e fai click sul pulsante Informazioni.

https://www.nextfem.it/blog/APIs_ITA_file/image002.jpg

Se hai Excel a 32 bit, puoi registrare nel sistema le API di NextFEM in questo modo:

-          Avvia un prompt dei comandi come Amministratore

-          Posizionati nella cartella di installazione di NextFEM Designer

-          Esegui il comando:

C:\Windows\Microsoft.NET\Framework\v4.0.30319\Regasm NextFEMapi.dll /codebase

 

Uso delle API in Excel

Tutte le funzionalità delle API di NextFEM sono richiamabili da codice VBA, oppure anche dal foglio di calcolo se sono incapsulate in una funzione UDF, come la seguente:

Function NFgetBeamForce(num As Integer, loadcase As String, tp As Integer, station As Integer) As Double

' STATION: a beam has 5 stations (1, 2, 3, 4 or 5)

' TP: 1=N, 2=Vy, 3=Vz, 4=Mt, 5=My, 6=Mz

    NFgetBeamForce = NF.getBeamForce(num, loadcase, "1", tp, station)

End Function

 

Questa funzione può quindi essere chiamata da qualsiasi cella, in qualsiasi foglio.

 

Calcolo resistente di sezioni

Le API che useremo sono pertinenti al programma NextFEM Section Analyzer, per l’analisi di sezioni in c.a. normale e precompresso, acciaio, alluminio, legno, sezioni composte, rinforzi in FRP. Acquistando il modulo Section Analyzer, potrai utilizzarlo anche in altri programmi (Excel, AutoCAD, ecc.).

In particolare vediamo nel seguito una semplice procedura che permette di creare e verificare una sezione in c.a., partendo da dati geometrici e sollecitazioni.

Prepariamo in un foglio Excel i dati di input (dimensioni, num. barre e diametro, copriferro, forze).

La funzione che richiamiamo per il calcolo della sezione allo SLU è la seguente:

Sub runSectionCalc()

    Call NF.newmodel

    NF.modelName = "RCcolumnSection"

    Dim sID As Integer

    sID = NF.addRectSection(CDbl(Range("B3")), CDbl(Range("B4")))

    Dim mID As Integer

    mID = NF.addMatFromLib("C25/30")

    Dim mdID As Integer

    mdID = NF.addDesignMatFromLib("B450C")

    Call NF.setSectionMaterial(sID, mID)

    ' adding rebar

    Dim rebArea As Double

    rebArea = WorksheetFunction.Pi() * Range("B8") ^ 2 / 4

    Call NF.addRebarPattern2(2, sID, CInt(Range("B6")), CDbl(Range("B7")), mdID, rebArea)

    ' calculate strength

    Dim res() As String

    res = NF.getSectionResMoments2(sID, 0, CDbl(Range("B10")), CDbl(Range("B12")), CDbl(Range("B11")), GetCurDir() & "\sect")

    ' save NXS file for Section Analyzer

    NF.saveModel (GetCurDir & "\" & NF.modelName & ".nxs")

   

    For i = 0 To leng(res) - 1

        Dim st() As String: st = Split(res(i), "=")

        Range("A" & 15 + i) = st(0)

        Range("B" & 15 + i) = st(1)

    Next i

End Sub

 

Nell’ordine:

-          Creiamo una sezione rettangolare di dimensioni fissate con addRectSection;

-          Aggiungiamo il materiale base (addMatFromLib) e quello delle barre (addDesignMatFromLib);

-          Aggiungiamo le barre richieste con addRebarPattern2;

-          Calcoliamo la sezione con getSectionResMoments2, richiedendo in ouput le immagini della sezione e del suo asse neutro, oltreché del dominio ottenuto;

-          Copiamo i risultati letti dal vettore di stringhe res nelle celle specificate.

La potenza di questo approccio è facilmente immaginabile. Possiamo infatti:

- caricare risultati da modelli analizzati in NextFEM Designer o importati da altri solutori come SAP2000, Midas GEN e Civil, Sismicad, CMP, Nolian, ecc.

- integrare le verifiche più complesse (es. SLU e SLE per qualsiasi forma di sezione, rinforzata o no) nei nostri fogli Excel preferiti, senza dover modificare i calcoli già impostati

- semplificare i nostri calcoli, delegando alle API di NextFEM la gestione degli algoritmi più complessi.