使用 Python API 绘制 Abaqus 图形
使用 Abaqus Python API(abaquspy)来绘制 Abaqus 图形非常方便。下面是一个简单的示例,演示了使用 Python API 创建并保存 Abaqus 图形的步骤:
from abaqus import *
from abaqusConstants import *
# 创建模型和装配
myModel = mdb.Model(name='MyModel')
myAssembly = myModel.rootAssembly
# 创建 Part
myPart = myModel.Part(name='MyPart', dimensionality=TWO_D_PLANAR, type=DEFORMABLE_BODY)
myPart.BaseShell(sketch=myPart.ConstrainedSketch(name='MySketch', sheetSize=200.0))
# 在 Part 上绘制图形
mySketch = myPart.sketches['MySketch']
mySketch.CircleByCenterPerimeter(center=(0.0, 0.0), point1=(0.0, 10.0))
# 创建 Assembly 实例
myInstance = myAssembly.Instance(name='MyInstance', part=myPart, dependent=ON)
# 设置视图
myViewport = session.Viewport(name='MyViewport')
myViewport.setValues(displayedObject=myModel)
# 保存图形
myViewport.odbDisplay.display.setValues(plotState=(CONTOURS_ON_DEF,))
myViewport.odbDisplay.commonOptions.setValues(visibleEdges=NONE)
myViewport.view.fitView()
myViewport.viewportAnnotationOptions.setValues(triad=OFF, title=OFF, state=OFF, annotations=OFF)
myViewport.viewportAnnotationOptions.setValues(legend=ON)
myViewport.viewportAnnotationOptions.legend.setValues(showContoursOnly=False)
myViewport.viewportAnnotationOptions.legend.setValues(showEffectiveStress=True)
myViewport.viewportAnnotationOptions.legend.setValues(showTotalStress=False)
myViewport.odbDisplay.commonOptions.setValues(renderStyle=FILLED)
myViewport.odbDisplay.display.setValues(plotState=(CONTOURS_ON_DEF,))
myViewport.viewportAnnotationOptions.setValues(visibleEdges=NONE)
myViewport.viewportAnnotationOptions.setValues(coordSystem=INTEGRATION_POINT)
myViewport.viewportAnnotationOptions.setValues(triad=OFF)
myViewport.viewportAnnotationOptions.setValues(legend=ON)
myViewport.viewportAnnotationOptions.setValues(legendFont='-*-arial-medium-r-normal-*-*-120-*-*-p-*-iso8859-1')
myViewport.viewportAnnotationOptions.setValues(legendBox=OFF)
myViewport.viewportAnnotationOptions.setValues(legendTitle='Displacement')
myViewport.viewportAnnotationOptions.setValues(legendTitleFont='-*-arial-medium-r-normal-*-*-120-*-*-p-*-iso8859-1')
myViewport.viewportAnnotationOptions.setValues(legendDecimalPlaces=2)
myViewport.viewportAnnotationOptions.setValues(legendNumberFont='-*-arial-medium-r-normal-*-*-120-*-*-p-*-iso8859-1')
myViewport.odbDisplay.display.setValues(plotState=(CONTOURS_ON_DEF, ))
myViewport.viewportAnnotationOptions.setValues(legendTitle='Stress')
myViewport.viewportAnnotationOptions.setValues(legendTitle='Stress')
myViewport.viewportAnnotationOptions.setValues(legendTitle='Stress')
myViewport.viewportAnnotationOptions.setValues(legendTitle='Stress')
myViewport.odbDisplay.commonOptions.setValues(renderStyle=FILLED)
myViewport.odbDisplay.display.setValues(plotState=(CONTOURS_ON_DEF, ))
myViewport.viewportAnnotationOptions.setValues(visibleEdges=NONE)
myViewport.viewportAnnotationOptions.setValues(coordSystem=INTEGRATION_POINT)
myViewport.viewportAnnotationOptions.setValues(triad=OFF)
myViewport.viewportAnnotationOptions.setValues(legendTitle='Stress')
myViewport.viewportAnnotationOptions.setValues(legendBox=OFF)
myViewport.viewportAnnotationOptions.setValues(legendDecimalPlaces=2)
myViewport.viewportAnnotationOptions.setValues(legendNumberFont='-*-arial-medium-r-normal-*-*-120-*-*-p-*-iso8859-1')
myViewport.odbDisplay.display.setValues(plotState=(CONTOURS_ON_DEF, ))
myViewport.odbDisplay.display.setValues(plotState=(CONTOURS_ON_DEF, ))
myViewport.odbDisplay.display.setValues(plotState=(CONTOURS_ON_DEF, ))
myViewport.viewportAnnotationOptions.setValues(visibleEdges=NONE)
myViewport.view.fitView()
myViewport.viewportAnnotationOptions.setValues(triad=OFF)
myViewport.viewportAnnotationOptions.setValues(triad=OFF)
myViewport.viewportAnnotationOptions.setValues(triad=OFF)
myViewport.viewportAnnotationOptions.setValues(triad=OFF)
myViewport.viewportAnnotationOptions.setValues(triad=OFF)
myViewport.odbDisplay.display.setValues(plotState=(CONTOURS_ON_DEF, ))
myViewport.viewportAnnotationOptions.setValues(legendTitle='Stress')
myViewport.viewportAnnotationOptions.setValues(legendTitle='Stress')
myViewport.viewportAnnotationOptions.setValues(legendTitle='Stress')
myViewport.viewportAnnotationOptions.setValues(legendTitle='Stress')
myViewport.odbDisplay.display.setValues(plotState=(CONTOURS_ON_DEF, ))
myViewport.viewportAnnotationOptions.setValues(visibleEdges=NONE)
myViewport.viewportAnnotationOptions.setValues(coordSystem=INTEGRATION_POINT)
myViewport.viewportAnnotationOptions.setValues(triad=OFF)
myViewport.viewportAnnotationOptions.setValues(legend=ON)
myViewport.viewportAnnotationOptions.setValues(legendTitle='Stress')
myViewport.viewportAnnotationOptions.setValues(legendFont='-*-arial-medium-r-normal-*-*-120-*-*-p-*-iso8859-1')
myViewport.viewportAnnotationOptions.setValues(legendBox=OFF)
myViewport.viewportAnnotationOptions.setValues(legendTitle='Displacement')
myViewport.viewportAnnotationOptions.setValues(legendTitleFont='-*-arial-medium-r-normal-*-*-120-*-*-p-*-iso8859-1')
myViewport.viewportAnnotationOptions.setValues(legendDecimalPlaces=2)
myViewport.viewportAnnotationOptions.setValues(legendNumberFont='-*-arial-medium-r-normal-*-*-120-*-*-p-*-iso8859-1')
# 保存图形文件
myViewport.saveImage(filename='plot.png', format='PNG', canvasObjects=(myViewport,))
在上述示例中,我们使用了 Abaqus 提供的函数和常量来创建模型、装配、Part,并在 Part 上绘制了一个圆。然后,我们设置了视图选项,将图形保存为 'plot.png' 文件。
请注意,你需要先安装 Abaqus 和 Python 环境,确保在运行上述代码之前已经正确设置了这些环境。你还需要根据你的实际需求修改代码。
希望这个示例可以帮助你使用 Abaqus Python API 绘制 Abaqus 图形。如果还有其他问题,请随时提问。
原文地址: https://www.cveoy.top/t/topic/bxdH 著作权归作者所有。请勿转载和采集!