一、为什么要学APDL脚本?
手动点界面太麻烦?重复操作多到崩溃?想做参数化设计(改个尺寸不用重画模型)?APDL就是你的救星!用脚本可以把整个分析流程写成一行行命令,改参数只要动一两个数字,不用重新点遍所有按钮——效率直接拉满!而且学会APDL,你对ANSYS的理解会更深一层,不再是只会点鼠标的“界面党”。
二、APDL脚本入门三步走
1. 环境准备:怎么运行APDL脚本?
打开ANSYS Mechanical APDL(就是那个经典的黑色命令窗口+图形界面),两种运行方式任你选:
- 即时输入:直接在黑色命令窗口敲命令(适合小测试,比如输
/CLEAR清环境);
- 脚本文件:把命令写在txt文件里,然后用
/INPUT,文件名,txt读入(比如/INPUT,test,txt运行test.txt)。
推荐用第二种!方便保存、修改,还能分享给别人。
2. 核心逻辑:APDL脚本的基本结构
APDL脚本的流程和手动操作ANSYS完全一致,就是:
清除环境→前处理(建模+网格)→求解(加约束/载荷)→后处理(看结果)
记住这个顺序,写脚本就不会乱!
3. 第一个脚本:Hello World级别的例子
我们来写个最简单的脚本——创建长方体、划分网格、加约束载荷、求解、看应力。直接复制到txt文件里,运行试试:
/CLEAR ! 清除所有数据,重置环境
/PREP7 ! 进入前处理模块
! 定义参数(参数化的灵魂!)
cube_len=100 ! 长方体长度
cube_wid=50 ! 宽度
cube_hgt=20 ! 高度
! 定义单元和材料
ET,1,SOLID186 ! 选常用的实体单元(适合大部分结构分析)
MP,EX,1,2e11 ! 钢的弹性模量(200GPa)
MP,NUXY,1,0.3 ! 泊松比(钢的典型值)
! 创建长方体(BLC4命令超方便,不用一个个点)
BLC4,0,0,cube_len,cube_wid,cube_hgt ! 从(0,0,0)开始,长宽高对应参数
! 划分网格
ESIZE,10 ! 单元大小设为10mm
VMESH,1 ! 划分第1个体的网格(我们只建了一个体)
FINISH ! 退出前处理
/SOL ! 进入求解模块
! 施加约束:底面所有节点固定
NSLCT,S,LOC,Z,0 ! 选择z坐标=0的节点(底面)
D,ALL,UX,0 ! 固定X方向位移
D,ALL,UY,0 ! 固定Y方向位移
D,ALL,UZ,0 ! 固定Z方向位移
! 施加载荷:顶面中心节点加Y方向力
NSLCT,S,LOC,X,%cube_len/2%,LOC,Y,%cube_wid/2%,LOC,Z,%cube_hgt% ! 选顶面中心节点
F,ALL,FY,10000 ! 加10000N的Y方向力
SOLVE ! 开始求解(等进度条走完)
FINISH ! 退出求解
/POST1 ! 进入后处理模块
SET,LAST ! 读取最后一步的结果
PLNSOL,S,X ! 画X方向应力云图(图形界面会显示彩色云图)
PRNSOL,U,Y ! 打印Y方向位移的数值结果(命令窗口输出)
FINISH ! 结束
运行后,你会看到应力云图和位移数值——是不是很有成就感?
三、常用命令速查(按模块分类)
记不住命令没关系,收藏这部分,用的时候翻一眼就行!
1. 环境设置类(必记!)
| 命令 |
作用 |
/CLEAR |
删除当前所有数据,重置环境 |
/PREP7 |
进入前处理模块(建模、网格) |
/SOL |
进入求解模块(加约束、载荷、求解) |
/POST1 |
进入通用后处理(看云图、数值结果) |
/POST26 |
进入时间历程后处理(看某点随时间变化的结果) |
/INPUT,filename,txt |
读入txt格式的APDL脚本 |
/SAVE,filename,db |
保存当前数据库到文件 |
2. 参数定义类(自动化核心)
| 命令 |
作用 |
par=value |
直接定义参数(比如len=100) |
*SET,par,value |
和上面等价,写法不同 |
*DO,i,start,end |
循环开始(i从start到end,比如*DO,i,1,5) |
*ENDDO |
循环结束 |
*IF,cond,THEN |
条件判断开始(比如*IF,len>50,THEN) |
*ENDIF |
条件判断结束 |
*STATUS,par |
查看参数par的当前值 |
3. 建模类(常用几何命令)
基础几何(关键点→线→面→体)
| 命令 |
作用 |
K,n,x,y,z |
创建关键点n(坐标x,y,z,n可省略自动编号) |
L,n1,n2 |
用关键点n1和n2创建线 |
A,line1,line2,... |
用线创建面(比如A,1,2,3,4围成长方形) |
V,area1,area2,... |
用面创建体 |
快捷几何(直接创建立体)
| 命令 |
作用 |
BLC4,x,y,dx,dy,dz |
创建长方体(左下角(x,y),长宽高dx/dy/dz) |
CYL4,x,y,r,hz |
创建圆柱体(中心(x,y),半径r,高度hz) |
SPH4,x,y,r |
创建球体(中心(x,y),半径r) |
4. 网格划分类(让模型变成单元)
| 命令 |
作用 |
ESIZE,size |
设置单元大小(比如ESIZE,5细化网格) |
MSHKEY,1 |
自由网格划分(适合不规则形状) |
MSHKEY,2 |
映射网格划分(规则形状,网格更整齐) |
AMESH,area_num |
划分指定面的网格(比如AMESH,1) |
VMESH,vol_num |
划分指定体的网格(比如VMESH,1) |
TYPE,num |
选择之前定义的单元类型(比如TYPE,1) |
5. 材料&单元类(定义物理属性)
| 命令 |
作用 |
ET,num,elem_type |
定义单元类型(比如ET,1,SOLID186) |
MP,EX,mat_num,val |
弹性模量(比如MP,EX,1,2e11) |
MP,NUXY,mat_num,val |
泊松比(比如MP,NUXY,1,0.3) |
MP,DENS,mat_num,val |
密度(比如MP,DENS,1,7850) |
MAT,mat_num |
选择材料(比如MAT,1用第1种材料) |
6. 载荷&约束类(给模型加力和限制)
约束命令
| 命令 |
作用 |
D,node,lab,val |
节点约束(比如D,5,UX,0固定节点5的X方向) |
DL,line,lab,val |
线约束(比如DL,3,UX,0固定线3的所有节点X方向) |
载荷命令
| 命令 |
作用 |
F,node,lab,val |
节点集中力(比如F,10,FY,5000加5000N的Y力) |
FL,line,lab,val |
线分布力(比如FL,2,PRES,100线2加100Pa压力) |
SF,area,lab,val |
面分布载荷(比如SF,4,PRES,200面4加200Pa压力) |
7. 求解类(让ANSYS算起来)
| 命令 |
作用 |
ANTYPE,static |
静态分析(最常用) |
ANTYPE,trans |
瞬态分析(时间相关) |
SOLVE |
开始求解(关键命令!) |
FINISH |
退出当前模块 |
8. 后处理类(看结果的关键)
通用后处理(/POST1)
| 命令 |
作用 |
SET,LAST |
读取最后一步结果 |
PLNSOL,S,X |
X方向应力云图 |
PLNSOL,U,Y |
Y方向位移云图 |
PRNSOL,S,EQV |
打印等效应力数值 |
PRNSOL,U,ALL |
打印所有方向位移数值 |
PLDISP,1 |
绘制变形图(对比原始形状) |
四、新手常见坑&小技巧
- 命令顺序错了:比如在前处理模块外建模,直接报错!记住:先进入模块(如/PREP7)再执行对应命令。
- 参数拼写错:把
len写成lenght,ANSYS会把它当成新参数(值为0),结果模型消失——一定要检查拼写!
- 网格划分失败:形状太复杂?试试减小ESIZE(细化单元),或者用自由网格(MSHKEY,1)。
- 快速查命令:在ANSYS命令窗口输入
HELP,命令名,就能看到官方帮助文档(超级实用!)。
- 注释技巧:用
!开头写注释(比如!这是注释),脚本会更易读——别嫌麻烦,以后你会感谢自己的。
五、总结
APDL脚本其实不难,核心就是参数化+自动化。先从简单的小模型练起(比如长方体、圆柱体),然后逐步加参数、循环、条件判断——很快就能写出实用的脚本。常用命令记不住没关系,收藏这篇文章,用的时候翻一眼就行。
最后说一句:多动手写!哪怕是改别人的脚本,改个参数、加个命令,慢慢就会有感觉。祝你早日成为APDL大神!