Oasys developers have recently released the COM interface into Frew, Alp and Greta and are planning to roll it out to our other Geotechnical programs.
Following our recent COM webinar, Application Specialist, Zeena Farook, started some scripting to see what she could achieve; “As a Geotechnical Engineer, I am more familiar with pen and paper calculations than coding but I was empowered to give it a try by the presentation.”
Why donâ€™t you take a look at Zeena’s script below? It will set up an Excel Macro to output displacements for all stages for each node. This could be expanded to vary input phi values or wall stiffnessâ€™s to run sensitivity analysis. Alternatively, similar code can be written to outputs results for bending moments or shear forces in the wall. The code could also be expanded to plot outputs for all stages in one graph.
Zeena elaborates on her first foray into programming this way; “Having just started on my programming journey, I can see how using this interface can save a lot of analysis time. I look forward to hearing about what you would like to do with the COM interface and if you have any additional suggestions for COM instructions in Frew. You can download the user guide, so get coding!”
Sub MacroDisplacement() ' ' Macro1 Macro ' ' Dim FrewObj 'declare FrewCom object Dim iRet As Integer 'declare integers for return variables Dim iNumNodes As Integer Dim iNumStages As Integer Dim sFilePath As String 'declare a string for the file path Dim i, j As Integer Dim i1 As Double Dim i2 As Integer Dim delevation As Double Dim ielevation As Integer Set FrewObj = CreateObject("frew.FrewCom") 'Set FrewObj as FrewCom interface and link sFilePath = "C:\Program Files (x86)\Oasys\Frew 19.3\Samples\FREWman.fwd" 'Set the relevant file path FrewObj.Open sFilePath, iRet 'Call the function to open the file FrewObj.GetNumNodes iNumNodes 'Call the function to get number of nodes FrewObj.GetNumStages iNumStages 'Call the function to get number of stages FrewObj.Analyse iNumStages, iRet Cells(2, 2) = iNumNodes Cells(3, 2) = iNumStages For i = 0 To iNumNodes - 1 Cells(5 + i, 2) = i + 1 FrewObj.GetNodeLevel i, delevation, ielevation Cells(5 + i, 3) = delevation For j = 1 To iNumStages - 1 FrewObj.GetNodeDisp i, j, i1, i2 Cells(5 + i, 3 + j) = i1 Next j Next i End Sub