在 ANSYS APDL 中,将原始位移(即结构未变形状态下的位移)与变形位移(即加载后产生的实际位移)合并显示或输出,通常用于后处理分析、结果对比或可视化。以下是实现该需求的几种常见方法:1. 后处理中同时查看原始与变形位移
GUI 操作路径(适用于 Workbench 或 Classic APDL 界面):进入 /POST1(通用后处理器)。
使用 PLDISP,2 命令可同时显示未变形构型和变形构型(比例放大)
PLDISP,1:仅显示变形图(默认)。
PLDISP,2:同时显示原始和变形形状。
若需导出数据,可结合 *VGET 和 *VWRITE 提取节点位移。
APDL 命令示例:apdl
/POST
SET,LAST !读取最后一载荷步结果
PLDISP,2 !同时显示原始与变形位移
2. 提取原始位移与变形位移并合并输出
原始位移通常指初始位置坐标(即未加载时的节点坐标),而变形位移是求解得到的位移增量(UX, UY, UZ)。两者相加可得变形后位置。
关键步骤:获取原始节点坐标(使用 NLIST 或 *GET)。
获取变形位移(使用 *VGET, NodeDisp, NODE, , U, X 等)。
将原始坐标与位移相加,得到总位移(即变形后位置)。
APDL 示例代码(导出原始坐标 + 变形位移):apdl
/POST
SET,LAST
*GET,Nnod,NODE,,COUNT !获取节点总数
*DIM,OrigCoord,ARRAY,Nnod,3 !原始坐标 [X,Y,Z]
*DIM,Disp,ARRAY,Nnod,3 !变形位移 [UX,UY,UZ]
*DIM,TotalPos,ARRAY,Nnod,3 !总位置 = 原始 + 位移
!读取原始坐标(注意:APDL 默认存储初始坐标)
*VGET,OrigCoord(1,1),NODE,,X
*VGET,OrigCoord(1,2),NODE,,Y
*VGET,OrigCoord(1,3),NODE,,Z
!读取变形位移
*VGET,Disp(1,1),NODE,,U,X
*VGET,Disp(1,2),NODE,,U,Y
*VGET,Disp(1,3),NODE,,U,Z
!计算总位置(原始 + 位移)
*DO,i,1,Nnod
TotalPos(i,1) = OrigCoord(i,1) + Disp(i,1)
TotalPos(i,2) = OrigCoord(i,2) + Disp(i,2)
TotalPos(i,3) = OrigCoord(i,3) + Disp(i,3)
*ENDDO
!输出到文件(节点号 + 原始X + 原始Y + 原始Z + UX + UY + UZ + 总X + 总Y + 总Z)
*CFOPEN,disp_combined,txt
*VWRITE,'Node','OrigX','OrigY','OrigZ','UX','UY','UZ','TotalX','TotalY','TotalZ'
(A6,1X,10E12.5)
*VWRITE,(NLIST),OrigCoord(1,1),OrigCoord(1,2),OrigCoord(1,3),Disp(1,1),Disp(1,2),Disp(1,3),TotalPos(1,1),TotalPos(1,2),TotalPos(1,3)
(F6.0,1X,9E12.5)
*CFCLOSE
⚠️ 注意:NLIST 返回的是节点编号列表,需配合 *GET 或 *VGET 正确索引。上述代码假设节点按顺序存储。
3. 使用 PyAnsys 自动化处理(推荐用于复杂场景)
若需更灵活地处理原始与变形位移(如导出为 CSV、绘图等),可使用 PyAnsys 库:python
from ansys.mapdl.core import launch_mapdl
mapdl = launch_mapdl()
mapdl.post1()
mapdl.set(1, 1) 读取第一载荷步
获取原始坐标和位移
nodes = mapdl.mesh.nodes 原始坐标
displacements = mapdl.post_processing.nodal_displacement() 变形位移
合并
total_positions = nodes + displacements
导出到 DataFrame
import pandas as pd
df = pd.DataFrame({
'Node': mapdl.mesh.nnum,
'Orig_X': nodes[:, 0], 'Orig_Y': nodes[:, 1], 'Orig_Z': nodes[:, 2],
'UX': displacements[:, 0], 'UY': displacements[:, 1], 'UZ': displacements[:, 2],
'Total_X': total_positions[:, 0], 'Total_Y': total_positions[:, 1], 'Total_Z': total_positions[:, 2]
})
df.to_csv('combined_displacement.csv', index=False)
总结
可视化:用 PLDISP,2 同时显示原始与变形形状。
数据导出:通过 *VGET 获取原始坐标和位移,相加后写入文件。
自动化:推荐使用 PyAnsys 处理大规模或复杂后处理任务。
如需进一步帮助,可参考 ANSYS APDL 后处理官方文档 或 CSDN APDL 教程。
武汉格发信息技术有限公司 | 许可分析,许可优化,许可管理,许可授权,软件授权