Importing External Data Into Anysy with Python

jholder2
jholder2 Member Posts: 2
First Comment
**

I have followed some code I found in this forum to import external data into Ansys with Python and can't seem to get the subsequent files to update the Data Type, Data Unit, and Data Identifier fields. Is there a specific way to update this? The working code I have is shown below.

External Data Inputs

DataPath = r"C:\Users\xxxxxx\Desktop\File Import\Files to import"
DataExtension = "csv"
DelimiterIs = "Comma"
DelimiterStringIs = r","
StartImportAtLine = 3
LengthUnit = "in"
DI_Character_Length = -24 #Number of Characters from the left of the name to start at

import glob
import os

template1 = GetTemplate(TemplateName="External Data")
system1 = template1.CreateSystem()
setup1 = system1.GetContainer(ComponentName="Setup")

allfiles = glob.glob1(DataPath,"*." + DataExtension)
allfiles.sort(key=lambda f: int(''.join(filter(str.isdigit, f))))
numfilestoload = len(allfiles)

Loop Through Data

for i in range(numfilestoload):
filenum = i+1
completefilepath = os.path.join(DataPath,allfiles[i])
externalLoadFileData = setup1.AddDataFile(FilePath=completefilepath)

Bottom Left Box - Setting Delimiter, Import Line, and Length Unit

 externalLoadFileDataProperty1 = externalLoadFileData.GetDataProperty()
 externalLoadFileData.SetStartImportAtLine(FileDataProperty=externalLoadFileDataProperty1, LineNumber=StartImportAtLine) 
 externalLoadFileData.SetDelimiterType(FileDataProperty=externalLoadFileDataProperty1, Delimiter=DelimiterIs, DelimiterString=DelimiterStringIs)
 externalLoadFileDataProperty1.SetLengthUnit(Unit=LengthUnit)

Top Right Box - Creating Data Type, Data Unit, and Data Identifier

if i == 0:    

    externalLoadFileData.SetAsMaster(Master=True)

    externalLoadColumnData1 = externalLoadFileDataProperty1.GetColumnData(Name="ExternalLoadColumnData 1")
    externalLoadFileDataProperty1.SetColumnDataType(ColumnData=externalLoadColumnData1, DataType="X Coordinate")
    externalLoadColumnData1.Identifier = "X" + " "  + str(allfiles[i])[DI_Character_Length:-4]

    externalLoadColumnData2 = externalLoadFileDataProperty1.GetColumnData(Name="ExternalLoadColumnData 2")
    externalLoadFileDataProperty1.SetColumnDataType(ColumnData=externalLoadColumnData2, DataType="Y Coordinate")
    externalLoadColumnData2.Identifier = "Y" + " "  + str(allfiles[i])[DI_Character_Length:-4]   

    externalLoadColumnData3 = externalLoadFileDataProperty1.GetColumnData(Name="ExternalLoadColumnData 3")
    externalLoadFileDataProperty1.SetColumnDataType(ColumnData=externalLoadColumnData3, DataType="Z Coordinate")
    externalLoadColumnData3.Identifier = "Z" + " "  + str(allfiles[i])[DI_Character_Length:-4]        

    externalLoadColumnData4 = externalLoadFileDataProperty1.GetColumnData(Name="ExternalLoadColumnData 4")
    externalLoadFileDataProperty1.SetColumnDataType(ColumnData=externalLoadColumnData4, DataType="Displacement")
    externalLoadColumnData4.Unit = LengthUnit
    externalLoadColumnData4.Identifier = "DX" + " "  + str(allfiles[i])[DI_Character_Length:-4]

    externalLoadColumnData5 = externalLoadFileDataProperty1.GetColumnData(Name="ExternalLoadColumnData 5")
    externalLoadFileDataProperty1.SetColumnDataType(ColumnData=externalLoadColumnData5, DataType="Displacement")
    externalLoadColumnData5.Unit = LengthUnit
    externalLoadColumnData5.Identifier = "DY" + " " + str(allfiles[i])[DI_Character_Length:-4]

    externalLoadColumnData6 = externalLoadFileDataProperty1.GetColumnData(Name="ExternalLoadColumnData 6")
    externalLoadFileDataProperty1.SetColumnDataType(ColumnData=externalLoadColumnData6, DataType="Displacement")
    externalLoadColumnData6.Unit = LengthUnit
    externalLoadColumnData6.Identifier = "DZ" + " "  + str(allfiles[i])[DI_Character_Length:-4]

Best Answer

  • jholder2
    jholder2 Member Posts: 2
    First Comment
    **
    Answer ✓

    I figured it out. You just need to increment the "ExternalLoadColumnData #".