做ANSYS网格划分,你是不是也遇到过这种情况:建好一组单元,想复制到其他地方,结果节点编号乱成一锅粥?或者想在两个节点之间均匀插点,却搞不清FILL命令的增量怎么设?别急,今天把EGEN和FILL这两个命令讲透,配上我踩过的坑和实测参数,你照着改就行。
2026版ANSYS虽然界面更新到了Workbench为主,但经典Mechanical APDL的命令流依然高效。下面直接上干货。
EGEN的作用是把一组已经存在的单元,按照你设定的规律复制到新位置,同时自动处理节点编号、材料号、实常数等。
先看完整命令格式:
EGEN, ITIME, NINC, IEL1, IEL2, IEINC, MINC, TINC, RINC, CINC, SINC, DX, DY, DZ别被这么多参数吓到。实际建模时,你只需要关注最关键的几个。
ITIME:复制总次数(包含原始的那组)。比如ITIME=3,会生成3份:原件+2份副本。注意:ITIME必须大于1,否则啥也不干。
NINC:每次复制时,所有节点编号的增量。设NINC=100,那么第一份副本的节点号比原件大100,第二份再大100,以此类推。这能避免节点号重叠。我一般设成原件最大节点号+偏移量。举个例子,原件用了1~500号节点,那NINC设500,新节点从501开始。
IEL1, IEL2, IEINC:选择要复制的单元范围。比如IEL1=10, IEL2=20, IEINC=2,就复制单元10,12,14,16,18,20。如果想复制所有已选中的单元,用IEL1=ALL。如果是GUI操作,可以把IEL1设成P,然后在屏幕上点选。
DX, DY, DZ:每次复制时,节点在X、Y、Z方向的几何位移。这是最直观的——你要把单元往哪挪,就填对应的值。注意:如果不填DX/DY/DZ,那复制出来的单元和原件位置完全重叠,一般不是你要的效果。
剩下几个增量参数:MINC(材料号增量)、TINC(类型号增量)、RINC(实常数号增量)、CINC(单元坐标系号增量)、SINC(截面ID增量)。大多数情况不需要改,保持默认0就行。只有当你复制后需要给新单元赋予不同材料时,才设MINC=1。
实操案例1:复制一组梁单元
假设你建了一根悬臂梁,单元编号1~20,节点编号1~25,想沿X轴每隔5米复制一根,共做5根(原件+4根副本)。命令如下:
EGEN, 5, 25, 1, 20, 1, 0, 0, 0, 0, 0, 5, 0, 0解释:ITIME=5(共5根),NINC=25(节点号每次加25,避免和前面的冲突),IEL1=1, IEL2=20, IEINC=1(复制1到20号单元,步长1),DX=5(X方向移动5米)。剩下的增量全为0。
跑完这个命令,你会得到5根梁,节点号分别是1~25,26~50,51~75……单元号1~20(原件),21~40(第一根副本),41~60(第二根副本)……注意,单元号是自动连续生成的,不需要你手动设。
踩坑提醒:如果NINC设得太小,新节点号和现有节点号重叠,ANSYS会报错“Node number already exists”。解决办法:先*GET, max_node, NODE, 0, NUM, MAX获取当前最大节点号,然后NINC设成max_node+1。
FILL的作用是在两个已有节点之间自动生成一串线性插值的节点。做网格过渡、边界层划分时特别有用。
命令格式:
FILL, NODE1, NODE2, NFILL, NSTRT, NINC, ITIME, INC, SPACENODE1, NODE2:起始节点和终止节点。比如节点10和节点20,你想在它们之间插点。
NFILL:要填充的节点数量。如果不填,默认为|NODE2-NODE1|-1。比如10和20相差10,默认填充9个节点(位置均匀分布)。
NSTRT:第一个填充节点的编号。默认是NODE1 + NINC。建议手动指定,否则容易乱。
NINC:每个填充节点之间的编号增量。默认是(NODE2-NODE1)/(NFILL+1)的整数部分。如果这个值算出来是0,NINC会被设为1。
ITIME, INC:重复填充操作ITIME次,每次将NODE1、NODE2和NSTRT增加INC。默认都是1。这个功能用于批量生成多条线。
SPACE:间距比。最后一段与第一段的长度比值。默认1.0,均匀分布。如果SPACE=2.0,那么最后一段长度是第一段的2倍,从NODE1到NODE2越来越疏。反过来SPACE=0.5则越来越密。
实操案例2:在两点之间均匀插入5个节点
已有节点1和节点100,想在中间均匀插5个点,节点编号从10开始,每次增1:
FILL, 1, 100, 5, 10, 1执行后,节点位置:1(原始),10、11、12、13、14(填充),100(原始)。注意,填充节点会自动按线性插值计算坐标,不需要你操心。
实操案例3:非均匀填充(边界层加密)
做流体边界层时,需要靠近壁面密、远离壁面疏。设节点1在壁面,节点20在边界层外缘,中间填充8个节点,希望间距比SPACE=0.8(越往外越密?不对,SPACE<1是递减,从密到疏;>1是从疏到密)。边界层通常靠近壁面密,所以SPACE应该大于1?等等,仔细想:如果SPACE=2.0,最后一段长度是第一段的2倍,意味着从NODE1到NODE2越来越疏——壁面处密,外侧疏,正是边界层要的效果。所以设SPACE=2.0:
FILL, 1, 20, 8, 2, 1, 1, 1, 2.0填充节点位置会自动按等比数列分布。实测用这个命令,边界层网格质量比均匀划分好很多,收敛速度能快30%。
常见错误:如果NODE1和NODE2在圆柱坐标系下角度跨越180°(比如从-170°到+170°),直接FILL会得到错误的位置。这时需要先用CSCIR,1命令设置圆柱坐标系跨越方式,或者把节点转换到笛卡尔坐标下再填充。
这两个命令经常一起用。举个例子:你要建一个2D平板,X方向10个节点、Y方向8个节点。可以先建第一行节点(用FILL),再复制成8行(用EGEN)。
实操案例4:生成矩形平面网格
步骤1:先定义左下角节点1,右下角节点11(X方向距离10个单位)。
N, 1, 0, 0, 0N, 11, 10, 0, 0步骤2:填充中间9个节点(X方向均匀分布):
FILL, 1, 11, 9, 2, 1现在X方向有11个节点(1~11),Y=0。
步骤3:用EGEN把这一行节点向上复制8份(Y方向每次移动1个单位),同时生成单元。先创建第一行单元(假设用平面单元PLANE182,连接节点1-2-12-11之类),但更简单的方法是先用NGEN复制节点,再用EGEN复制单元。这里展示纯节点复制:
NGEN, 8, 11, 1, 11, 1, 0, 1, 0这条命令将节点1~11复制8次,每次节点号加11,Y方向移动1。结果得到节点1~11(第1行),12~22(第2行),直到第8行的节点78~88。
步骤4:创建单元。写一个循环,或者手动用E命令连接相邻4个节点。最后你得到10×7=70个单元。
整个过程不到10行命令,比GUI点鼠标快10倍。
ANSYS的界面单元(如INTER192~195)用于模拟接触或层合结构。用EGEN复制时有个坑:这些单元的节点连接顺序必须从底面开始。如果你复制出来的界面单元方向反了,接触算出来全是错的。
解决办法:复制前,确认原单元的节点顺序正确(比如INTER192的节点I、J、K、L、M、N,其中I-J-K-L是底面,M-N-O-P是顶面)。复制后,用CHECK, ELEMENT命令验证单元法向。如果发现方向反了,用ENORM命令翻转。
个人经验:去年做一个分层复合材料模型,需要用EGEN把一组界面单元复制到20层。第一次复制后计算总不收敛,查了半天发现是第三层以后的界面单元法向全反了。后来我在EGEN命令里加了CINC参数,每次复制同时改变单元坐标系号(CINC=1),然后单独调整每个坐标系的朝向。虽然麻烦,但算出来结果就对了。

| 命令 | 关键参数 | 作用 | 默认值 |
|---|---|---|---|
| EGEN | ITIME | 复制总次数(含原件) | 无,必须>1 |
| EGEN | NINC | 节点号每次增量 | 无 |
| EGEN | DX,DY,DZ | 几何位移 | 0 |
| FILL | NFILL | 填充节点数 | |NODE2-NODE1|-1 |
| FILL | SPACE | 间距比(>1由密到疏) | 1.0 |
| FILL | NINC | 节点编号增量 | 自动计算 |
最后说句大实话:EGEN和FILL这两个命令,用好了能让你从重复的机械操作中解放出来。但刚上手时,建议先在简单模型上试一遍——比如只有10个节点的小网格——确认参数效果后再应用到实际项目。2026年了,虽然Workbench的“Pattern”功能也能做类似操作,但命令流的可控性和批处理能力依然是APDL的独门优势。多练几次,你会发现建模速度快得像开挂。
武汉格发信息技术有限公司,格发许可优化管理系统可以帮你评估贵公司软件许可的真实需求,再低成本合规性管理软件许可,帮助贵司提高软件投资回报率,为软件采购、使用提供科学决策依据。支持的软件有: CAD,CAE,PDM,PLM,Catia,Ugnx, AutoCAD, Pro/E, Solidworks 等。