ANSYS APDL入门教程

前言

APDL的全称是ANSYS Parametric Design Language,也被叫做ANSYS参数化设计语言。APDL的运用主要体现在用户可以利用程序设计语言将ANSYS命令组织起来,编写出参数化的用户程序,从而实现有限元分析的全过程,即建立参数化的CAD模型、参数化的网格划分与控制、参数化的材料定义、参数化的载荷和边界条件定义、参数化的分析控制和求解以及参数化的后处理。简单说,APDL就是ANSYS软件的二次开发语言,ANSYS有的功能,都可以通过APDL编程实现。本文简单介绍APDL的使用,适合入门级博友。但我相信,只要有编程基础,APDL入门后,完全可以根据自己的理解,结合Help解决大部分问题。

特别鸣谢(参考):水哥在ANSYS结构学院的视频~

目录

一、学会使用Help
二、DO和IF命令
三、APDL常用函数命令
四、APDL常用功能命令
五、学会使用数组
六、数据的读入和写出
七、带参和不带参宏文件的创建
八、制作自定义工具条

那么,我们开始吧,APDL旅途愉快~~


一、学会使用Help

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经典界面中的操作如下

python 对ansys二次开发 ansys二次开发用什么语言_fluent


点击对话框中的HELP按钮,即可自动定位到该功能的命令帮助

python 对ansys二次开发 ansys二次开发用什么语言_入门教程_02


由上面的HELP可知,创建关键点的命令是K

3、APDL的相关命令,既可以通过搜索直接搜索,也可以在Mechanical APDL—> Command Reference目下根据命令的首字母进行查找

python 对ansys二次开发 ansys二次开发用什么语言_入门教程_03


4、以*get命令为例(APDL的命令不区分大小写),介绍如何查看APDL的HELP帮助

首先,查找 get命令,可以直接通过首字母查找,也可以通过搜索进行查找

python 对ansys二次开发 ansys二次开发用什么语言_fluent_04


python 对ansys二次开发 ansys二次开发用什么语言_python 对ansys二次开发_05


从帮助文档中我们可以看到
get命令是做什么的(获取某些值并存储在参数中),它有哪些具体参数,以及各个参数的意义。

向下翻,找到前处理需要获得值的模块

python 对ansys二次开发 ansys二次开发用什么语言_apdl_06

比如我们想要获得前处理阶段,关键点的相关值,我们可以点击Entity=KP,定位到相关帮助

python 对ansys二次开发 ansys二次开发用什么语言_fluent_07


python 对ansys二次开发 ansys二次开发用什么语言_apdl_08

如Item1=LOC,IT1NUM=X,就可以获得关键点N的X坐标值。具体命令如下

*get,kp,n,loc,x  !(其中n为具体的关键点编号)

再如,N=0或者空,Item1=NUM,IT1NUM=MAX,就可以获得关键点的最大编号值

python 对ansys二次开发 ansys二次开发用什么语言_ansys_09


具体命令如下

*get,kp,,num,max

二、DO和IF命令

1、*DO命令的HELP

python 对ansys二次开发 ansys二次开发用什么语言_python 对ansys二次开发_10


使用命令格式如下

*do,i,1,6  ! i从1-6循环
....
*enddo

2、*IF命令的HELP

python 对ansys二次开发 ansys二次开发用什么语言_fluent_11


使用命令格式示例如下

*if,a,eq,6  ! 如果a=6
...
*elseif
...
*endif

if操作符有以下几种,具体可以看HELP

python 对ansys二次开发 ansys二次开发用什么语言_fluent_12

三、APDL常用函数命令(点到为止,具体使用方法参照HELP)

1、材料定义

MP:将材料的线性性质定义为温度的常数或函数。
TB:激活材料属性或特殊元素输入的数据表。定义非线性材料本构模型。

2、选择命令

*sel选择族

asel:选择面
vsel:选择体
ksel:选择关键点
nsel:选择节点
lsel:选择线
allsel:全部选择
3、其它辅助命令
gplot:各元素综合显示
kplot:显示选择的关键点
lplot:显示选择的线
aplot:显示选择的面
vplot:显示选择的体
nplot:显示选择的节点
eplot:显示选择的单元
/eshape:显示形状由实际常量、节定义或其他输入决定的元素。
nummrg:合并重合或等价定义元素。
numcmp:压缩定义的编码(重新编号,空的数字补上)
kdist:查询两个关键点之间的距离
ndist:查询两个节点之间的距离
cm:组件为一个新的集合
cmdele:删除一个集合
cmsel:选择一个集合
4、格网划分命令

属性分配
*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)

5、荷载与约束
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:清除指定类型的荷载
6、求解通用设置

python 对ansys二次开发 ansys二次开发用什么语言_入门教程_13

7、后处理命令

python 对ansys二次开发 ansys二次开发用什么语言_fluent_14


python 对ansys二次开发 ansys二次开发用什么语言_入门教程_15

四、APDL常用功能命令

python 对ansys二次开发 ansys二次开发用什么语言_fluent_16


python 对ansys二次开发 ansys二次开发用什么语言_apdl_17


python 对ansys二次开发 ansys二次开发用什么语言_ansys_18

python 对ansys二次开发 ansys二次开发用什么语言_ansys_19

五、学会使用数组

1、数据定义命令

python 对ansys二次开发 ansys二次开发用什么语言_入门教程_20


python 对ansys二次开发 ansys二次开发用什么语言_入门教程_21


2、数据删除

python 对ansys二次开发 ansys二次开发用什么语言_python 对ansys二次开发_22


3、数组赋值

python 对ansys二次开发 ansys二次开发用什么语言_fluent_23


4、数组查看

python 对ansys二次开发 ansys二次开发用什么语言_apdl_24


5、时间历程变量赋值给数组

python 对ansys二次开发 ansys二次开发用什么语言_ansys_25

六、数据的读入和写出

1、数据读入基本格式

python 对ansys二次开发 ansys二次开发用什么语言_入门教程_26


示例代码

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

python 对ansys二次开发 ansys二次开发用什么语言_fluent_27


2、数据写出基本格式

python 对ansys二次开发 ansys二次开发用什么语言_ansys_28


示例代码

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、不带参宏文件创建命令

python 对ansys二次开发 ansys二次开发用什么语言_ansys_29


2、不带参宏文件的基本格式

python 对ansys二次开发 ansys二次开发用什么语言_ansys_30


3、带参宏文件的创建(程序编写和不带参的一样,只是一些需要外部输入的参数用指定的参数名arc1~19代替)

python 对ansys二次开发 ansys二次开发用什么语言_apdl_31

八、制作自定义工具条

python 对ansys二次开发 ansys二次开发用什么语言_入门教程_32