abaqus Python 简单梁的例子

from abaqus import * from abaqusConstants import * backwardCompatibility.setValues(includeDeprecated=True,reportDeprecated=False) # Create a model. myModel = mdb.Model(name='Beam') # Create a new viewport myViewport = session.Viewport(name='Cantilever Beam Example',origin=(20, 20), width=150, height=120) #------------------------------ import part # Create a sketch for the base feature. mySketch = myModel.ConstrainedSketch(name='beamProfile', sheetSize=250.) # Create the rectangle. mySketch.rectangle(point1=(-100,10), point2=(100,-10)) # Create a three-dimensional,deformable part. myBeam = myModel.Part(name='Beam', dimensionality=THREE_D,type=DEFORMABLE_BODY) # Create the part's base feature by extruding the sketch # through a distance of 25.0. myBeam.BaseSolidExtrude(sketch=mySketch, depth=25.0) #------------------------------ import material # Create a material. mySteel = myModel.Material(name='Steel') # Create the elastic properties: elasticProperties = (209.E3, 0.3) mySteel.Elastic(table=(elasticProperties, ) ) #--------------------------- import section # Create the solid section. mySection = myModel.HomogeneousSolidSection(name='beamSection', material='Steel', thickness=1.0) # Assign the section to the region. The region refers to the single cell in this model. region = (myBeam.cells,) myBeam.SectionAssignment(region=region,sectionName='beamSection') #----------------------------- import assembly # Create a part instance. myAssembly = myModel.rootAssembly myInstance = myAssembly.Instance(name='beamInstance', part=myBeam, dependent=OFF) #---------------------------- import step # Create a step. The time period of the static step is 1.0, and the initial incrementation is 0.1; the step is created after the initial step. myModel.StaticStep(name='beamLoad', previous='Initial',timePeriod=1.0, initialInc=0.1,description='Load the top of the beam.') #----------------------------- import load # Find the end face using coordinates. endFaceCenter = (-100,0,12.5) endFace = myInstance.faces.findAt((endFaceCenter,) ) # Create a boundary condition that encastres one end of the beam. endRegion = (endFace,) myModel.EncastreBC(name='Fixed',createStepName='beamLoad',region=endRegion) # Find the top face using coordinates. topFaceCenter = (0,10,12.5) topFace = myInstance.faces.findAt((topFaceCenter,) ) # Create a pressure load on the top face of the beam. topSurface = ((topFace, SIDE1), ) myModel.Pressure(name='Pressure', createStepName='beamLoad',region=topSurface, magnitude=0.5) #--------------------------- import mesh # Assign an element type to the part instance. region = (myInstance.cells,) elemType = mesh.ElemType(elemCode=C3D8I, elemLibrary=STANDARD) myAssembly.setElementType(regions=region, elemTypes=(elemType,)) # Seed the part instance. myAssembly.seedPartInstance(regions=(myInstance,), size=10.0) # Mesh the part instance. myAssembly.generateMesh(regions=(myInstance,)) # Display the meshed beam. myViewport.assemblyDisplay.setValues(mesh=ON) myViewport.assemblyDisplay.meshOptions.setValues(meshTechnique=ON) myViewport.setValues(displayedObject=myAssembly) #----------------------------- import job # Create an analysis job for the model and submit it. jobName = 'beam_tutorial' myJob = mdb.Job(name=jobName, model='Beam',description='Cantilever beam tutorial') # Wait for the job to complete. myJob.submit() myJob.waitForCompletion() #---------------------- import visualization # Open the output database and display a # default contour plot. myOdb = visualization.openOdb(path=jobName + '.odb') myViewport.setValues(displayedObject=myOdb) myViewport.odbDisplay.display.setValues(plotState=CONTOURS_ON_DEF) #---------------------------- from abaqus import session import visualization import xyPlot from abaqusConstants import # load odb file myViewport = session.Viewport(name='myViewport', origin=(10, 10), width=300, height=200) myOdb = visualization.openOdb(path='beam_tutorial.odb') myViewport.setValues(displayedObject=myOdb) # set viewport settings v = 'Iso' myViewport.view.setValues(session.views[v]) myViewport.maximize() myViewport.view.fitView() myViewport.odbDisplay.basicOptions.setValues(coordSystemDisplay=OFF, translucencySort=ON) myViewport.odbDisplay.commonOptions.setValues(visibleEdges=FEATURE) # NONE myViewport.odbDisplay.contourOptions.setValues(contourStyle=CONTINUOUS) # DISCRETE CONTINUOUS #-------------------------- # saving undeformed image myViewport.odbDisplay.display.setValues(plotState=(UNDEFORMED, )) path_filename = '%s_%s' % (myOdb.name.replace('.odb',''),v) try: session.printToFile(path_filename, PNG, (myViewport,)) print('saving %s' % path_filename) except: pass #----------------------++++++ # save stress plots v = 'Iso' ; o = 'S' ; c = 'S11' ; s = 0 ; f = -1 myViewport.odbDisplay.display.setValues(plotState=(CONTOURS_ON_DEF, )) myViewport.odbDisplay.setFrame(step=s, frame=f) myViewport.odbDisplay.setPrimaryVariable(variableLabel=o,outputPosition=INTEGRATION_POINT,refinement=(COMPONENT, c), ) path_filename = '%s_step-%s_%s_%s_%s' % (myOdb.name.replace('.odb',''),s,o,c,v) try: myViewport.view.fitView() session.printToFile(path_filename+'.png', PNG, (myViewport,)) print('saving %s' % path_filename) myViewport.view.fitView() session.animationController.setValues(animationType=TIME_HISTORY, viewports=(myViewport.name, )) # SCALE_FACTOR TIME_HISTORY session.animationController.play(duration=UNLIMITED) session.animationController.animationOptions.setValues(frameRate=15) session.writeImageAnimation(fileName=path_filename+'.avi', format=AVI, canvasObjects=(myViewport,)) print('saving %s' % path_filename+'.avi') except: pass #----------------------------- # PLotting xyp = session.XYPlot(name='XYPlot-1') ## can be run multiple times but the line >>>session.xyPlots['XYPlot-1'] , can only be run once >>>ession.XYPlot('XYPlot-1') chartName = xyp.charts.keys()[0] chart = xyp.charts[chartName] chart.legend.setValues(show=False) chart.legend.titleStyle.setValues(font='-*-verdana-medium-r-normal-*-*-240-*-*-p-*-*-*') chart.gridArea.style.setValues(fill=False) xyp.title.style.setValues(font='-*-arial-medium-r-normal-*-*-240-*-*-p-*-*-*') x = 'Strain energy: ALLSE for Whole Model' sName = myOdb.steps.keys()[s] xy1 = xyPlot.XYDataFromHistory(odb=myOdb, outputVariableName=x, steps=(sName, ), ) c1 = session.Curve(xyData=xy1) chart.setValues(curvesToPlot=(c1, ), ) myViewport.setValues(displayedObject=xyp) chartName = xyp.charts.keys()[0] chart = xyp.charts[chartName] path_filename = '%s_Xplot_step-%s_x-%s' % \ (myOdb.name.replace('.odb',''), sName, x.split(':')[1].split(' ')[1]) try: myViewport.view.fitView() session.printToFile(path_filename+'.png', PNG, (myViewport,)) myViewport.view.fitView() session.animationController.setValues(animationType=TIME_HISTORY, viewports=(myViewport.name, )) # SCALE_FACTOR TIME_HISTORY session.animationController.play(duration=UNLIMITED) session.animationController.animationOptions.setValues(xyShowSymbol=True, xySymbolSize=LARGE) session.writeImageAnimation(fileName=path_filename+'.avi', format=AVI, canvasObjects=(session.viewports[myViewport.name], )) print('saved %s' % path_filename+'.avi') except: pass
ABAQUSPYTHONabaqus python二次开发攻略ABAQUS二次开发

abaqus Python 简单梁的例子的评论0条

    暂无评论

    abaqus Python 简单梁的例子的相关案例教程

    from abaqus import * from abaqusConstants import * import sys import animation #####################自动批量生成保存模态AVI动画###################################### ###!!!需指定保存路径path、和新文件名称filename!!!指定模态数! path
    例如:cell4 = mdb.models['block'].parts['crankcase'].cells[4],要把part模块中编号为4的体赋值给cell4,就需通过路径mdb→models→part→cells(4号体属性),其中'block'、'crankcase'、分别是model和part的名字。 在草图Sketch中画线: s = mdb.models[' block '].Co
    在讲解 findAt() 方法之前,先让我们简单回顾一下Abaqus中需要指定区域(region)的情况吧~ Load命令:使用region参数指定施加荷载的区域 Mesh命令:使用region参数指定单元类型、网格种子的定义区域 Set命令:使用region参数定义节点集、单元集 当我们在CAE中建立模型后,软件会自动为他们进行编号,如节点编号、单元编号、各条边等,如果我们在编写脚本的时候选用模
    前言 Python具有以下特点。Python语言是一种动态解释型编程语言,其功能强大,简单易学,支持面向对象编程((object-oriented programming),虽然由于其动态性致使程序解释执行速度比编译语言慢,但是随着Python语言的不断优化以及计算机硬件的迅猛发展,Python语言将会受到越来越多用户的关注。Python具有开源、自由等特征。它的简洁性和易用性使程序的开发过程变得
    一款可以上手的实例,讲解整个RSG插件的强大地方,避免重复工作。 如上图所示,圆柱电芯建模和阵列所有尺寸都列出,其中R 圆柱半径、L 圆柱长度、Numx x方向阵列数、Numy y方向阵列数量、DistanceX x方向阵列距离,其它部分为创建材料,分析类型,接触类型,载荷工况,网格划分,提交作业。 另外,还附带DB和plugin文件,写上一个icon进行,p.py文件将三个文件输出pyc加密文件
    CAE与NVH分析
    影响力
    粉丝
    内容
    获赞
    收藏
      项目客服
      培训客服
      0 0