Interactive plotting#
在 MAPDL 中从头开始生成几何图形时,通常需要绘制几何图形,如关键点、线、面和体。PyMAPDL 支持使用 VTK 绘制基本 CAD。
Mapdl
类利用现有的 MAPDL 命令,提供以下函数,将几何图形传输到 Python 以实现可视化:
这些方法依赖于 ansys.mapdl.core.plotting.general_plotter()
方法。结合 MAPDL 几何图形命令,您可以使用 open_gui()
方法从头开始生成和可视化几何图形,而无需打开图形用户界面。
Line plotting#
您可以使用 Mapdl.lplot()
方法在 Python 中绘制线条:
>>> from ansys.mapdl.core import launch_mapdl
>>> mapdl = launch_mapdl()
创建一个带孔矩形
>>> mapdl.prep7()
>>> rect_anum = mapdl.blc4(width=1, height=0.2)
在矩形中间创建几个圆
>>> for x in np.linspace(0.1, 0.9, 8):
... mapdl.cyl4(x, 0.1, 0.025)
...
生成线条
>>> mapdl.lplot(color_lines=True, cpos="xy")
Area and volume plotting#
您可以使用 Mapdl.vplot()
方法使用布尔运算获得更复杂的几何图形并将其可视化。本例用八个圆切割初始区域,然后将其挤出。
>>> plate_holes = mapdl.asba(rect_anum, "all")
挤出该面域
>>> mapdl.vext(plate_holes, dz=0.1)
>>> mapdl.vplot()
Node and element plotting#
您可以直接从 Mapdl
类的实例中绘制节点和单元。这段代码定义了一些单元类型,执行网格划分,然后显示网格:
>>> mapdl.et(1, "SOLID186")
>>> mapdl.vsweep("ALL")
>>> mapdl.esize(0.1)
>>> mapdl.eplot()
Plotting non-interactively using MAPDL#
您还可以使用 MAPDL 的本地绘图工具进行绘图。要使用本地工具,请在运行绘图命令(如 Mapdl.aplot
和 Mapdl.eplot
方法)时输入 vtk=False
。
绘图在 MAPDL 中生成,然后使用 Matplotlib 显示。
启动 PyMAPDL
>>> from ansys.mapdl.core import launch_mapdl
>>> mapdl = launch_mapdl()
利用关键点创建正方形区域
>>> mapdl.prep7()
>>> mapdl.k(1, 0, 0, 0)
>>> mapdl.k(2, 1, 0, 0)
>>> mapdl.k(3, 1, 1, 0)
>>> mapdl.k(4, 0, 1, 0)
>>> mapdl.l(1, 2)
>>> mapdl.l(2, 3)
>>> mapdl.l(3, 4)
>>> mapdl.l(4, 1)
>>> mapdl.al(1, 2, 3, 4)
将视图设置为“等轴测”
>>> mapdl.view(1, 1, 1, 1)
>>> mapdl.pnum("kp", 1) # enable keypoint numbering
>>> mapdl.pnum("line", 1) # enable line numbering
每项操作都会创建一个 Matplotlib 图形并暂停执行。
>>> mapdl.aplot(vtk=False)
>>> mapdl.lplot(vtk=False)
>>> mapdl.kplot(vtk=False)
有关绘图函数的更多信息,请参阅 Plotting。
Plotting keyword options#
默认情况下,当 vtk=True
时,所有 MAPDL 绘图方法都允许输入额外的关键字参数,以便更好地控制绘图。例如,您可以使用此代码自动生成区域图或元素图的截图:
>>> mapdl.aplot(savefig="aplot.png")
>>> mapdl.eplot(savefig="eplot.png")
当您想从标准视角查看时,也可以使用 cpos
控制摄像机的位置。这段代码展示了如何使用 cpos='xy'
查看 XY 平面。
>>> mapdl.eplot(cpos="xy")
有关所有常规绘图选项,请参阅 ansys.mapdl.core.plotting.general_plotter()
方法。
Plotting boundary conditions#
Warning
该功能为测试版,因此其功能性和稳定性有限。有关允许的边界条件和目标,请参阅文档。
可以通过在绘图函数中指定 plot_bc=True
来绘制应用于模型的边界条件。例如,此代码为 Mapdl.nplot()
方法指定了 plot_bc=True
:
>>> mapdl.nplot(
... plot_bc=True, plot_labels=True, savefig=f"bc_plot.png", bc_labels="mechanical"
... )
Note
由于边界条件只能以节点为目标,因此只能在 Mapdl.nplot()
方法中使用 plot_bc
作为参数。