搞ANSYS二次开发的人都知道,get命令能取数据,但写起来是真啰嗦。取个节点x坐标,get,xx,node,i,loc,x,一长串。换成内嵌函数呢?xx=nx(i),一句话搞定。2026年ANSYS更新到25.x版本,内嵌函数已经扩展到40多个,但日常真正高频用到的也就这些。下面按功能分类全列出来,直接抄进你的APDL代码里。
这组函数是我写APDL代码时用得最多的,几乎每个脚本里都会出现。
nx(i)、ny(i)、nz(i) ——节点i的x、y、z坐标。等效于*get,xx,node,i,loc,x,但代码短了一半。
kx(i)、ky(i)、kz(i) ——关键点i的x、y、z坐标。逻辑一样,只是对象从节点换成了关键点。
node(x,y,z) ——给一个坐标位置,返回距离最近的节点号。我做自适应网格的时候天天用这个,比如找距离某个点最近的节点来施加约束。
kp(x,y,z) ——同理,返回距离最近的关键点号。
distnd(i,j) ——节点i和节点j之间的距离。算两点间距不用自己开根号了,直接一个函数出结果。
distkp(k1,k2) ——关键点k1和k2之间的距离。
disten(e,n) ——单元e的形心到节点n的距离。做接触分析判断穿透的时候特别好用。
nnear(n) ——已选节点中距离节点n最近的那个节点号。
knear(k) ——已选关键点中距离关键点k最近的那个。
enearn(n) ——已选单元中距离节点n最近的单元号。
这10个函数覆盖了日常取坐标、算距离80%的场景。我之前写一个螺栓预紧力的施加脚本,光距离计算就用了7次distnd,换成手动算坐标差再开方,代码量直接翻3倍。
ANSYS内置的数学函数比你想象的全,基本不需要自己手写公式。
ABS(x) ——绝对值。
SIGN(x,y) ——取x的绝对值,带y的符号。y=0时返回正号。
EXP(x) ——e的x次方。
LOG(x) ——自然对数ln(x)。
LOG10(x) ——常用对数log10(x)。
SQRT(x) ——开平方。
NINT(x) ——取最近的整数。
MOD(x,y) ——x除以y的余数。y=0时返回0。
RAND(x,y) ——x到y之间的随机数,均匀分布。我做随机载荷分析的时候用这个生成随机力,比自己写随机数生成器靠谱多了。
GDIS(x,y) ——高斯分布随机数,均值x,标准差y。2026版ANSYS的随机分析模块里这个函数用得特别多。
三角函数那一组:SIN(x)、COS(x)、TAN(x),默认弧度制,用*AFUN命令可以切成角度制。反三角函数ASIN(x)、ACOS(x)、ATAN(x),注意ASIN和ACOS的x必须在-1到+1之间。还有ATAN2(y,x),这个比ATAN好用,因为它会根据象限自动判断符号,输出范围是-π到+π。
双曲函数也有:SINH(x)、COSH(x)、TANH(x),做非线性材料本构的时候会碰到。
字符转换类:VALCHR(CPARM)把字符转数值,CHRVAL(PARM)把数值转字符,UPCASE(CPARM)转大写,LWCASE(CPARM)转小写。这4个函数在生成文本报告的时候特别方便,不用自己写转换逻辑。
这组函数解决的是"怎么判断一个东西被没被选中"和"怎么取计算结果"两个问题。
nsel(k) ——节点k在已选集合里返回1,不在返回0。循环遍历节点的时候用这个做判断,比*GET稳。
ksel(n) ——关键点n的选择状态:-1未选,0未定义,1已选。
esel(n) ——单元n的选择状态,同样是-1、0、1。
asel(n)、vsel(n) ——面和体的选择状态,逻辑一样。
ndnext(n)、kpnext(n)、elnext(n)、lsnext(n)、vlnext(n) ——返回已选集合中比n大的下一个编号,没有就返回0。遍历已选对象的时候用这组函数,比自己写循环判断快得多。
结果提取类函数才是重头戏:
UX(N)、UY(UZ)(N) ——节点N的x、y、z方向位移或矢量和。
ROTX(N)、ROTY(N)、ROTZ(N) ——x、y、z方向转角。
TEMP(N) ——节点温度。
PRES(N) ——节点压力。
VX(N)、VY(N)、VZ(N) ——流体速度,FLOTRAN分析里用。
ENKE(N)、ENDS(N) ——湍动能和湍流耗散率,也是FLOTRAN专用。
CENTRX(N)、CENTRY(N)、CENTRZ(N) ——单元形心的全局坐标。这个函数不管你选了单元上哪个节点,返回的都是形心坐标,特别省心。
我做一个Heat Transfer分析的后处理脚本,光提取温度和位移就用了12个这类函数,代码清晰得像在读英语句子。
最后这组函数处理几何量,算面积、角度、法向量,不用自己推导公式。
areand(n1,n2,n3) ——三个节点构成的三角形面积。
areakp(k1,k2,k3) ——三个关键点构成的三角形面积。
arnode(n) ——节点n关联的面积,2D返回边长,轴对称返回曲面面积,3D返回面面积。
anglen(n1,n2,n3) ——三个节点的夹角,n1是顶点。默认弧度,用*AFUN切角度。
anglek(k1,k2,k3) ——同理,三个关键点的夹角。
normnx(n1,n2,n3)、normny、normnz ——三点确定平面的法向余弦,x、y、z三个分量。做接触法向判断的时候直接用,不用自己叉乘。
normkx、normky、normkz ——同理,关键点版本。
eladj(e,face) ——单元e的某个面相邻的单元号。判断两个单元是否共享面,用这个一查就知道。
ndface(e,face,loc) ——单元e某个面上第loc个节点的编号。
nmface(e) ——单元e上包含已选节点的面号。
arface(e) ——单元e上某个面的面积。
这组函数我用得最多的是normnx系列和eladj。之前做一个壳体接触分析,判断主从面法向是否对齐,全靠normnx算出来的余弦值,3000个单元5秒跑完。要是自己写叉乘代码,光调试就得半天。

40多个函数看着多,但分3批记,1周足够。
第1批:坐标和距离类,10个,每天用,2天记熟。第2批:数学三角类,15个,算公式时用,2天。第3批:选择状态、结果提取、几何类,剩下的,后处理时用,3天。
记不住也没关系,把这篇存手机里,写代码的时候随时查。我自己现在写APDL,80%的数据提取都用内嵌函数,*get命令基本只在特别复杂的场景下才用。
你现在手上有ANSYS脚本在写吗?把nx(i)和distnd(i,j)先用熟,这两个函数能解决你60%的取数需求。
武汉格发信息技术有限公司,格发许可优化管理系统可以帮你评估贵公司软件许可的真实需求,再低成本合规性管理软件许可,帮助贵司提高软件投资回报率,为软件采购、使用提供科学决策依据。支持的软件有: CAD,CAE,PDM,PLM,Catia,Ugnx, AutoCAD, Pro/E, Solidworks 等。