How do I calculate sum of average axial force or Average Axial force/Length for Reinforcement elements (REINF 264/265) using SMISC1 through DPF?
You can do this using the below snipper but prior to that you will need to create an APDL component for element REINF264 or 265 through APDL commands as well as shown below.
!for creating APDL component esel,s,ename,,264 !esel,a,ename,,265 !if ET 265 is needed cm,AA,ELEM
DPF script for printing summation of forces on the element
import Ans.DataProcessing as dpf import csv import os import wbjn user_dir = wbjn.ExecuteCommand(ExtAPI, "returnValue(GetUserFilesDirectory())") an1=ExtAPI.DataModel.AnalysisByName(ExtAPI.DataModel.AnalysisNames[2]) rstFile=an1.WorkingDir+'file.rst' model = dpf.Model(rstFile) dataSource = dpf.DataSources(rstFile) #Retrieve all time steps timeProv= dpf.operators.metadata.time_freq_provider() timeProv.inputs.data_sources.Connect(dataSource) allTimeFreq=timeProv.outputs.time_freq_support.GetData() timescoping = allTimeFreq.TimeFreqs.Data op=dpf.operators.scoping.on_named_selection(named_selection_name='AA',data_sources=dataSource) my_scoping1=op.outputs.getmesh_scoping() for freq in timescoping: op = dpf.operators.result.smisc() op.inputs.time_scoping.Connect(freq) op.inputs.mesh_scoping.Connect(my_scoping1) op.inputs.data_sources.Connect(dataSource) op.inputs.item_index.Connect(1) my_fields = op.outputs.fields_container.GetData() my_fields_container1 = op.outputs.fields_container.GetData()[0] values1 = list(my_fields_container1.Data) elem = my_fields_container1.ScopingIds values2 = list(my_fields_container2.Data) print(freq, sum(values1)) # to export them to a csv file uncomment the below block # filename = "elem_values_freq_{0}.csv".format(freq) # out_file = os.path.join(user_dir, filename) # with open(out_file, "wb") as f: # writer = csv.writer(f) # writer.writerow(["Element", "Value"]) # for e, v in zip(elem, values1): # writer.writerow([e, v])