""" Script um Reaktionkraefte der aktuell im Viewer dargestellten Knoten im letzten Inkrement aufsummiert auszugeben Anwendung: - Setname hier vorgeben - Abaqus CAE/Viewer und ODB oeffnen - gewuenschten Step einstellen - Script starten (File > Run script...) """ from abaqus import * from abaqusConstants import * from caeModules import * # Setname vorgeben setname='SET-1' # aktuellen Viewport und ODB ermitteln vps = session.viewports.values()[0] odbName = vps.displayedObject.name odb = session.odbs[odbName] # aktuellen Step und letzten Frame ermitteln current_step_number = vps.odbDisplay.fieldFrame[0] current_step_name = odb.steps.keys()[current_step_number] current_frame_number = vps.odbDisplay.fieldFrame[1] current_frame = odb.steps[current_step_name].frames[current_frame_number] current_steptime = odb.steps[current_step_name].frames[current_frame_number].frameValue last_frame = odb.steps[current_step_name].frames[-1] last_steptime = odb.steps[current_step_name].frames[last_frame.frameId].frameValue # Ausgabewerte initiieren numnodes = 0 sumrf1 = 0.0 sumrf2 = 0.0 sumrf3 = 0.0 sumrfmag = 0.0 rforce = last_frame.fieldOutputs['RF'] # Set einblenden leaf = dgo.LeafFromNodeSets(nodeSets=(setname, )) session.viewports['Viewport: 1'].odbDisplay.displayGroup.replace(leaf=leaf) # alle dargestellten Knoten im Viewport ermitteln nodelist=vps.getActiveNodeLabels() # Schleife erst ueber alle dargestellten Bauteile # dann Schleife ueber alle dargestellten Knoten dieser Bauteile # zum auslesen und aufsummieren von RF an diesen Knoten (letzte Schleife) for i in range(len(nodelist.keys())): numnodes = numnodes + len(nodelist.values()[i]) for k in nodelist.values()[i]: position = odb.rootAssembly.instances[nodelist.keys()[i]].nodes[k-1] position_rforce = rforce.getSubset(region=position) for v in position_rforce.values: sumrf1 = sumrf1 + v.data[0] sumrf2 = sumrf2 + v.data[1] sumrf3 = sumrf3 + v.data[2] sumrfmag = sumrfmag + v.magnitude # Ausgabe des Ergebnisses in Message Area von CAE/Viewer print '\nReaktionskraefte von '+str(numnodes)+' Knoten (Set '+setname+') im Step namens '+current_step_name+' im Increment '+str(last_frame.incrementNumber) print 'Summe RF-1: ', sumrf1 print 'Summe RF-2: ', sumrf2 print 'Summe RF-3: ', sumrf3 print 'Summe RF Mag: ', sumrfmag