APDL的全称是ANSYS Parametric Design Language,也被叫做ANSYS参数化设计语言。APDL的运用主要体现在用户可以利用程序设计语言将ANSYS命令组织起来,编写出参数化的用户程序,从而实现有限元分析的全过程,即建立参数化的CAD模型、参数化的网格划分与控制、参数化的材料定义、参数化的载荷和边界条件定义、参数化的分析控制和求解以及参数化的后处理。简单说,APDL就是ANSYS软件的二次开发语言,ANSYS有的功能,都可以通过APDL编程实现。本文简单介绍APDL的使用,适合入门级博友。但我相信,只要有编程基础,APDL入门后,完全可以根据自己的理解,结合Help解决大部分问题。
特别鸣谢(参考):水哥在ANSYS结构学院的视频~
那么,我们开始吧,APDL旅途愉快~~
1、如果你的ANSYS HELP不能打开,或者打开后内容为空,请单独下载并安装ANSYS HELP,安装路径选择和ANSYS的安装路径一致。ANSYS19.0;ANSYS19.1;ANSYS19.2 HELP文件下载地址:
链接:https://pan.baidu.com/s/1kR2WVhQtlKXG7ykLZQHrqA
提取码:help
2、使用HELP强烈建议要了解ANSYS 经典界面的操作,这样可以从经典界面的操作中定位到HELP,进而找到相关的命令帮助。如创建模型的一个关键点,在ANSYS经典界面中的操作如下
点击对话框中的HELP按钮,即可自动定位到该功能的命令帮助
由上面的HELP可知,创建关键点的命令是K
3、APDL的相关命令,既可以通过搜索直接搜索,也可以在Mechanical APDL—> Command Reference目下根据命令的首字母进行查找
4、以*get命令为例(APDL的命令不区分大小写),介绍如何查看APDL的HELP帮助
首先,查找 get命令,可以直接通过首字母查找,也可以通过搜索进行查找
从帮助文档中我们可以看到get命令是做什么的(获取某些值并存储在参数中),它有哪些具体参数,以及各个参数的意义。
向下翻,找到前处理需要获得值的模块
比如我们想要获得前处理阶段,关键点的相关值,我们可以点击Entity=KP,定位到相关帮助
如Item1=LOC,IT1NUM=X,就可以获得关键点N的X坐标值。具体命令如下
*get,kp,n,loc,x !(其中n为具体的关键点编号)
再如,N=0或者空,Item1=NUM,IT1NUM=MAX,就可以获得关键点的最大编号值
具体命令如下
*get,kp,,num,max
*do,i,1,6 ! i从1-6循环
....
*enddo
2、*IF命令的HELP
*if,a,eq,6 ! 如果a=6
...
*elseif
...
*endif
MP:将材料的线性性质定义为温度的常数或函数。
TB:激活材料属性或特殊元素输入的数据表。定义非线性材料本构模型。
*sel选择族
asel:选择面
vsel:选择体
ksel:选择关键点
nsel:选择节点
lsel:选择线
allsel:全部选择
gplot:各元素综合显示
kplot:显示选择的关键点
lplot:显示选择的线
aplot:显示选择的面
vplot:显示选择的体
nplot:显示选择的节点
eplot:显示选择的单元
/eshape:显示形状由实际常量、节定义或其他输入决定的元素。
nummrg:合并重合或等价定义元素。
numcmp:压缩定义的编码(重新编号,空的数字补上)
kdist:查询两个关键点之间的距离
ndist:查询两个节点之间的距离
cm:组件为一个新的集合
cmdele:删除一个集合
cmsel:选择一个集合
属性分配
*att命令族(k,l,a,v)
katt:将属性与选中的、未网格化的关键点关联起来。
latt:katt:将属性与选中的、未网格化的线关联起来。
aatt:katt:将属性与选中的、未网格化的面关联起来。
vatt:katt:将属性与选中的、未网格化的体关联起来。
大小控制
*esize命令族(l,a,d,k)
esize:指定默认的行分割数。
lesize:指定未网格线的分割和间距比。
aesize:指定要在区域中网格化的元素大小。
desize:控制默认单元的大小
kesize:指定最接近关键点的元素的边长。
划分网格
*mesh命令族(k,l,a,v)
amesh:在面域内生成节点和面要素
lmesh:沿着先生成节点和线要素
kmesh:在关键点上生成节点和点要素
vmesh:在体中生成节点和体要素
vsweep:Fills an existing unmeshed volume with elements by sweeping the mesh from an adjacent area through the volume.
网格清除
*clear(k,l,a,v)
fk:定义关键点处的力荷载
fkdele:删除关键点出的集中力
f:指定节点处的力荷载
fdele:删除节点处的集中力
sfl:在指定线上施加面荷载
sfldele:删除线上的均布荷载
sfa:在选择的面上施加面荷载
sfadele:删除面上的均布荷载
sf:在指定节点上施加面荷载
sfdele:删除节点上的面荷载
sfe:在指定单元上施加面荷载
sfedele:删除单元上的均布荷载
dl:对指定的线约束
dldele:删除线约束
dk:对指定的关键点约束
dkdele:删除关键点约束
da:对指定的面约束
dadele:删除面约束
d:对指定的节点的约束
ddele:删除节点约束
acel:重力加速度荷载施加
dtran:将几何模型的约束转换为有限元模型的约束
ftran:将几何模型的集中力转为有限元模型的荷载
sftran:将几何模型的均布荷载转为有限元模型的荷载
lsclear:清除指定类型的荷载
1、数据定义命令
2、数据删除
3、数组赋值
4、数组查看
5、时间历程变量赋值给数组
finish
/clear
/prep7
*create,dataRead,mac !创建宏文件
*dim,read_Data,,6,5 !定义二维数组(i=6,j=5)
!===============无论按列还是按行写入数组,都要保证i对应的是6,j对应的是5
!*vread,read_Data(1,1),data,txt,,ijk,6,5 !(按列写入数组)读取data.txt文件数据至read_Data数组
*vread,read_Data(1,1),data,txt,,jik,5,6 !(按行写入数组,和原始数据保持一致)
(5f3.0) !定义数据格式-----每行读取5个数据,每个数据共有3位数,其中小数点位数为0
*end
dataread !运行宏文件
*status,read_Data
finish
/clear
/prep7
!自定义数组并填充值
*dim,writeData,,20,5
*do,i,1,20
*do,j,1,5
writeData(i,j)=5*(i-j)+j
*enddo
*enddo
*create,dataWrite,mac !创建宏文件
*cfopen,data1,txt !创建写出文件
*do,i,1,20
*vwrite,writeData(i,1),writeData(i,2),writeData(i,3),writeData(i,4),writeData(i,5)
(5f8.2) !定义数据格式(每行写5个数据,每个数据共有8位(包括小数点),其中小数点后有2位)
*enddo
*cfclose
*end
datawrite !运行宏文件
1、不带参宏文件创建命令
2、不带参宏文件的基本格式
3、带参宏文件的创建(程序编写和不带参的一样,只是一些需要外部输入的参数用指定的参数名arc1~19代替)