# -*- coding: mbcs -*- # Do not delete the following import lines from abaqus import * from abaqusConstants import * from caeModules import * from math import * import __main__ import math import numpy as np import os import section import regionToolset import displayGroupMdbToolset as dgm import part import material import assembly import step import interaction import load import mesh import optimization import job import sketch import visualization import xyPlot import displayGroupOdbToolset as dgo import connectorBehavior for i in range(3) # Node Sets # Wellenoberfläche session.viewports['Viewport: 1'].partDisplay.setValues(mesh=ON) wnv = mdb.models[Modell_Name[i]].rootAssembly n_wnv = wnv.instances[Wellen_Name[i]].nodes nodes_axial = n_wnv.getByBoundingBox(-0.1,2*da-20,da/2-0.01,0.1,2*da+list_lf[i]+20,da/2+0.01) nodes_axial_start = n_wnv.getByBoundingBox(-0.1,2*da-20-0.01,da/2-0.01,0.1,2*da-20+0.01,da/2+0.01) wnv.Set(nodes=nodes_axial, name='Wellenoberflaeche_axial') wnv.Set(nodes=nodes_axial_start, name='Wellenoberflaeche_axial_Startpunkt') session.viewports['Viewport: 1'].partDisplay.setValues(mesh=OFF) # Node Sets # Wellenoberfläche-1 session.viewports['Viewport: 1'].partDisplay.setValues(mesh=ON) welle = mdb.models[Modell_Name[i]].parts[Wellen_Name[i]] n_w = welle.nodes nodes = n_w.getByBoundingBox(-0.1,2*da-20,da/2-1.01,0.1,2*da+list_lf[i]+20,da/2-0.99) welle.Set(nodes=nodes, name='Wellenoberflaeche-1_axial') session.viewports['Viewport: 1'].partDisplay.setValues(mesh=OFF) # Node Sets # Wellenoberfläche_radial_unten session.viewports['Viewport: 1'].partDisplay.setValues(mesh=ON) welle = mdb.models[Modell_Name[i]].parts[Wellen_Name[i]] n_w = welle.nodes nodes = n_w.getByBoundingBox(-0.01,2*da-0.00001,-da/2.01,0.01,2*da+0.00001,da/2) welle.Set(nodes=nodes, name='Wellenoberflaeche_radial_unten') session.viewports['Viewport: 1'].partDisplay.setValues(mesh=OFF) # Node Sets # Wellenoberfläche_radial_oben session.viewports['Viewport: 1'].partDisplay.setValues(mesh=ON) welle = mdb.models[Modell_Name[i]].parts[Wellen_Name[i]] n_w = welle.nodes nodes = n_w.getByBoundingBox(-0.01,2*da+list_lf[i]-0.00001,-da/2.01,0.01,2*da+list_lf[i]+0.00001,da/2) welle.Set(nodes=nodes, name='Wellenoberflaeche_radial_oben') session.viewports['Viewport: 1'].partDisplay.setValues(mesh=OFF) # Job erzeugen # wnv = mdb.models[Modell_Name[i]].rootAssembly wnv.regenerate() wnv = mdb.models[Modell_Name[i]].rootAssembly session.viewports['Viewport: 1'].setValues(displayedObject=wnv) session.viewports['Viewport: 1'].assemblyDisplay.setValues(mesh=OFF) session.viewports['Viewport: 1'].assemblyDisplay.meshOptions.setValues( meshTechnique=OFF) mdb.Job(name=Modell_Name[i], model=Modell_Name[i], description='', type=ANALYSIS, atTime=None, waitMinutes=0, waitHours=0, queue=None, memory=90, memoryUnits=PERCENTAGE, getMemoryFromAnalysis=True, explicitPrecision=SINGLE, nodalOutputPrecision=SINGLE, echoPrint=OFF, modelPrint=OFF, contactPrint=OFF, historyPrint=OFF, userSubroutine='', scratch='', resultsFormat=ODB, multiprocessingMode=DEFAULT, numCpus=1, numGPUs=0) #Arbeitsverzeichnis wechseln os.chdir('C:/temp/V-A_B1') # Wechsel os.getcwd() # Anzeige welches Arbeitsverzeichnis mdb.jobs[Modell_Name[i]].writeInput(consistencyChecking=OFF) mdb.jobs[Modell_Name[i]].submit(consistencyChecking=OFF) mdb.saveAs(pathName='C:/temp/V-A_B1/V-A_B1') # Speichert CAE-Datei, Letzte Pfad bezeichnung= Name der CAE-Datei #Paths erzeugen session.viewports['Viewport: 1'].partDisplay.setValues(mesh=ON) set_nodes = 'Wellenoberflaeche_axial' set_startnode = 'Wellenoberflaeche_axial_Startpunkt' pathname = 'Wellenoberflaeche' instancename = Wellen_Name[i] dict_nodes = {} list_nodes = [] set_nodes = set_nodes.upper() set_startnode = set_startnode.upper() instancename = instancename.upper() vps = session.viewports.values()[0] odbName = vps.displayedObject.name odb = session.odbs[odbName] coord_point = odb.rootAssembly.instances[instancename].nodeSets[set_startnode].nodes[0].coordinates for node in odb.rootAssembly.instances[instancename].nodeSets[set_nodes].nodes[0]: dist = sqrt((pow(node.coordinates[0]-coord_point[0],2))+ \ (pow(node.coordinates[1]-coord_point[1],2))+ \ (pow(node.coordinates[2]-coord_point[2],2))) dict_nodes[dist] = node.label x = dict_nodes.keys() x.sort() for y in x: list_nodes.append(dict_nodes[y]) list_nodes = tuple(list_nodes) session.Path(name=pathname, type=NODE_LIST, expression=((instancename, (list_nodes)), ))