How to export the information of all the convection loads in my Mechanical to a csv?

Rohith Patchigolla
Rohith Patchigolla Member, Moderator, Employee Posts: 175
100 Comments Photogenic Ansys Employee 5 Likes
✭✭✭✭

I want to export the below information as a csv file directly from Mechanical via scripting.
1. Convection load Name
2. Film Coefficient
3. Film Coefficient unit
4. Ambient Temperature
5. Ambient Temperature unit

Comments

  • Rohith Patchigolla
    Rohith Patchigolla Member, Moderator, Employee Posts: 175
    100 Comments Photogenic Ansys Employee 5 Likes
    ✭✭✭✭

    You can paste the below script in Mechanical scripting console to export all the convection loads corresponding to a thermal analysis (assumption --> this analysis is first in the tree. Please edit the index in DataModel.AnalysisList[i] to access other analyses)

    import os
    
    #Provide the name of the CSV file
    fileName = 'Convection_Data.csv'
    #Select Analysis by Id
    analysis = DataModel.AnalysisList[0]
    
    #Function to write a CSV file from the gathered data
    def writeCSV(t1,fileName):
        ExtAPI.Log.WriteMessage('my File name ' + fileName)
        with open(fileName , 'w') as f:
            for line in t1:
                for col in line:
                    #For Non-German
                    f.write(str(col) + ', ')
                    #For German OS 
                    #f.write(str(col).replace('.',',') + '; ')
                f.write('\n')
    
    #Find the user files directory for saving the data
    UserDir = r"D:\Cases\26832"
    saveName = os.path.join(UserDir,fileName)
    first_solution = analysis.Solution
    solver_data = first_solution.SolverData
    allConvections = DataModel.GetObjectsByType(DataModelObjectCategory.Convection)
    allData = []
    for convectionObj in allConvections:
        convName = convectionObj.Name
        lastIndexConv = convectionObj.FilmCoefficient.Output.DiscreteValueCount-1
        lastIndexAT = convectionObj.AmbientTemperature.Output.DiscreteValueCount-1
        convFCVal = convectionObj.FilmCoefficient.Output.GetDiscreteValue(lastIndexConv).Value
        convFCUnit = convectionObj.FilmCoefficient.Output.GetDiscreteValue(lastIndexConv).Unit
        convATVal = convectionObj.AmbientTemperature.Output.GetDiscreteValue(lastIndexAT).Value
        convATUnit = convectionObj.AmbientTemperature.Output.GetDiscreteValue(lastIndexAT).Unit
        allData.append([convName, convFCVal, convFCUnit, convATVal, convATUnit])
    
    writeCSV(allData,saveName)