modelName=modelName partName=partName step1='Step-1' step2='Step-2' step3='Step-3' step4='Step-4' step5='Step-5' step6='Step-6' #----------------------------------------------------- part = mdb.models[modelName].parts[partName] geo_info = part.queryGeometry() if geo_info['category'] == 'OrphanMesh': print('No Geometry! Please Creat mesh Based surface XP, XN, YP, YN, ZP, ZN!') print('Define Xmid, Ymid, Zmid, Lx, Ly, Lz!') elif geo_info['category'] == 'Geometry': boundbox = geo_info['boundingBox'] Xmid = (boundbox[1][0] + boundbox[0][0])/2.0 Ymid = (boundbox[1][1] + boundbox[0][1])/2.0 Zmid = (boundbox[1][2] + boundbox[0][2])/2.0 Lx = boundbox[1][0] - boundbox[0][0] Ly = boundbox[1][1] - boundbox[0][1] Lz = boundbox[1][2] - boundbox[0][2] #----------------------------------------------------------------------- a = mdb.models[modelName].rootAssembly mdb.models[modelName].StaticStep(name=step1, previous='Initial') mdb.models[modelName].StaticStep(name=step2, previous=step1) session.viewports['Viewport: 1'].assemblyDisplay.setValues(step=step2) mdb.models[modelName].StaticStep(name=step3, previous=step2) session.viewports['Viewport: 1'].assemblyDisplay.setValues(step=step3) mdb.models[modelName].StaticStep(name=step4, previous=step3) session.viewports['Viewport: 1'].assemblyDisplay.setValues(step=step4) mdb.models[modelName].StaticStep(name=step5, previous=step4) session.viewports['Viewport: 1'].assemblyDisplay.setValues(step=step5) mdb.models[modelName].StaticStep(name=step6, previous=step5) a = mdb.models[modelName].rootAssembly region = a.instances['RefPoint1-1'].sets['SetRefPoint1'] mdb.models[modelName].DisplacementBC(name='BC-ref1', createStepName=step1, region=region, u1=0.0, u2=0.0, u3=0.0, ur1=UNSET, ur2=UNSET, ur3=UNSET, amplitude=UNSET, fixed=OFF, distributionType=UNIFORM, fieldName='', localCsys=None) a = mdb.models[modelName].rootAssembly region = a.instances['RefPoint2-1'].sets['SetRefPoint2'] mdb.models[modelName].DisplacementBC(name='BC-ref2', createStepName=step1, region=region, u1=0.0, u2=0.0, u3=0.0, ur1=UNSET, ur2=UNSET, ur3=UNSET, amplitude=UNSET, fixed=OFF, distributionType=UNIFORM, fieldName='', localCsys=None) a = mdb.models[modelName].rootAssembly region = a.instances['RefPoint3-1'].sets['SetRefPoint3'] mdb.models[modelName].DisplacementBC(name='BC-ref3', createStepName=step1, region=region, u1=0.0, u2=0.0, u3=0.0, ur1=UNSET, ur2=UNSET, ur3=UNSET, amplitude=UNSET, fixed=OFF, distributionType=UNIFORM, fieldName='', localCsys=None) mdb.models[modelName].boundaryConditions['BC-ref1'].setValues(u1=1e-6*Lx) mdb.models[modelName].boundaryConditions['BC-ref1'].setValuesInStep( stepName=step2, u1=0.0) mdb.models[modelName].boundaryConditions['BC-ref2'].setValuesInStep( stepName=step2, u2=1e-6*Ly) mdb.models[modelName].boundaryConditions['BC-ref2'].setValuesInStep( stepName=step3, u2=0.0) mdb.models[modelName].boundaryConditions['BC-ref3'].setValuesInStep( stepName=step3, u3=1e-6*Lz) mdb.models[modelName].boundaryConditions['BC-ref2'].setValuesInStep( stepName=step4, u3=0.5e-6*Ly) mdb.models[modelName].boundaryConditions['BC-ref3'].setValuesInStep( stepName=step4, u2=0.5e-6*Lz, u3=0.0) mdb.models[modelName].boundaryConditions['BC-ref1'].setValuesInStep( stepName=step5, u3=0.5e-6*Lx) mdb.models[modelName].boundaryConditions['BC-ref2'].setValuesInStep( stepName=step5, u3=0.0) mdb.models[modelName].boundaryConditions['BC-ref3'].setValuesInStep( stepName=step5, u1=0.5e-6*Lz, u2=0.0) mdb.models[modelName].boundaryConditions['BC-ref1'].setValuesInStep( stepName=step6, u2=0.5e-6*Lx, u3=0.0) mdb.models[modelName].boundaryConditions['BC-ref2'].setValuesInStep( stepName=step6, u1=0.5e-6*Ly) mdb.models[modelName].boundaryConditions['BC-ref3'].setValuesInStep( stepName=step6, u1=0.0)