ANSYS第3章 网格划分技术及技巧(完全版)

更新时间:2024-06-07 02:35:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

ANSYS 入门教程 (5) - 网格划分技术及技巧之

网格划分技术及技巧、网格划分控制及网格划分高级技术

第 3 章 网格划分技术及技巧

3.1 定义单元属性

单元类型 / 实常数 / 材料属性 / 梁截面 / 设置几何模型的单元属性 3.2 网格划分控制

单元形状控制及网格类型选择 / 单元尺寸控制 / 内部网格划分控制 / 划分网格 3.3 网格划分高级技术

面映射网格划分 / 体映射网格划分 / 扫掠生成体网格 / 单元有效性检查 / 网格修改

3.4 网格划分实例

基本模型的网格划分 / 复杂面模型的网格划分 / 复杂体模型的网格划分

创建几何模型后,必须生成有限元模型才能分析计算,生成有限元模型的方法就是对几何模型进行网格划分,网格划分主要过程包括三 个步骤:

⑴ 定义单元属性

单元属性包括:单元类型、实常数、材料特性、单元坐标系和截面号等。 ⑵ 定义网格控制选项

★ 对几何图素边界划分网格的大小和数目进行设置; ★ 没有固定的网格密度可供参考;

★ 可通过评估结果来评价网格的密度是否合理。 ⑶ 生成网格

★ 执行网格划分,生成有限元模型; ★ 可清除已经生成的网格并重新划分; ★ 局部进行细化。 3.1 定义单元属性 一、定义单元类型 1. 定义单元类型

命令:ET, ITYPE, Ename, KOP1, KOP2, KOP3, KOP4, KOP5, KOP6, INOPR ITYPE - 用户定义的单元类型的参考号。 Ename - ANSYS 单元库中给定的单元名或编号,它由一个类别前缀和惟一的编号组成,类别前缀可以省略,而仅使用单元编号。 KOP1~KOP6 - 单元描述选项,此值在单元库中有明确的定义,可参考单元手册。也可通过命令KEYOPT进行设置。

INOPR - 如果此值为 1 则不输出该类单元的所有结果。

例如:

et,1,link8 ! 定义 LINK8 单元,其参考号为 1;也可用 ET,1,8 定义 et,3,beam4 ! 定义 BEAM4 单元,其参考号为 3;也可用 ET,3,4 定义

2. 单元类型的 KEYOPT

命令:KEYOPT, ITYPE, KNUM, VALUE

ITYPE - 由ET命令定义的单元类型参考号。 KNUM - 要定义的 KEYOPT 顺序号。 VALUE - KEYOPT 值。

该命令可在定义单元类型后,分别设置各类单元的 KEYOPT 参数。 例如:

et,1,beam4 ! 定义 BEAM4 单元的参考号为 1 et,3,beam189 ! 定义 BEAM189 单元的参考号为 3

keyopt,1,2,1 ! BEAM4 单元考虑应力刚度时关闭一致切线刚度矩阵 keyopt,3,1,1 ! 考虑 BEAM189 的第 7 个自由度,即翘曲自由度

! 当然这些参数也可在 ET 命令中一并定义,如上述四条命令与下列两条命令等效: et,1,beam4,,1 et,3,beam189,1

3. 自由度集

命令:DOF, Lab1, Lab2, Lab3, Lab4, Lab5, Lab6, Lab7, Lab8, Lab9, Lab10 4. 改变单元类型 命令:ETCHG, Cnv

5. 单元类型的删除与列表

删除命令:ETDELE, ITYP1, ITYP2, INC 列表命令:ETLIST, ITYP1, ITYP2, INC 二、 定义实常数 1. 定义实常数

命令:R,NSET,R1,R2,R3,R4,R5,R6 续:RMORE,R7,R8,R9,R10,R11,R12 ......

其中:

NSET - 实常数组号(任意),如果与既有组号相同,则覆盖既有组号定义的实常数。

R1~R12 - 该组实常数的值。 使用 R 命令只能一次定义 6 个值,如果多于 6 个值则采用续行命令 RMORE 增加另外的值。每重复执行 RMORE 一次,则该组实常数增加 6 个值,如 7~12、13~18、19~24 等。 ★ 各类单元有不同的实常数值,其值的输入必须按单元说明中的顺序;

★ 如果实常数值多于单元所需要的,则仅使用需要的值;如果少于所需要的,则以零值补充。

★ 一种单元可有多组实常数,也有一些单元不需要实常数 (如实体单元)。

例如 BEAM4 单元,需要的实常数值有 12 个: AREA、IZZ、IYY、TKZ、TKY、THETA 和 ISTRN、IXX、SHEARZ、SHEARY、SPIN、ADDMAS 设采用直径为 0.1m 的圆杆,其实常数可定义为: D=0.1

PI=acos(-1) a0=pi*d*d/4 I0=pi*D**4/64

IX=pi*D**4/32

R,3,a0,i0,i0,d,d,0 ! 定义第 3 组实常数的 AREA、IZZ、IYY、TKZ、TKY、THETA Rmore,0,ix,0,0,0,2.0 ! 定义第 3 组实常数的其它实常数值

2. 变厚度壳实常数定义

命令:RTHICK,Par,ILOC,JLOC,KLOC,LLOC Par - 节点厚度的数组参数(以节点号引用),如 mythick(19) 表示在节点 19 的壳体厚度。

ILOC - 单元I节点的厚度在实常数组中的位置,缺省为 1。 JLOC---单元J节点的厚度在实常数组中的位置,缺省为 2。 KLOC---单元K节点的厚度在实常数组中的位置,缺省为 3。 LLOC---单元L节点的厚度在实常数组中的位置,缺省为 4。

该命令后面的四个参数顺序与节点厚度的关系比较复杂,例如设某个单元:节点厚度数组为 MYTH;单元节点顺序: I J K L;节点编号: NI NJ NK NL; RTHICK 命令参数: 3 2 4 1;IJKL 节点厚度: MYTH(NL)、MYTH(NJ)、MYTH(NI)、MYTH(NK)。 典型的如壳厚度为位置的函数,其命令流如下: finish $ /clear $ /PREP7

ET,1,63 $ blc4,,,10,10 $ ESIZE,0.5 $ AMESH,1

MXNODE = NDINQR(0,14) ! 得到最大节点号

*DIM,THICK,,MXNODE ! 定义数组,以存放节点厚度 *DO,i,1,MXNODE ! 以节点号循环对厚度数组赋值 THICK(i) = 0.5 + 0.2*NX(i) + 0.02*NY(i)**2

*ENDDO ! 结束循环 RTHICK,THICK(1),1,2,3,4 ! 赋壳厚度 /ESHAPE,1.0 $ eplot !带厚度显示壳单元 3. 实常数组的删除与列表

删除命令:RDELE, NSET1, NSET2, NINC

列表命令:RLIST, NSET1, NSET2, NINC

其中 NSET1,NSET2,NINC - 实常数组编号范围和编号增量, 缺省时 NSET2 等于 NSET1 且 NINC=1。NSET1 也可为 ALL。

三、 材料属性

每一组材料属性有一个材料参考号,用于识别各个材料特性组。一个模型中可有多种材料特性组。

1. 定义线性材料属性

命令:MP,Lab,MAT,C0,C1,C2,C3,C4 Lab - 材料性能标识,其值可取:

EX:弹性模量(也可为 EY、EZ)。

ALPX:线膨胀系数(也可为 ALPY、ALPZ)。 PRXY:主泊松比(也可为 PRYZ、PRXZ)。 NUXY:次泊松比(也可为 NUYZ、NUXZ)。 GXY:剪切模量(也可为 GYZ、GXZ)。 DAMP:用于阻尼的K矩阵乘子,即阻尼比。 DMPR:均质材料阻尼系数。 MU:摩擦系数。

DENS:质量密度。

MAT - 材料参考号,缺省为当前的 MAT 号(由 MAT 命令确定)。

C0 - 材料属性值,如果该属性是温度的多项式函数,则此值为多项式的常数项。 C1~C4 - 分别为多项式中的一次、二次、三次、四次项系数,如为 0 或空,则定义一个常数的材料性能。

2. 定义线性材料属性的温度表

命令:MPTEMP, STLOC, T1, T2, T3, T4, T5, T6

3. 定义与温度对应的线性材料特性

命令:MPDATA, Lab, MAT, STLOC, C1, C2, C3, C4, C5, C6 4. 复制线性材料属性组

命令:MPCOPY, --, MATF, MATT 5. 改变指定单元的材料参考号 命令:MPCHG, MAT, ELEM 6. 线性材料属性列表和删除

列表命令:MPLIST, MAT1, MAT2, INC, Lab, TEVL 删除命令:MPDELE, Lab, MAT1, MAT2,I NC 7. 修改与线胀系数相关的温度 命令:MPAMOD, MAT, DEFTEMP 8. 计算生成线性材料温度表

命令:MPTGEN, STLOC, NUM, TSTRT, TINC 9. 绘制线性材料特性曲线

命令:MPPLOT, Lab, MAT, TMIN, TMAX, PMIN, PMAX 10. 设置材料库读写的缺省路径 命令:/MPLIB, R-W_opt, PATH 11. 读入材料库文件

命令:MPREAD, Fname, Ext, --, LIB 12. 将材料属性写入文件

命令:MPWRITE, Fname, Ext, --, LIB, MAT 13. 激活非线性材料属性的数据表

命令:TB, Lab, MAT, NTEMP, NPTS, TBOPT, EOSOPT 14. 定义 TB 温度值

命令:TBTEMP, TEMP, KMOD

15. 定义 TB 数据表中的数据

命令:TBDATA, STLOC, C1, C2, C3, C4, C5, C6 16. 定义非线性数据曲线上的一个点 命令:TBPT, Oper, X, Y

17. 非线性材料数据表的删除和列表

删除命令:TBDELE, Lab, MAT1, MAT2, INC 列表命令:TBLIST, Lab, MAT 18. 非线性材料数据表的绘图

命令:TBPLOT, Lab, MAT, TBOPT, TEMP, SEGN 四、 梁截面

★ BEAM18x 单元,需定义单元的横截面(称为梁截面); ★ BEAM44也可使用梁截面也可输入截面特性实常数;

★ 仅 BEAM18x 可使用多种材料组成的截面;

★ 仅 BEAM18x 可使用变截面梁截面,而 BEAM44 可输入实常数。 1. 定义截面类型和截面 ID

命令:SECTYPE,SECID,Type,Subtype,Name,REFINEKEY SECID - 截面识别号,也称为截面 ID 号。 Type - 截面用途类型,其值可取:

BEAM:定义梁截面,应用于等截面时,见下文。 TAPER:定义渐变梁截面(变截面梁)。 SHELL:定义壳

PRETENSION:定义预紧截面 JOINT:连接截面,如万向铰。

Subtype - 截面类型,对于不同的 Type 该截面类型不同,如:

当 Type=BEAM 时,Subtype 可取:

RECT:矩形截面; QUAD:四边形截面; CSOLID:实心圆形截面; CTUBE:圆管截面;CHAN:槽形截面; I:工字形截面; Z:Z形截面; L:L形截面; T:T形截面; HATS:帽形截面; HREC:空心矩形或箱形; ASEC:任意截面; MESH:自定义截面

当 Type=JOINT(有刚度可大角度旋转)时,Subtype 可取: UNIV:万向铰; REVO:销铰或单向铰;

Name - 8 个字符的截面名,字符可包含字母和数字。

REFINEKEY - 设置薄壁梁截面网格的精细水平,有 0(缺省)~5(最精细)六个水平。

2. 定义梁截面几何数据(Type = BEAM)

命令:SECDATA, VAL1, VAL2, VAL3, VAL4, VAL5, VAL6, VAL7, VAL8, VAL9, VAL10 其中 VAL1~VAL10 为数值,如厚度、边长、沿边长的栅格数等,每种截面的值是不同的。 ANSYS 定义了 11 种常用的截面类型,每种截面输入数据如下: ⑴ Subtype = RECT: 矩形截面 输入数据:B,H,Nb,Nh

B - 截面宽度。 H - 截面高度。

Nb - 沿宽度 B 的栅格数(cell),缺省为 2。 Nh - 沿高度 H 的栅格数,缺省为 2。

⑵ Subtype = QUAD:四边形截面

输入数据:yI, zI, yJ, zJ, yK, zK, yL, zL, Ng, Nh yI,zI,yJ,zJ,yK,zK,yL,zL - 各点坐标值。 Ng,Nh - 沿 g 和 h 的栅格数,缺省均为 2。 如果输入一个相同的坐标,可以退化为三角形。

⑶ Subtype = CSOLID:实心圆截面 输入数据:R, N, T

R - 半径。

N - 圆周方向划分的段数,缺省为 8。 T - 半径方向划分的段数,缺省为 2。

⑷ Subtype=CTUBE:圆管截面 输入数据:Ri, R0, N Ri - 管的内半径。 R0 - 管的外半径。

N - 沿圆周的栅格数,缺省为 8。

⑸ Subtype = CHAN:槽形截面 输入数据:W1, W2, W3, t1, t2, t3 W1,W2 - 翼缘宽度。 W3 - 全高。

t1,t2 - 翼缘厚度。 t3 - 腹板厚度

⑹ Subtype = I: 工字形截面 输入数据:W1,W2,W3,t1,t2,t3 W1,W2 - 翼缘宽度。 W3 - 全高。 t1,t2 - 翼缘厚度。 t3 - 腹板厚度

⑺ Subtype = Z: Z 形截面

输入数据:W1, W2, W3, t1, t2, t3 W1,W2 - 翼缘宽度。 W3 - 全高。 t1,t2 - 翼缘厚度。 t3 - 腹板厚度

⑻ Subtype = L: L 形截面 输入数据:W1, W2, t1, t2 W1,W2 - 腿长。 t1,t2 - 腿厚度。

⑼ Subtype = T:T 形截面 输入数据:W1,W2,t1,t2 W1 - 翼缘宽长。 W2 - 全高。

t1 - 翼缘厚度。 t2 - 腹板厚度。

⑽ Subtype = HATS: 帽形截面

输入数据:W1,W2,W3,W4,t1,t2,t3,t4,t5 W1,W2 - 帽沿宽度。 W3 - 帽顶宽度。 W4 - 全高。 t1,t2 - 帽沿厚度。 t3 - 帽顶厚度。

t4,t5 - 腹板厚度。

⑾ Subtype = HREC: 空心矩形截面或箱形截面 输入数据:W1,W2,t1,t2,t3,t4 W1 - 截面全宽。 W2 - 截面全高。 t1,t2,t3,t4 - 壁厚。

⑿ Subtype = ASEC:任意截面

输入数据:A, Iyy, Iyz, Izz, Iw, J, CGy, CGz, SHy, SHz A - 截面面积。 Iyy - 绕 y 轴惯性矩。 Iyz - 惯性积。 Izz - 绕 z 轴惯性矩。 Iw - 翘曲常数。 J - 扭转常数。 Cgy - 质心的 y 坐标。 CGz - 质心的 z 坐标。 SHy - 剪切中心的 y 坐标。 SHz - 剪切中心的 z 坐标。

⒀ Subtype = MESH: 自定义截面

当截面不是常用的 11 个截面时,可采用自定义截面。自定义截面具有很大的灵活性,可定义任意形状的截面,材料也可不同,因此对于梁截面该自定义截面可满足各种情况下的使用要求。

自定义截面要使用 SECWRITE 命令和 SECREAD 命令。 梁截面定义示例: finish $ /clear $ /prep7

sectype,1,beam,rect ! 定义矩形截面,ID=1 secdata,2,3

sectype,2,beam,quad ! 定义四边形截面,ID=2

secdata,-1,-1,1.2,-1.2,1.4,1.3,-1.1,1.2

sectype,3,beam,csolid ! 定义实心圆截面,ID=3 secdata,4

sectype,4,beam,ctube ! 定义圆管截面,ID=4 secdata,8,9

sectype,5,beam,chan ! 定义槽形截面,ID=5 secdata,80,90,160,10,12,8

sectype,6,beam,i ! 定义工字形截面,ID=6 secdata,80,60,150,10,8,12

sectype,7,beam,z ! 定义 Z 形截面,ID=7 secdata,70,80,120,10,10,8

sectype,8,beam,l ! 定义 L 形截面,ID=8 secdata,120,70,8.5,8.5

sectype,9,beam,t ! 定义 T 形截面,ID=9 secdata,120,140,10,12

sectype,10,beam,hats ! 定义帽形截面,ID=10 secdata,40,50,60,130,10,12,16,10,10

sectype,11,beam,hrec ! 定义箱形截面,ID=11 secdata,40,50,10,10,10,10

! 可采用 SECPLOT,ID(ID 输入相应的号)查看截面及数据。 3. 定义变截面梁几何数据(Type = TAPER)

命令:SECDATA, Sec_IDn, XLOC, YLOC, ZLOC

Sec_IDn - 已经定义的梁截面识别号,用于端点 1(I)和 2(J)截面 ID。 XLOC,YLOC,ZLOC - 整体坐标系中 Sec_IDn 的位置坐标。

变截面梁的定义首先需要定义两个梁截面,然后根据拟定义的变截面梁再定义各个梁截面 ID 所在的空间位置。两端的两个截面拓扑关系相同,即必须具有相同的 Subtype 类型、相同的栅格数和相同的材料号。

例如下面给出了工字形截面的变截面应用示例。

finish $ /clear $ /prep7 sectype,1,beam,I

secdata,160,120,200,10,10,8 ! 定义梁截面 ID=1 及其数据 sectype,2,beam,I

secdata,320,240,300,16,16,12 ! 定义梁截面 ID=2 及其数据

! 创建 3 个关键点和一条线

k,1 $ k,2,800,300 $ k,100,400,400 $ l,1,2

sectype,3,taper ! 定义变截面梁 Id=3

secdata,1,kx(1),ky(1),kz(1) ! 一个端点的截面采用 ID1,位置用坐标给出 secdata,2,kx(2),ky(2),kz(2) ! 另一端点的截面采用 ID2,位置用坐标给出 et,1,beam189 $ mp,ex,1,2.1e5 $ mp,prxy,1,0.3 ! 定义单元及材料属性

lesize,all,,,8 $ latt,1,,1,,100,,3 $ lmesh,all! 网分控制、为线赋单元属性、网分

/eshape,1 $ ep

lot ! 查看单元形

4. 定义截面偏移

当 Type=BEAM 时命令:

SECOFFSET, Location, OFFSETY, OFFSETZ, CG-Y, CG-Z, SH-Y, SH-Z Location - 偏移有 4 个选择位置,分别为: CENT:梁节点偏移到质心(缺省)。

SHRC:梁节点偏移到剪心。

ORIGIN:梁节点偏移到横截面原点。 USER:梁节点偏移到用户指定位置(相对横截面原点),由 OFFSETY,OFFSETZ 确定。

OFFSETY,OFFSETZ - 仅当 Location=USER 时,梁节点相对于横截面原点的偏移量。

CG-Y, CG-Z,SH-Y,SH-Z - 用于覆盖程序自动计算的质心和剪心位置。高级用户可用其创建复合材料的横截面模型。还可使用SECCONTROL 命令控制横截面剪切刚度。 当 Type=SHELL 时命令:

SECOFFSET, Location,OFFSET

Location - 偏移也有 4 个选择位置,分别为: TOP:壳节点偏移到顶面。 MID:壳节点偏移到中面。 BOT:壳节点偏移到底面。

USER:用户定义,偏移梁由 OFFSET 指定。

OFFSET - 仅当 Location=USER 时,相对于中面的偏移距离。

5. 梁截面特性列表

命令:SLIST, SFIRST, SLAST, SINC, Details, Type 6. 删除所定义的截面

命令:SDELETE, SFIRST, SLAST, SINC, KNOCLEAN

其中 KNOCLEAN 为预紧单元清除参数,如为 0 则删除预紧单元并通过 PMESH 再形成;如为 1 则不删除预紧单元。其余参数同 SLIST 命令。 7. 绘制所定义截面

命令:SECPLOT, SECID, VAL1, VAL2 SECID - 截面 ID 号。

VAL1,VAL2 - 输出控制参数。

对 BEAM:VAL1 = 0 则不显示栅格;VAL1 = 1 则现实栅格。 对 SHELL:VAL1 和 VAL2 表示显示层号的范围。 8. 自定义截面的存盘和读入

存盘命令:SECWRITE, Fname, Ext, --, ELEM_TYPE 读入命令:SECREAD, Fname, Ext, --, Option Fname - 文件名及其路径(可达 248 个字符)。 Ext - 文件名的扩展名,缺省为“SECT”。

ELEM_TYPE - 单元类型属性指示器,此参数意义不大。

Option - 从何处读入的控制参数。如 Option=LIBRARY(缺省)则从截面库中读入截面数据。如 Option=MESH 则从用户网分的截面文件中读入,该文件包含了栅格和栅点等数据。

创建自定义截面的基本步骤有:

① 创建 2D 面,可完全表达截面形状。

② 定义且仅能定义 PLANE82 或 MESH2000 单元,如果有多种材料则定义材料号。 ③ 定义网分控制并划分网格。

④ 用 SECWRITE 命令写入文件。

⑤ 用 SECTYPE 和 SECREAD 命令定义截面 ID 等。 示例:

截面由两种材料组成,其分界线如图中所示,其自定义截面命令流如下: ! EX3.2 自定义多种材料截面 finish $ /clear $ /prep7

Ro=1.5 $ Ri=1.0 ! 定义两个半径

csys,1 $ cyl4,,,ri $ cyl4,,,ro ! 设置柱坐标系,创建两个圆面 aptn,all ! 作面分割运算 wprota,,90$asbwa,all ! 切分面 wprota,,,90 $ asbw,all $ wpcsys ! 切分面

et,1,plane82 ! 定义单元类型为 PLANE82

mymat1=4 $ mymat2=7 ! 定义两个材料参数,分别赋值 4 和 7 mp,ex,mymat1,1.0 $ mp,ex,mymat2,2.0 ! 定义材料参考号,具体特性可任意 asel,s,loc,x,0,ri $ aatt,mymat1,,1 ! 内部圆面为材料 mymat1 asel,s,loc,x,ri,ro $ aatt,mymat2,,1 ! 外部环面为材料 mymat2 allsel$esize,0.25 $ mshape,0,2d ! 定义网格控制、单元形状 mshkey,1 $ amesh,all ! 定义网格划分方式并网分 secwrite,mycsolid,sect ! 将截面写入 mycsolid.sect 文件 ! 下面准备读入截面并使用

finish $ /clear $ /prep7

et,1,beam189 ! 定义单元类型为 BEAM189 mym1=4 $ mym2=7 ! 定义两个材料参数,此值与 MYMAT 对应

mp,ex,mym1,3.0e10

mp,prxy,mym1,0.167 ! 定义材料参考号 MYM1 和具体特性值 mp,ex,mym2,2.1e11

mp,prxy,mym2,0.3 ! 定义材料参考号 MYM2 和具体特性值 sectype,1,beam,mesh ! 定义用户梁截面

secread,mycsolid,sect,,mesh ! 读入 mysolid.sect 文件 k,1$k,2,,,10 $ l,1,2 $ lesize,all,,,20 ! 创建关键点和线,及线的网格划分控制 latt,,,1,,,,1 ! 此处采用了缺省材料参考号,即便指定材料参考号也不起作用 lmesh,all $ /eshape,1 ! 划分网格,打开单元形状

/pnum,mat,1$ eplot ! 显示单元材料参考号,并显示单元

特别注意的是材料参考号在 SECWRITE 之前就确定了,而在使用该截面时只能使用相同的材料参考号。但在前者中可任意设置材料特性值,也就是说在前者中的材料具体特性值没有意义,仅材料参考号有意义。

9. 定义层壳单元的数据(Type=SHELL) 命令:SECDATA, TK, MAT, THETA, NUMPT

该命令仅使用于 SHELL131、SHELL132、SHELL181、SHELL208、SHELL209 单元。 10. 定义预紧截面的数据(Type= PRETENSION) 命令:SECDATA, node, nx, ny, nz

修改预紧截面数据可采用 SECMODIF 命令。 11. 定义连接数据(Type=JOINT)

当 Subtype= REVO 时命令:SECDATA ,,,angle1

当 Subtype= UNIV 时命令:SECDATA ,,,angle1,,angle3 五、 设置几何模型的单元属性

前面介绍了如何定义单元类型、实常数、材料属性、梁截面等单元属性,但与几何模型还没有任何关系。

如何将这些属性与几何模型关联呢?这就是对几何模型进行单元属性的设置,即将这些属性赋予几何模型。

赋予几何模型单元属性,仅 4 个命令:

KATT, LATT, AATT, VATT(简称 xATT 命令)。 1. 设置关键点单元属性

命令:KATT, MAT, REAL, TYPE,ESYS

其中 MAT, REAL, TYPE, ESYS 分别为材料号、实常数号、单元类型号、坐标系编号。 该命令为所选择的所有关键点设置单元属性,而通过这些关键点复制生成的关键点也具有相同的属性。如果关键点在划分网格时没有设置属性, 则其属性由当前的“ MAT、REAL、TYPE、ESYS”等命令设置。

在划分网格前如要改变其属性,只需重新执行 KATT 命令设置,

如果其命令参数为 0 或空,则删除相关的属性。

如果 MAT,REAL,TYPE,ESYS 参数中任意一个定义为 -1,则设置保持不变。 2. 设置线的单元属性

命令:LATT, MAT, REAL, TYPE, --, KB, KE, SECNUM

MAT,REAL,TYPE - 同 KATT 中的参数。 KB,KE - 线始端和末端的方位关键点。ANSYS 在对梁划分网格时,使用方位关键点确定梁截面的方向。对于梁截面沿线保持同一方位时,可仅使用 KB 定位;预扭曲梁(麻花状)可能需要两个方位关键点定位。 SECNUM - 梁截面 ID 号。

该命令为所选择的线设置单元属性,但由 KB 和 KE 指定的值仅限于所选择的线,因此通过这些线复制生成的线则不具有这些属性(即 KB 或 KE 不能一同复制)。但如不使用 KB 和 KE 时,通过这些线复制生成的线具有同样的属性。不指定单元属性、修改其单元属性与 KATT 命令类似,可参照处理。

在命令 LATT 中如果没有指定 KB 和 KE 则采用缺省的截面方位,缺省截面方位的确定方法是截面的xoz坐标平面总是垂直总体直角坐标系的 XOY 平面,且截面至少有一个坐标轴与总体坐标轴方向相同或接近。

如果使用 KB 和 KE 确定截面方位,则始点截面 yoz 平面垂直于 KP1、KP2 和 KB 组成的平面且截面的 z 轴指向 KB 侧;同理,末端截面截面 yoz 平面也垂直于 KP1、KP2 和 KE 组成的平面且截面的 z 轴指向 KE 侧。如果 KB 和 KE 在不同的方向,则截面方位是变化的,沿线形成麻花状截面。

finish $ /clear $ /prep7

et,1,beam189 $ mp,ex,1,2.1e5 $ mp,prxy,1,0.3 ! 定义单元类型和材料属性

sectype,1,beam,i$secdata,100,40,160,10,10,8 ! 定义梁截面 ID=1 和截面数据 l0=1000 $ dl=500 $ dxc=400 ! 定义几个参数 k,1 $ k,2,,,l0 $ l,1,2 ! 创建关键点和线 k,100,,dl $ k,200,dxc,-dl $ k,300,2*dxc,dl ! 定义定位关键点 k,301,2*dxc+dl $ k,400 $ k,500,8*dxc

lgen,5,1,,,dxc ! 复制生成5条线 lsel,s,,,1 $latt,1,,1,,100,,1 ! 线 1 定位点 KB=100 lsel,s,,,2 $latt,1,,1,,200,,1 ! 线 2 定位点 KB=200

lsel,s,,,3 $latt,1,,1,,300,301,1 ! 线 3 定位点 KB=300, KE=301 lsel,s,,,4 $latt,1,,1,,400,,1 ! 线 4 定位点 KB=400 lsel,s,,,5 $latt,1,,1,,500,,1 ! 线 5 定位点 KB=500 lsel,all $ lesize,all,,,50 ! 定义网格划分控制 lmesh,all $ /eshape,1 $ eplot ! 划分网格并显示

3. 设置面的单元属性

命令:AATT, MAT, REAL, TYPE, ESYS, SECN MAT,REAL,TYPE - 同 KATT 中的参数。

SECN - 截面 ID 号(由 SECTYPE 命令定义)。

该命令为所选择的面设置单元属性,通过这些面复制生成的面也具有同样的属性。 4. 设置体的单元属性

命令:VATT, MAT, REAL, TYPE, ESYS 其中参数与 KATT 命令中的参数意义相同。

上述 4 个命令中,LATT 略复杂些,主要是定义梁截面的方位,其余命令则相对容易。xATT 命令都是对所选择的没有划分网格的几何图素设置的单元属性,一旦划分网格,不容许再用 xATT 命令设置属性。 3.2 网格划分控制

在 3.1 节中介绍了如何定义单元属性和怎样赋予几何图素这些性质,这里则介绍如何控制网格密度或大小、划分怎样的网格及如何实施划分网格等问题。

但是网格划分控制不是必须的,因为采用缺省的网格划分控制对多数模型都是合适的;如果不设置网格划分控制则 ANSYS 自动采用缺省设置对网格进行划分。 一、单元形状控制及网格类型选择 1. 单元形状控制

命令:MSHAPE, KEY, Dimension

KEY - 划分网格的单元形状参数,其值可取: KEY=0:如果 Dimension=2D 则用四边形单元划分网格;如果 Dimension=3D 则用六面体单元划分网格。 KEY=1:如果 Dimension=2D 则用三角形单元划分网格;如果 Dimension=3D 则用四面体单元划分网格。

在设置该命令的参数时,应考虑所定义的单元类型是否支持这种单元形状。 2. 网格类型选择

命令:MSHKEY, KEY

其中 KEY 表示网格类型参数,其值可取:

KEY=0(缺省):自由网格划分(free meshing)

KEY=1:映射网格划分(mapped meshing)

KEY=2:如果可能则采用映射网格划分,否则采用自由网格划分。 单元形状和网格划分类型的设置共同影响网格的生成,二者的组合不同,所生成的网格也不相同。

ANSYS支持的单元形状和网格划分类型组合

没有指定单元形状和网格划分类型时将发生的情况

3. 中间节点的位置控制 命令:MSHMID, KEY

其中 KEY 为边中间节点位置控制参数,其值可取:

KEY=0(缺省):边界区域单元边上的中间节点与区域线或面的曲率一致。 KEY=1:设置所有单元边上的中间节点使单元边为直的,允许沿曲线进行粗糙的网格划分。

KEY=2:不生成中间节点,即消除单元的中间节点。 上述几条命令的应用示例如下命令流。

! EX3.4 A 两种单元形状和两种网格划分比较

finish $ /clear $ /prep7

et,1,plane82 ! 定义单元类型

k,1 $ k,2,8 $ k,3,7,6 $ k,4,1,6 ! 创建关键点

a,1,2,3,4 $ esize,1 ! 创建面、定义单元尺寸 mshape,0 $ mshkey,0 ! 四边形单元、自由网格划分

! mshape,0 $ mshkey,1 !四边形形状、映射网格划分

! mshape,1 $ mshkey,1 !三角形形状、映射网格划分 ! mshape,1 $ mshkey,0 !三角形形状、自由网格划分

对于中间节点的位置控制比较如下命令流所示。 ! EX3.4B 中间节点位置控制网格划分比较 finish $ /clear $ /prep7

et,1,plane82 $ cyl4,,,4,,8,60 $ lesize,all,,,2 ! 定义单元类型、创建面、设置单元尺寸

mshape,0 $ mshkey,1 ! 设置四边形单元形状、映射网格划分类型 mshmid,0 !(缺省)中间节点在曲边上,与几何模型一致 !mshmid,1 ! 中间节点在直线的单元边上,与几何模型有差别 !mshmid,2 ! 无中间节点,与几何模型有差别 amesh,all ! 划分网格

二、单元尺寸控制

单元尺寸控制命令有 DESIZE、SMRTSIZE 及 AESIZE、LESIZE、KESIZE、ESIZE 等 6 个命令。

DESIZE 命令为缺省的单元尺寸控制,通常用于映射网格划分控制,也可用于自由网格划分但此时必须关闭 SMRTSIZE 命令;

SMRTSIZE 命令仅用于自由网格划分而不能用于映射网格划分。

因此可以说映射网格划分采用 DESIZE 命令,而自由网格划分采用 SMRTSIZE 命令。 1. 映射网格单元尺寸控制的 DESIZE 命令

命令:DESIZE, MINL, MINH, MXEL, ANGL, ANGH, EDGMN, EDGMX, ADJF, ADJM MINL - 当使用低阶单元时每条线上的最小单元数,缺省为 3。 如 MINL=DEFA 则采用缺省值;

如 MINL=STAT 则列表输出当前的设置状态; 如 MINL=OFF 则关闭缺省的单元尺寸设置;

如 MNIL=ON 则重新激活缺省的单元尺寸设置(缺省时该命令是激活的)。 MINH - 当使用高阶单元时每条线上的最小单元数,缺省为 2。 ANGL - 曲线上低阶单元的最大跨角,缺省为 15°。 ANGH - 曲线上高阶单元的最大跨角,缺省为 28°。 EDGMN - 最小的单元边长,缺省则不限制。 EDGMX - 最大的单元边长,缺省则不限制。

ADJF - 仅在自由网格划分时,相近线的预定纵横比。

对 h 单元缺省为 1(等边长),对 p 单元缺省为 4。

ADJM - 仅在映射网格划分时,相邻线的预定纵横比。对h单元缺省为 4(矩形),对 p 单元缺省为 6。

DESIZE 命令的缺省设置仅在没有用 KESIZE、LESIZE、AESIZE、ESIZE 指定单元尺寸时使用,即该命令设置的级别低于上述 4 个命令(与命令的先后顺序无关)。 2. 自由网格单元尺寸控制的 SMRTSIZE 命令 命令:

SMRTSIZE, SIZLVL, FAC, EXPND, TRANS, ANGL, ANGH, GRATIO, SMHLC, SMANC, MXITR, SPRX

SIZLVL - 网格划分时的总体单元尺寸等级,控制网格的疏密程度,可取: N:智能单元尺寸等级值,其值在 1(精细)~10(粗糙)之间,此时其它参数无效。

STAT - 列表输出 SMRTSIZE 设置状态。 DEFA - 恢复缺省的 SMRTSIZE 设置值。 OFF - 关闭智能化网格划分。 3. 局部网格划分单元尺寸控制

映射网格和自由网格划分的单元尺寸控制,总体上可分别采用 DESIZE 和 SMRTSIZE 命令进行设置,以获得缺省的单元尺寸和网格。但大多数情况下仍需要深入网格划分过程,以获得理想或满意的网格和单元尺寸, 这时可通过 LESIZE、KESIZE 和 ESIZE 更多地进行控制。

⑴ 线的单元尺寸定义

命令:LESIZE, NL1, SIZE, ANGSIZ, NDIV, SPACE, KFORC, LAYER1, LAYER2, KYNDIV NL1 - 线编号,其值可取 ALL、组件名或装配名及 P 进入 GUI 选择线。 SIZE - 如 NDIV 为空,则 SIZE 为单元边长。分段数将自动根据线长计算并圆整,如 SIZE 为 0 或空,则采用 ANGSIZ 或 NDIV 参数。

ANGSIZE - 将曲线分割成许多角度,按此角度将线划分为多段。该参数仅在 SIZE 和 NDIV 为空或 0 时有效。

NDIV - 如为正则表示每条线的分段数。

SPACE - 分段的间隔比率。如为正,表示最后一个分段的长度与第 1 段长度之比(大于 1 表示单元尺寸越来越大,小于 1 表示单元尺寸越来越小)。如为负,则 |SPACE| 表示中间的分段长度与两端的分段长度之比。

KFORC - 修改线分段控制参数,仅用于 NL1=ALL 时。KFORC 可取: 0:仅修改没有指定划分段的线。 1:修改所有线。

2:仅修改划分段数小于本命令设定值的线。 3:仅修改划分段数大于本命令设定值的线。

4:仅修改 SIZE、ANGSIZ、NDIV、SPACE、LAYER1、LAYER2 不为 0 的线。 如果 KFORC=4 或 0 或空,则原有设置保持不变。 LAYER1 - 层网格控制参数,用来指定内层网格的厚度。

LAYER2 - 层网格控制参数,用于设置外层网格的厚度. KYNDIV - 当 KYNDIV=0、NO 或 OFF 时,表示 SMRTSIZE 设置无效;如果线的分段数不匹配,则映射网格划分失败。当 KYNDIV=1、YES 或 ON 时,表示 SMRTSIZE 设置优先,即对大曲率或相邻区域优先采用 SMRTSIZE 的设置。 示例:

! 下边密上边稀

finish $ /clear $ /prep7

et,1,plane82 $ blc4,,,10,10 ! 定义单元类型、创建面 lsel,s,tan1,y $ lesize,all,,,10 ! 水平线定义 10 个分段数 lsel,s,loc,x,0 $ lesize,all,,,9,1/8! 左侧线定义 SPACE=1/8

lsel,s,loc,x,10 $ lesize,all,,,9,8 ! 右侧线定义 SPACE=8,左右侧线起终点方向不同 lsel,all $ mshape,0 $ mshkey,1 ! 定义单元形状和划分类型 amesh,all

! 中间密外边稀

finish $ /clear $ /prep7

et,1,plane82 $ blc4,,,10,10 ! 定义单元类型、创建面 lsel,s,tan1,y $ lesize,all,,,10,-1/5 ! 水平线中间段是两边段的 1/5 lsel,s,tan1,x $ lesize,all,,,9,-1/8 ! 竖直线中间段是两边段的 1/8 lsel,all $ mshape,0 $ mshkey,1 ! 定义单元形状和划分类型 amesh,all

⑵ 关键点最近处单元边长定义

命令:KESIZE, NPT, SIZE, FACT1, FACT2

NPT - 关键点编号,也可为 ALL、P、组件名或装配名。

SIZE - 沿线接近关键点 NPT 处单元的边长(覆盖任何较低级的尺寸设置)。如 SIZE=0,则使用 FACT1 和 FACT2 参数。

FACT1 - 比例因子,作用于以前既有的 SIZE 上,仅在本 SIZE=0 或空时有效。 FACT2 - 比例因子,作用于与关键点 NPT 相连的线上设置的最小分段数。该参数适用于自适应网格细分,仅在本 SIZE 和 FACT1 为 0 或空时有效。 ⑶ 线划分的缺省尺寸

命令:ESIZE,SIZE,NDIV

SIZE - 线上单元边长,线的分段数根据边长自动计算。如 SIZE=0 或空则使用 NDIV 参数。

NDIV - 线上单元的分段数,如果输入了 SIZE 则该参数无效。

该命令设置区域边界线上的分段数或单元长度,也可用 LESIZE 或 KESIZE 命令设置。⑷ 面内部的单元尺寸定义

命令:AESIZE,ANUM,SIZE

ANUM - 面的编号,也可为 ALL、P、组件名或装配名。 SIZE - 单元尺寸值。

该命令对面内部的单元网格设置尺寸, 而 LESIZE、KESIZE 和 ESIZE 等则设置面边界线的分段或单元尺寸。对于没有指定单元尺寸的线和关键点,AESIZE 命令也可用于线的单元尺寸设置。

⑸ 单元尺寸定义的优先级

用 DESIZE 定义单元尺寸的优先级 (一般对应 MAP 方式),对任何给定线为: A:用 LESIZE 命令设置的划分常是高级别;

B:如果未用 LESIZE 设置划分,则用 KESIZE 定义单元尺寸;

C:如果未用 LESIZE 和 KESIZE 设置划分,则用 ESIZE 定义单元尺寸; D:如果上述都未用,则用 DESIZE 命令控制线上的单元尺寸。

用 SMETSIZE 定义单元尺寸的优先级 (一般对应 FREE 方式),,对任何给定线为: A:用 LESIZE 命令设置的划分常是高级别;

B:如果未用 LESIZE 设置划分,则用 KESIZE 定义单元尺寸;

C:如果未用 LESIZE 和 KESIZE 设置划分,则用 ESIZE 定义起始单元尺寸; D:如果上述都未用,则用 SMRTSIZE 命令控制线上的单元尺寸。

三、 内部网格划分控制

前述内容集中在几何实体模型的边界外部单元尺寸的定义上,如 KESIZE、LESIZE 和 ESIZE 命令等。然而在面的内部可采用 MOPT 命令和方法进行网格划分控制,该命令为: MOPT,Lab,Value 其中:

Lab - 选项名称

当 Lab = AORDER 时,表示划分面的顺序:Value=ON 则首先划分较小的面,即按面尺寸从小到大的顺序划分网格。缺省为 OFF。

当 Lab = QMESH 时,表示四边形面网格划分器控制: Value = DEFAULT:由系统选择四边形表面网格划分器。

Value = MAIN:采用主四边形网格划分器,如果划分失败也不更换备用四边形网格划分器。

当 Lab = PYRA 时,表示过渡金字塔单元控制。体的有些区域可用六面体网格划分,而有些复杂区域可能需要用四面体网格划分。但在同一网格中混用六面体网格和四面体网格会造成单元之间的不连续,而采用金字塔单元可解决六面体单元和四面体单元之间的连接。

当 Lab = STAT 时,表示显示 MOPT 状态。 命令为 MOPT,STAT:其它参数均无效。

当 Lab = DEFA 时,表示恢复 MOPT 命令的缺省设置。 命令为 MOPT,DEFA。 四、划分网格

划分网格主要有 xMESH 系列命令。 1. 在关键点处生成点单元

命令:KMESH, NP1, NP2, NINC

该命令在生成单元的同时,生成单元所需要的节点,并自动进行节点编号 (从最低可用节点编号开始)。如 MASS21 等单元可采用 KMESH命令。

2. 在几何线上生成线单元

命令:LMESH, NL1, NL2, NINC

该命令在线上生成线单元和所需节点,如 LINK 系列和 BEAM 系列等单元。

3. 在几何面上生成面单元

命令:AMESH, NA1, NA2, NINC

该命令在面上生成单元和所需节点,如 PLANE 系列和 SHELL 系列单元等。 如为 PLANE 系列则拟划分网格的面必须平行于总体直角坐标系的 XY 平面。 4. 在几何体上生成体单元

命令:VMESH, NV1, NV2, NINC

该命令在体上生成单元和所需节点,如 SOLID 系列单元等。其中 NX1(x=K,L,A,V) 可取 ALL、P、组件名或装配名。 网格划分的步骤总结如下: ⑴ 定义单元属性

单元类型定义如 ET 命令; 实常数定义如 R、RMORE 命令;

材料特性定义如 MP、MPTEMP 和 MPDATA、TB 和 TBDATA 等命令; 截面号定义如 SECTYPE、SECDATA 等命令。 ⑵ 赋予几何模型单元属性

xATT 系列命令,如 KATT,LATT,AATT,VATT 命令。 ⑶ 定义网格划分控制

定义单元形状和网格划分类型,如 MSHAPE 和 MSHKEY 等命令。 单元尺寸设置,如 DESIZE、SMRTSIZE 及 LESIZE、KESIZE、ESIZE. 内部单元尺寸设置,如 AESIZE、MOPT 等命令。 ⑷ 划分网格

对几何图素划分网格,如 KMESH、LMESH、AMESH 和 VMESH 命令等。 其它划分网格命令如 AMAP、IMESH、VSWEEP、FVMESH 命令等。 3.3 网格划分高级技术

前面介绍了基本的网格划分技术,对于自由网格划分一般不必刻意设置便可对几何模型划分网格。但对于映射网格划分和体扫掠网格划分则必须满足一定的条件,甚至刻意设置才能得到满意的网格。

自由网格划分时,对于 area 可全部采用四边形单元、全部用三角形单元、或者是二者的混合单元;对体一般为四面体单元,金字塔单元作为过渡也可使用。但是,映射网格划分则只能全部用四边形单元、或全部用三角形面单元、或全部用六面体单元。 如前所述 SMRTSIZE 设置和硬点不支持映射网格划分。 一、面映射网格划分

1. 面映射网格划分的条件

⑴ 必须是 3 条或 4 条边组成的面,允许连接线或合并线;

⑵ 面的对边必须划分为相同数目的单元,或与过渡网格的划分相匹配; ⑶ 该面如仅有 3 条边,则划分的单元必须为偶数且各边单元数相等; 同时要注意下面几个问题:

⑴ 必须设置映射网格划分(MSHKEY,1)。根据 MSHAPE 的设置,划分结果全是四边形或全是三角形单元的映射网格。

⑵ 如果生成三角形映射网格,还可用 MSHPATTERN 命令设置三角形网格的模式。 ⑶ 如果一个面多于 4 条边,则不能使用映射网格划分。但可合并线和连接线使总线数减少到 4 条,从而实现映射网格划分。该方法多数情况下不如将复杂的面切分(ASBW 等

命令)为边数不大于 4 条的多个面,因为这种方法更加方便和快捷。

⑷ 使用连接线的替代方法是用 AMAP 命令,该命令直接拾取 3 个或 4 个角点进行面的映射网格划分,其实质是内部连接两关键点间的所有线。 2. 连接线和合并线

为满足映射网格划分的条件 ⑴,可将部分线合并(LCOMB)或连接(LCCAT)以减少线的条数。LCOMB 命令优于 LCCAT 命令,因 LOCMB 命令可用于相切或不相切的线,节点也不必产生在线的接头处。连接线和合并线的删除同普通线的删除方法。

线连接命令:LCCAT, NL1, NL2

其中 NL1 和 NL2 为拟连接的线编号。NL1 也可为 ALL 、组件名或装配名。但不可以为连接线与其它线再连接。 示例:

! EX3.6 合并线和连接线以进行映射网格划分

finish $ /clear $ /prep7

et,1,plane82 ! 定义单元类型

k,1,5 $ k,2,10 $ k,3,11,6 $ k,4,6,15 $ k,5,-1,8 $ k,6,,4 ! 创建关键点 l,1,2 $l,2,3 $l,3,4 $larc,4,5,3,10 $l,5,6 $l,6,1 ! 创建线 al,all $esize,3 $mshape,0 $mshkey,1 ! 创建面、定义单元尺寸和划分类型 lccat,1,2 ! 将线 1 和 2 连接,生成连接线 7 lcomb,4,5 ! 将线 4 和 5 合并,生成合并线,其线号为 4 amesh,all ! 网格划分

3. 线网格划分设置的传递

映射网格划分的条件⑵要求面的对边必须划分为相同数目的单元。不必对所有线设置划分控制,网格划分器会自动将线的划分设置传递到对边上;特别地,对于由三条边组成的面,只需定义一条边的单元划分数目即可。

ESIZE 等命令设置的单元划分数是对原线的,不能对连接线设置单元划分数,但可对合并线设置单元划分数。 在划分网格时,网格划分器引用的是合并或连接后线上设置的划分数。合并后的线则需要设置网格划分控制(属于新建线,原来线上设置的划分数与新建线无关), 如果不重新设置则采用系统缺省设置(如 DESIZE 的缺省设置);而连接线上的划分数则采用原线划分数之和,且其级别与原级别相同。

4. 简化面映射网格划分 AMAP 由于上述操作较为复杂,由 AMAP 命令采用指定的关键点作为角点,不需要 MSHKEY 命令参数,自动地进行面的网格划分(全部四边形和全部三角形)。该命令操作前不需要连接线或合并线,而是自动作内部连接并删除,组成面的线并未改变。 命令:AMAP, AREA, KP1, KP2, KP3, KP4

AREA - 拟划分的面号。

KP1,KP2,KP3,KP4 - 指定的角点,3个或4个都可,并可以任意顺序。 示例:

finish $ /clear $ /prep7

et,1,plane82 ! 定义单元类型 k,1,5 $ k,2,10 $ k,3,11,6 $ k,4,6,15 $ k,5,-1,8 $ k,6,,4 ! 创建关键点 l,1,2 $ l,2,3 $ l,3,4 $ larc,4,5,3,10 $ l,5,6 $ l,6,1 ! 创建线 mshape,0 ! 设置四边形单元形状

amap,1,2,5,3,4 ! 直接划分面 1,角点顺序随意输入。 5. 过渡四边形映射网格划分

过渡四边形映射网格只适用于四边形面(有连接或无连接均可),同时应满足下列条件之一:

① 两对边网格划分数目之差相等。 ② 一对边划分数之差等于零,另一对边划分数之差为偶数。当然所定义的单元类型支持四边形单元划分,并且设置 MSHAPE,0,2D 和MSHKEY=1。

示例:

!EX3.8A 过渡四边形映射网格 finish $ /clear $ /prep7

et,1,plane42 $ k,1 $ k,2,10,-1 $ k,3,8,6 $ k,4,1,3 $ a,1,2,3,4

lesize,1,,,8 ! 设置线 1 的划分数为 8 lesize,3,,,3 ! 设置线 3 的划分数为 3,该对边划分数之差为 5 lesize,4,,,7 ! 设置线 4 的划分数为 7 lesize,2,,,2 ! 设置线 2 的划分数为 2,这对边划分数之差为 5 mshape,0,2d $ mshkey,1 $ amesh,all

示例 2:

! EX3.8B 过渡四边形映射网格

finish $ /clear $ /prep7

et,1,plane42 $ k,1 $ k,2,10,-1 $ k,3,8,6 $ k,4,1,3$a,1,2,3,4

lesize,1,,,11 ! 设置线 1 的划分数为 11 lesize,3,,,3 ! 设置线 3 的划分数为 3,该对边划分数之差为 8(偶数) lesize,4,,,2 ! 设置线 4 的划分数为 2

lesize,2,,,2 ! 设置线 2 的划分数为 2,这对边划分数之差为 0 mshape,0,2d $ mshkey,1 $ amesh,all

二、体映射网格划分

1. 体映射网格划分的条件

要将几何体全部划分为六面体单元,必须满足下列条件:

⑴ 该体的外形为块状(6 个面)、楔形或棱柱(5 个面)、四面体(4 个面); ⑵ 体的对边必须划分相同数目的单元,或其划分符合过渡网格要求的的划分条件; ⑶ 如体为棱柱或四面体,则三角形面上的单元数必须为偶数。 2. 连接面和面加运算

对面进行加运算(AADD 命令)或连接(ACCAT 命令),以减少面数从而达到体映射网格划分的条件。 连接面时,如果连接面有边界线,线也必须连接在一起,并且必须先连接面,再连接线。但是如果相连接的两个面都由四条 边组成,线的连接操作会自动进行。当删除连接面时并不自动删除相关的连接线,应用 LDELE 命令删除连接线。

连接面命令:ACCAT, NA1, NA2

与面的网格划分相同,很多情况下可采用体切分(ASBW 等命令)将体分为多个满足映射网格划分的小体,这样就避开连接面或合并面的操作,实施起来可能更容易些。 3. 过渡六面体映射网格划分

过渡六面体映射网格划分仅适用于有六个面的体(可有连接面或无连接面),同时也要设置六面体单元形状和映射网格划分类型。

过渡六面体映射网格划分的条件是每个面都应满足过渡四边形网格划分的条件(两个条件之一)。 示例:

! EX3.9 过渡六面体映射网格划分 finish $ /clear $ /prep7

et,1,95 $ blc4,,,8,8,8 ! 定义单元类型,创建六面体 lesize,all,,,4 ! 所有线均划分 4 个分段 lesize,7,,,12 ! 线7定义 12 个分段

mshape,0,3d $ mshkey,1 ! 单元形状和划分类型定义 vmesh,all ! 划分网格

三、 扫掠生成体网格

对于 3D 几何体,除采用自由网格划分和映射网格划分外,还可采用“扫掠 (sweep) 网

格划分”,体扫掠网格划分就是从源面(如边界面)网格扫掠整个体生成体单元。如果源面网格由四边形网格组成,则扫掠生成的均为六面体单元;如果源面网格 由三角形网格组成,则扫掠生成的均为楔形体单元;如果源面网格由四边形和三角形网格组成,则扫掠生成六面体和楔形体单元。 1. 体扫掠器的激活

命令:VSWEEP, VNUM, SRCA, TRGA, LSMO

VNUM - 体的编号,还可取 ALL、P 及组件名或装配名。

SRCA - 源面编号。如果该源面尚未划分网格,则系统自动对其划分网格然后再扫掠。如果不指定 SRCA 则由系统自动确定源面。

TRGA - 目标面编号,即 SRCA 面的对面。如果不指定该面号,系统自动确定目标面。 LSMO - 在扫掠时线光滑处理控制参数。如 LSMO=0(缺省)则不进行光滑处理;如 LSMO=1 则进行光滑处理,

2. 体扫掠的基本步骤与条件

在执行体扫掠之前,应按下述步骤进行操作:

⑴ 切分体满足扫掠网格划分条件

如果体的拓扑关系属下述情况则不能进行扫掠网格划分:

① 有内腔,即体内存在一个连续封闭的边界;

② 源面与目标面不是相对面,即 SRCA 和 TRGA 不是对应的面; ③ 体内存在不穿过源面和目标面的孔洞,例如平行于此两面的孔洞。

⑵ 定义合适的 2D 和 3D 单元类型

如果对源面进行网格划分,并拟扫掠成六面体单元,则必须定义 2D 和 3D 的单元类型,以能够划分相应的单元。并且 2D 单元和 3D 的单元类型宜相互协调,例如均为二次单元等。

⑶ 设置扫掠方向的单元数目或单元尺寸

① 用 ESIZE 命令设置单元尺寸,此为首选控制网格划分方法;

② 用 EXTOPT 命令设置体的侧面线划分数目,可设置间隔比;

③ 用 LESIZE 命令设置体的一条或多条侧线的划分数目,也可设置间隔比; ④ 在一个或多个侧面或相邻的体内或面上生成映射网格; ⑤ 在一条或多条侧边上生成梁单元网格(LMESH 命令); ⑥ 激活 SMRTSIZE 命令的设置;

⑦ 上述均未设定时,则采用 DESIZE 命令的缺省设置。 ⑷ 定义源面和目标面

为扫掠网格划分指定源面和目标面。如果不指定源面或目标面,ANSYS 将自动确定源面和目标面,如果自动确定失败,将停止扫掠划分。如果有多个体进行扫掠网格划分,多于一个源面或目标面的设置将被忽略。

⑸ 对源面、目标面或侧面进行网格划分

扫掠前面的网格划分不同当然影响到扫掠生成的单元网格。如果不进行任何面的网格划分,系统则自动对其进行面的网格划分,然后再进行扫掠网格划分。 是否在扫掠前划分网格应考虑以下几个因素:

① 如不对面划分网格,则 ANSYS 采用 MSHAPE 命令的设置对面进行网格划分。但使用一个 VSWEEP 命令对所有体进行网格划分时,源面总是划分为四边形单元。 ② 如果用 KSCON 命令设置源面网格划分,则应对源面先划分网格。 ③ 如果有硬点存在,且没有划分面网格,则不能进行扫掠网格划分。 ④ 如果源面和目标面都划分了网格,则其必须是匹配的,否则不能进行扫掠网格划分。

源面和目标面的网格不必是映射网格。 示例:

!EX3.10 设两孔的长方体的扫掠网格划分 finish $ /clear $ /prep7

a=10 $ r=2 ! 定义两个参数,边长和半径

et,1,mesh200,6 ! 定义 2D 单元类型为 4 节点的 MESH200,未用 PLANE 单元 et,2,solid45 ! 定义 3D 单元类型为 8 节点的 SOLID 单元 blc4,,,2*a,a,a $ cyl4,a/2,a/2,r,,,,a ! 创建长方体和圆柱体1

wprota,,90 $ cyl4,1.5*a,a/2,r,,,,-a ! 旋转工作平面,创建圆柱体2 vsbv,1,2 $ vsbv,4,3 ! 减去两个圆柱体形成基本模型 wprota,,,90 $ wpoff,,,a/2 $ vsbw,all ! 旋转并移动工作平面,切分体 wpoff,,,a/2 $ vsbw,all $ wpoff,,,a/2 $ vsbw,all

wpcsys $ wpoff,,a/2,a/2 $ vsbw,all

wprota,,90 $ vsbw,all $ wpcsys ! 将体切分为多个体,以扫掠网格

esize,1 ! 设置基本单元尺寸

amap,105,15,16,26,63 $ amap,107,16,13,60,26 ! 用AMPA生成四边形网格 amap,108,13,14,28,60 $ amap,103,15,14,28,63

lesize,94,,,4 $ lesize,79,,,4 ! 设置扫掠方向的单元尺寸

vsel,s,loc,x,0,a $ vsweep,all ! 扫掠创建一部分体的单元网格 asel,s,loc,y,a $ asel,r,loc,x,a,2*a ! 另一部分体的源面划分用连接线 lccat,2,45 $ lccat,57,71 ! 连接所选面的线,便于映射网格划分 lccat,68,78 $ lccat,65,72

mshape,0,2d $ mshkey,1 $ amesh,all ! 映射网格划分四个面 vsel,s,loc,x,a,2*a $ vsweep,all ! 扫掠另一部分体生成单元网格 allsel $ /view,1,1,2,3 $ eplot ! 改变视图并显示单元

3. 体扫掠策略及其注意事项

如果体扫掠网格划分因单元形状差而失败,可考虑如下对策:

① 如果没有指定源面和目标面,则指定之并重新执行扫掠划分; ② 交换源面和目标面,并重新执行扫掠划分;

③ 另选一组完全不同的源面和目标面,并重新执行扫掠划分; ④ 使用单元形状检查工具。

⑤ 采用光滑处理,并重新执行扫掠划分; 同时,在扫掠网格划分中要注意:

① 源面和目标面不必平行或平面,可为曲面或组合面等;

② ③ ④ ⑤

如果源面和目标面的几何形状不同,但拓扑关系相同时仍可扫掠划分网格; 可用二次面单元扫掠生成线性体单元或二次体单元.

如果未指定源面和目标面,则忽略 EXTOPT 命令定义的单元尺寸设置。

如果对源面、目标面或侧面进行了网格划分,希望在扫掠之后自动删除这些单元,

可采用命令 EXTOPT 设置为 EXTopt,aclear,1。 ⑥ 扫掠网格划分不一定为等截面,但当为变截面时,从一端到另一端为线性变化时扫掠效果较好;如为任意变化的,应注意单元网格质量。 ⑦ 可扫掠零半径轴,即源面和目标面相邻。 4. 其它命令生成体单元及其区别

与 VSWEEP 命令比较, VROTAT、VEXT、VOFFST、VDRAG 等拉伸命令也可生成类似于扫掠生成的单元网格,但它们是有区别的:

① VSWEEP 是在未划分网格的既有体上,通过扫掠产生单元网格;而上述拉伸命令在生产体的同时生成单元网格。

② VSWEEP 可在执行前不划分面的网格,而拉伸命令则必须划分网格否则不生成网格。

③ 拉伸命令执行前必须设置 ESIZE 命令中的 NDIV 参数。

例如下面为 VROTAT、VEXT、VOFFST、VDRAG 几个命令生成单元网格。 ! EX3.11 拉伸类命令生成体单元网格

finish $ /clear $ /prep7

et,1,82 $ et,2,95 ! 定义 2D 和 3D 单元类型 blc4,,,4,4 $ blc4,6,,4,4 ! 在不同位置创建 4 个面

blc4,12,,4,4 $ blc4,18,,4,4

esize,1 $ amesh,all ! 定义单元尺寸并划分所有面的单元网格 esize,,8 ! 为下面 4 个命令定义 NDIV vrotat,1,,,,,,1,4,90 ! 旋转面 1,生成体和单元 vext,2,,,,,10,0.5,0.5 ! 延伸面 2,生成体和单元 voffst,3,10 ! 偏移面 3,生成体和单元 vdrag,4,,,,,,35 ! 拖拉面 4,生成体和单元

四、 单元有效性检查

不良的单元形状会导致不准确的结果,然而并没有判别单元形状好坏的通用标准,也就是说一种单元形状对一个分析可能导致不准确的结果,但可能对另一种分析的 结果又是可接受的。在计算过程中,ANSYS可能不出现单元形状警告信息,也可能会出现很多个单元形状警告信息,这都不能说明单元形状就一定会导致准确或 不准确的结果,因此单元形状的好坏和结果的准确性完全依赖用户的判断和分析。 1. 单元形状参数限值设置

命令:SHPP, Lab, VALUE1, VALUE2

ANSYS 单元形状检查是缺省的,但控制单元形状检查的参数可以修改。

⑴ Lab = ON: 激活单元形状检查。VALUE1 可取: ANGD:SHELL28 单元角度检查。

ASPECT: 单元纵横比检查。如四边形单元警告限值为 20,错误限值为 1E6; PARAL: 对边平行度检查。如无中间节点的四边形该项的警告限值为 70°,如超过 150° 则给出错误信息。

MAXANG: 最大角度检查。无中间节点的四边形单元该项警告限值为 155°,而其错误限值为 179.9°;

JACRAT: 雅可比率检查。简单地说,雅可比率表达了“单元”模拟“实际”的计算可靠性,比率越高越不可靠。如 h 单元的警告限值为 30,超过 30 单元形状就很不理想(与母单元形状相差甚远)。

WARP: 歪曲率检查。对于四边形面单元、壳单元或体单元的面等,当其严重歪曲时造成不好的单元形状,此值越高表示单元歪曲越严重。 也可用 ALL 关闭或激活所有选项。

⑵ Lab = WARN: 仅激活警告模式,对超过错误限制的单元只给出警告信息而不致网格划分失败。而 Lab=ON 则一旦超过错误限制时将导致网格划分失败。

⑶ Lab = OFF: 完全关闭单元形状检查,可通过设置 VALUE1 的值而关闭个别形状检查。如 VALUE1 可取 ANGD、ASPECT、PARAL、MAXANG、JACRAT、WARP 及 ALL 等。 ⑷ Lab = STATUS: 列表输出当前形状检查限制参数及检查结果情况。 ⑸ Lab = SUMMARY: 列表输出所选择单元的形状检查结果。 ⑹ Lab = DEFAULT: 恢复单元形状检查限值的缺省值。

⑺ Lab = OBJECT: 是否将单元形状检查结果保存于内存中的控制参数;如 VALUE1=1、YES 或 ON(缺省)则保存在内存中;如VALUE1=0、NO 或 OFF 则不保存在内存中。 ⑻ Lab = LSTET: 检查雅可比率时选择在积分点还是角点取样控制;如 VALUE= 1、YES 或 ON 则选择积分点;如 VALUE1=0、NO 或OFF(缺省)则选择角点取样。

⑼ Lab = MODIFY: 重新设置一个形状参数检查限值,此时 VALUE1 为修改的形状参数限值的数据位置,而 VALUE2 则为修改的新限值。如拟修改纵横比率检查的警告限值,通过 SHPP,STATUS 列表可以看出,该数据的位置为 1,缺省设置为 20.0。可用SHPP, MODIFY, 1, 1000 将此限值修改为 1000。

如拟修改h单元的雅可比率警告限值,通过 SHPP,STATUS 列表查得该数据的位置为 31,其缺省设置为 30.0。可用SHPP, MODIFY, 31, 100 将此限值修改为 100。 使用 shpp,defa 将恢复系统的缺省限值设置。

⑽ Lab = FLAT: 确定显示非零或非常数 Z 坐标单元的警告和错误限值。 2. 网格检查命令

⑴ 逐个单元数据完整性检查 命令:CHECK, Sele, Levl

Sele - 拟检查的单元。如 Sele 为空,检查所有单元数据;

Levl - 仅当 Sele=ESEL 时,其值可取 WARN(选择生成警告和错误信息的单元)和 ERR(仅检查生成错误信息的单元,这是缺省选项)。

该命令对每个单元的数据完整性和单元形状进行检查,也是在求解之前自动进行的检查。如单元材料、实常数、约束及单元形状等,然后在输出窗口列出结果。 ⑵ 网格连通性检查 命令:MCHECK, Lab

其中 Lab=ESEL,该选项可不选泽正确的单元,仅选择有问题的单元。

CHECK 命令对单个单元进行检查,而 MCHECK 则根据单元的连接方式检查网格潜在的问题,如单元的交叠等。其检查内容主要有:

① 方向:当两个面单元共线时,检查每个单元的节点顺序是否与其法线方向一致;

② 体:当两个体单元共面时,检查每个单元的完整体符号是否一致; ③ 封闭面:检查形成封闭面的单元外表面,以防网格中出现“裂缝”; ④ 网格空洞:当环绕内部空腔的单元面数量很少时,有可能出现遗漏的单元从而形成空洞。

五、网格修改

如果对生成的网格不满意,可用下列方法改变网格:

① 重新设置单元尺寸,并划分网格(只有 GUI 才可); ② 清除网格,重新设置单元尺寸,并划分网格; ③ 细化局部网格;

④ 改进网格(仅实用于四面体网格)。 1. 清除网格

关键点网格清除命令:KCLEAR, NP1, NP2, NINC 线网格清除命令:LCLEAR, NL1, NL2, NINC 面网格清除命令:ACLEAR, NA1, NA2, NINC 体网格清除命令:VCLEAR, NV1, NV2, NINC

NX1,NX2,NINC - 为图素范围和编号增量,NX1 可取 ALL 或组件名。 该系列命令用于清除既有网格,并可重新对线设置单元网格划分数目或尺寸,然后再重新对几何模型进行网格划分。 2. 细化局部网格

节点附近细化命令:NREFINE, NN1, NN2, NINC, LEVEL, DEPTH, POST, RETAIN 单元附近细化命令:EREFINE, NE1, NE2, NINC, LEVEL, DEPTH, POST, RETAIN 关键点附近细化命令:KREFINE, NP1, NP2, NINC, LEVEL, DEPTH, POST, RETAIN 线附近细化命令:LREFINE, NL1, NL2, NINC, LEVEL, DEPTH, POST, RETAIN 面附近细化命令:AREFINE, NA1, NA2, NINC, LEVEL, DEPTH, POST, RETAIN Nx1,Nx2,NINC - 图素编号范围与编号增量。

LEVEL - 细化等级,其取值范围 1(缺省)~5,值越高网格越密。

当 LEVEL=1 时,则采用单元边长的 1/2 进行细化生成新的单元。 DEPTH - 从所选图素向外根据单元数设置网格细化的深度,缺省为 1。 POST - 单元细化时质量处理控制参数。

如 POST=SMOOTH,进行光滑处理,且可能会改变节点位置;

如 POST=CLEAN(缺省),进行光滑处理,可能会删除存在的单元而重新细分,且节点位置也会改变;

如 POST=OFF 则不进行任何处理,即节点位置不变也不删除重分。 RETAIN - 所有单元都是四边形网格,在细化时,如 RETAIN=ON(缺省)则细化网格也为四边形网格,而不管单元质量如何;

如 RETAIN=OFF 则允许用三角形网格,以保证网格质量。 但对于下列情况则不能细化:

① 含有初始条件的节点、耦合节点、约束方程的节点等; ② 含有边界条件、荷载的节点或单元;

③ 六面体单元、楔形单元和金字塔单元不能细化。

3.4 网格划分实例 - 基本模型的网格划分

1. 圆

圆面的网格划分一般可将圆切分为四等份或八等份,实现映射网格划分。 ! EX3.12 圆的网格划分 finish $ /clear $ /prep7

et,1,plane82 $ r0=10 ! 定义单元类型和圆半径参数

cyl4,,,r0 $ cyl4,3*r0,,,,r0 ! 创建两个圆面 A 和 B,拟分别进行不同的网格划分 wprota,,90 $ asbw,all ! 将圆面水平切分

wprota,,,90 $ asbw,all ! 将圆面 A 竖向切分

wpoff,,,3*r0 $ asbw,all ! 移动工作平面,将圆面 B 竖向切分 wpcsys,-1 !工作平面复位但不改变视图方向 asel,s,loc,x,-r0,r0 ! 选择圆面 A 的所有面

lsla,s ! 选择与圆面 A 相关的所有线 lesize,all,,,8 ! 对上述线设置网格划分个数为 8(三条边时相等且为偶数) mshape,0,2d $ mshkey,1 ! 设置四边形单元、映射网格划分 amesh,all ! 圆面 A 划分网格 asel,s,loc,x,2*r0,4*r0 ! 选择圆面B的所有面 lsla,s ! 选择与圆面 B 相关的所有线 lesize,all,,,8 ! 对上述线设置网格划分个数为 8 lsel,r,length,,r0 ! 选择上述线中长度为半径的线

lesize,all,,,8,0.1,1 ! 设置这些线的网格划分数和间隔比 amesh,all $ allsel ! 圆面 B 划分网格

2. 圆环

圆环面的网格划分与圆面类似,但因由 4 条边组成,可更加方便地对网格进行控制。下面取 1/4 圆环面进行单元划分。 ! EX3.13 圆环的网格划分

finish $ /clear $ /prep7

et,1,plane82 $ r0=10 ! 定义单元类型和圆半径参数 cyl4,,,r0/3,,r0,90 $ cyl4,2*r0,,r0/10,,r0,90! 创建两个 1/4 环面 asel,s,loc,x,-r0,r0 ! 选择环面 A

lsla,s$lesize,all,,,8 ! 选择环面 A 的所有线,定义网分数 lsel,r,length,,r0*2/3 $ lesize,all,,,3,,1 ! 选择径向线,网分数修改为 3 mshape,0,2d $ mshkey,1 $ amesh,all ! 定义单元形状、划分类型、划分单元 ALLSEL $ asel,s,loc,x,2*r0,4*r0 ! 选择环面B

lesize,5,,,12 $ lesize,7,,,6 ! 定义外周线和内周线网分数分别为 12 和 6 lsel,s,length,,r0*9/10 $ lesize,all,,,7 ! 选择径向线,网分数为 7 amesh,all ! 划分环面 B 的单元网格

3. 圆柱

柱体的网格划分方法与圆面类似,空心柱体的网格划分方法同环面类似,而柱面则可直接划分网格。

例如:

! EX3.14 圆柱面和圆柱体的网格划分 ! 圆柱面的网格划分

finish $ /clear $ /prep7

r0=10 $ h0=50 $ et,1,shell63 ! 定义参数和单元类型

cyl4,,,r0 $ adele,1 $ cm,l1cm,line ! 创建面,删除面保留线,定义组件 Licm k,50 $ k,51,,,h0 $ l,50,51 $ adrag,l1cm,,,,,,5 ! 创建拖拉路径并拖拉线创建柱面 (L1cm - 组件名)

lsel,s,loc,z,0 $ lesize,all,,,6 ! 每条圆周线网格划分数为 6

lsel,s,length,,h0 $ lesize,all,,,8 ! 每条柱面侧线网格划分数为 8 mshape,0,2d $ mshkey,1 $ amesh,all ! 定义单元形状、网格划分类型、划分网格

!圆柱体

finish $ /clear $ /prep7

r0=10 $ h0=50 $ et,1,solid95 ! 定义参数和单元类型 cyl4,,,r0,,,,h0 ! 创建圆柱体 wprota,,90 $ vsbw,all ! 切分圆柱体

wprota,,,90 $ vsbw,all ! 再切分圆柱体

mshape,0,3d $ mshkey,1 ! 定义单元形状、网格划分类型 lsel,s,loc,z,0 $ lesize,all,,,6 ! 每条圆周线网格划分数为 6 lsel,s,length,,h0 $ lesize,all,,,8 ! 每条柱面侧线网格划分数为 8 vmesh,all

4. 圆锥和圆台

圆锥体的网格划分应以 1/4 圆锥进行,然后利用对称命令创建其余体和网格。 示例:

! EX3.15 圆锥的网格划分 ! 扫掠网格划分

finish $ /clear $ /prep7

cone,10,,,15,,90 ! 创建 1/4 锥体。如为整锥切分有困难。 et,1,200,7 $ et,2,95 ! 定义 MESH200 和 SOLID95 单元类型 lsel,s,,,5,6 $ lesize,all,,,12,0.5 ! 定义网格划分数

lsel,all$lesize,3,,,6 ! 定义扫掠路径网格数 mshape,0,2d $ mshkey,1 $ amesh,3 ! 划分源面网格

vsweep,1,3,4 ! 扫掠体 1,属于 0 半径扫掠 vsymm,x,all $ vsymm,y,all ! 对称创建其余部分体和网格 vglue,all

! 六面体映射网格划分

finish $ /clear $ /prep7

cone,10,,,15,,90 $ et,2,95 ! 创建 1/4 锥体,定义单元类型 lesize,all,,,8 ! 定义网格划分数

mshape,0,3d $ mshkey,1 ! 定义单元形状、网格划分类型 vmesh,all ! 划分网格

vsymm,x,all $ vsymm,y,all ! 对称创建其余部分体和网格 vglue,all

5. 多边形面和棱柱体

多边形面和棱柱体的网格划分与底面或顶面的边数相关,当不满足映射网格划分的条件

时可连接面或切分面或体,一般可根据快捷或习惯做法确定使用何种方法。

多边形面的网格划分可按偶数边和奇数边分别考虑,当为偶数边时可将整个面按两边对应一个扇面切分,而当为奇数边时可切分为三边的扇面。当然也可采用其它切分方法,只要满足网格划分条件即可。 示例:

! EX3.16 正多边形面的通用网格划分 finish $ /clear $ /prep7

ns=10 ! 多边形边数参数,可输入大于 4 的任意整数 et,1,plane82 $ rpr4,ns,,,10 ! 定义单元类型,创建正多边形 kp0=100+ns $ k,kp0 ! 在正多边形中心创建一关键点 kp0 *if,mod(ns,2),eq,0,then ! 如果为偶数边时

*do,i,1,ns/2 $ l,kp0,2*i-1 $ *enddo ! 连接 kp0 和每两条边的一个关键点 *else ! 如果为奇数边时

*do,i,1,ns $ l,kp0,i $ *enddo ! 连接 kp0 和每条边的一个关键点 *endif ! 结束 IF 语句 lsel,s,,,ns+1,2*ns ! 选择上述连线

cm,l1cm,line $ allsel ! 定义为组件 l1cm

asbl,1,l1cm ! 面减线操作,将整个面切分为多个面 *if,mod(ns,2),eq,0,then ! 如果为偶数边时

cmsel,s,l1cm $ lesize,all,,,8 ! 选择组件 L1cm,并定义网格划分数为 8 lsel,inve $ lesize,all,,,4 ! 其余线网格划分数目设为 4

*else $ lesize,all,,,8 $ *endif ! 如果为奇数边,则网格划分数全部设为 8 allsel $ mshape,0 $ mshkey,1 ! 定义单元形状和网分类型 amesh,all ! 划分网格

对于棱柱体或棱台采用扫掠网格划分或拖拉方式均可,也可将体按类似面的方法切分,然后进行映射网格划分。例如采用拖拉网格划分的命令流如下:

! 接 EX3.16

et,2,solid95 ! 定义单元类型 2 为 solid95 单元 esize,,24 ! 定义网格划分数 vext,all,,,,,30,0.5,0.5 ! 延伸创建体和网格

6. 球及球面

球面及球体的网格划分可采用1/8球面或球体进行映射网格划分,其效果与圆面相同。

示例:

! EX3.17 球体及球面网格划分 finish $ /clear $ /prep7

r0=10 $ sphere,,r0,,90 ! 定义半径及 1/4 球体

vsbw,all $ vdele,2,,,1 ! 将球体切分并删除一半,仅保留 1/8 球体 et,1,solid95 $ esize,2 ! 定义单元类型和单元尺寸

mshape,0,3d $ mshkey,1 ! 定义单元形状和映射网格划分 vmesh,all ! 划分网格

vsymm,x,all $ vsymm,y,all ! 生成整个球体及其网格 vsymm,z,all $ vglue,all

3.4 网格划分实例----复杂面模型的网格划分

1. 孔板

钢结构螺栓连接中的节点板,其板上都设有一定数量的螺栓孔,这些栓孔可能对称布置也可能不对称布置。要得到四边形映射网格必须满足其要求的条件,可对板进 行适当的切分或连接。本例采用切分命令将面切成多个小面,有些可满足 4 边的条件,包含曲线的面则不满足 4 边的条件,可分别采用 AMESH 和 AMAP 命令(如用 LCCAT 需要不断连接、划分、删除连接线等操作)进行映射网格划分。

示例:

! EX3.18 孔板网格划分

finish $ /clear $ /prep7

a0=300 $ b0=800 $ r0=15 ! 定义参数

blc4,,,a0,b0 $ cyl4,a0/4,b0/8,r0 ! 创建矩形面和一个圆面 agen,2,2,,,a0/2 $ agen,2,2,3,1,,b0/8 ! 复制生成其它圆面

agen,2,2,5,1,,b0*5/8 $ asel,s,,,2,9,1 ! 选择圆面

cm,a2cm,area $ allsel ! 将所选择圆面定义为组件 a2cm asba,1,a2cm ! 用矩形面减圆面,形成孔板

wprota,,-90 ! 将孔板竖向切分 *do,i,1,5 $ wpoff,,,b0/16 $ asbw,all $ *enddo

wpoff,,,b0*5/16 $ *do,i,1,5 $ wpoff,,,b0/16 $ asbw,all $ *enddo wprota,,,90 ! 将孔板横向切分 *do,i,1,3 $ wpoff,,,a0/4 $ asbw,all $ *enddo wpcsys,-1 $ numcmp,all

lsel,s,radius,,r0 $ lesize,all,,,8 ! 选择圆孔边界线,定义网分数为 8 lsel,inve $ lesize,all,,,4 $ lsel,all ! 其余线网分数为 4

et,1,82 $ mshape,0,2d $ mshkey,1 ! 定义单元类型、单元形状及网分类型 asel,u,loc,y,b0/16,b0*5/16 ! 不选择带圆孔的面 asel,u,loc,y,b0*11/16,b0*15/16 ! 不选择带圆孔的面 lsla,s$lsel,r,tan1,x ! 选择竖向线

lesize,all,50,,,,1 ! 修改这些线的网分尺寸 amesh,all $ allsel ! 划分这些面的网格

! 以下用 AMAP 划分各个 5 边形面的网格

amap,21,30,31,54,62 $ amap,22,31,32,54,64 $ amap,32,29,30,62,76 $ amap,33,29,32,64,76

amap,42,34,35,76,82 $ amap,43,35,36,76,84 $ amap,41,33,34,53,82 $ amap,44,33,36,53,84

amap,19,22,23,49,64 $ amap,20,23,24,49,60 $ amap,9,21,22,64,74 $ amap,31,21,24,60,74

amap,38,26,27,74,84 $ amap,39,27,28,74,80 $ amap,37,25,26,50,84 $ amap,40,25,28,50,80

amap,17,14,15,43,59 $ amap,18,15,16,43,63 $ amap,7,13,14,59,73 $ amap,8,13,16,63,73

amap,34,18,19,73,79 $ amap,30,17,18,79,44 $ amap,35,19,20,73,83 $ amap,36,17,20,44,83

amap,15,6,7,39,63 $ amap,16,7,8,39,58 $ amap,4,6,5,63,71 $ amap,5,5,8,58,71 amap,27,10,11,71,83 $ amap,28,11,12,71,78 $ amap,26,9,10,83,40 $ amap,29,9,12,40,78

对于本例也可采用先创建部分面并划分网格,然后利用对称生成其余部分。本例旨在说明全部创建几何模型后,进行网格划分的方法和思路。 2. 角支架的网格划分

如 ANSYS 帮助文件中的例子,对其结构略作改动如图所示。进行映射网格划分,但需要对几何模型进行切分或连接。

3. 大板小孔的网格划分

实际工程中经常遇到很大的板上有一很小孔,且要考虑小孔的影响。其网格划分可将整个面分为两部分,即小孔区域和远离小孔的区域,并采用过渡映射网格划分或 间隔比,从而得到既满足精度要求又不浪费资源的网格。例如所示面,其中虚线部分为两部分的分界线,当然也可采用直线分割区域。

示例:

! EX3.20 大板小孔的网格划分

finish $ /clear $ /prep7a0=100 !定义参数A0=100 blc4,,,a0,a0 $ cyl4,,,a0/100 $ asba,1,2 !创建几何模型 csys,1 $ k,50,a0/20 $ k,51,a0/20,90!创建两个关键点R1=a0/20 l,50,51 $ asbl,all,1 !将面分为两部分

et,1,82 $ mshape,0,2d $ mshkey,1 !定义单元类型及网格划分类型

lesize,5,,,8 $ lesize,1,,,10 !设置周向线网格数

lesize,4,,,8,5$lesize,6,,,8,5$amesh,1!设置径向线的网格数及间隔比,划分区域1 lesize,7,,,20,0.1 $ lesize,8,,,20,0.1 !设置大区域的网格数及间隔比 amap,2,50,51,2,4 !划分区域2 csys,0 $ arsym,x,all $ arsym,y,all $ nummrg,all

4. Z 形面的网格划分与局部细化 如图所示的面,其正常网格划分和局部细化比较如图所示。通过该例可以看出不同的细化方式对网格的影响,同时也可比较网格的质量。

5. 有分布小孔的环形面的网格划分 如图所示,一环形面上分布若干个圆孔,其网格划分方法是将圆环面根据孔数切分为多个面,然后进行网格划分,但较为繁琐。还可创建包含半个圆孔的扇形面并划分网格,然后复制几何模型和网格。

3.4 网格划分实例-----复杂体模型的网格划分

同复杂面网格划分一样,复杂体的网格划分主要是采用何种手段满足网格划分的条件。对同一个模型,网格划分可有多种方法,其效果也不尽相同,但其策略基本是 一样的,即采用各种手段使所网分的几何体满足一定的条件,然后进行网分数目或单元尺寸设定,最后划分网格。本节所给出的网分实例无非是开拓思路,采用各种 手段,获得较满意的网格划分效果。

为满足网格划分条件,主要有采用工作平面切分体(VSBW)、作体减面运算(VSBW)、体分割(VPTN)及面连接(ACCAT)等 4 种手段。网格划分时可采用映射网格划分(VMESH)、过渡映射网格划分(VMESH)及扫略网格划分(VSWEEP)。

1. 多段阶梯形圆轴

如图所示的多段同心圆轴体,以六面体单元划分网格。轴类几何实体的网格划分可基本采用这种思路和方法,需要在建模之前对网格划分有所考虑。不然直接创建轴体后,需要用柱面切分(VSBA 命令)柱体,形成类似本例的多个几何实体。

示例:

finish $ /clear $ /prep7

cylind,50,0,100,150 ! 创建 Φ100 的轴体,Z 从 100~150

cylind,40,0,200,250 ! 创建 Φ80 的轴体,Z 从 200~250 cylind,30,0,100,250 ! 创建 Φ60 的轴体,Z 从 100~250,穿过大于此直径的体 cylind,20,0,50,250 ! 创建 Φ40 的轴体,Z 从 50~250,穿过大于此直径的体 cylind,10,0,0,250 ! 创建 Φ20 的轴体,Z 从 0~250,穿过所有体 vptn,all ! 对所有体进行分割运算,形成多个相连的体 wprota,,,90 $ vsbw,all ! 用工作平面切分所有体 wprota,,90 $ vsbw,all ! 用工作平面再切分所有体

et,1,95 $ csys,1 ! 定义单元类型,并设置总体柱坐标系 lsel,s,length,,50 ! 选择所有轴向的线

lesize,all,,,5 ! 定义网分数目为 5 个

lsel,inve ! 反选线,即选择除轴向线外的所有线

lsel,u,radius,,10,50 ! 从上述线集中去掉半径从 10~50 的弧线,仅剩下径向线 lesize,all,,,4 ! 定义网分数目为 4 个

! 下面定义几个参数,其中 n1 必须为偶数,故 n2,n3,n4,n5 也为偶数,! 但 N1~N5 可全部相等。如果 n2,n3,n4,n5 不相等,则生成过渡六面体网格;! 如果 n2,n3,n4,n5 相等则直接生成六面体映射网格。读者可改变这些参数,以观察网分效果。 n1=6 $ n2=6 $ n3=8 $ n4=10 $ n5=12

lsel,r,loc,x,0,10$lesize,all,,,n1,,1 ! 修改 R10 体的径线网分数目(注意最后参数 1)

lsel,s,radius,,10$lesize,all,,,n1 ! 定义 R10 弧线的网分数目为 N1(必须为 N1) lsel,s,radius,,20$lesize,all,,,n2 ! 定义 R20 弧线的网分数目为 N2 lsel,s,radius,,30$lesize,all,,,n3 ! 定义 R30 弧线的网分数目为 N3 lsel,s,radius,,40$lesize,all,,,n4 ! 定义 R40 弧线的网分数目为 N4 lsel,s,radius,,50$lesize,all,,,n5 ! 定义 R50 弧线的网分数目为 N5 allsel$mshape,0,3d$mshkey,1 ! 定义单元形状和网分类型

vmesh,all ! 划分网格

2. 弹簧

第2章中介绍了其建模方法,此处对其进行六面体网格划分。取用 EX2.1B 命令流中直到创建簧丝截面后部分,然后接着下面的命令流对其进行网格划分。对于类似拖拉创建的几何实体,均可采用扫掠网格划分。

! EX3.25 弹簧实体的扫略网格划分

! 以上为 EX2.1B 创建簧丝截面后的命令流

wprota,,90 $ asbw,all ! 切分簧丝截面 wprota,,,90 $ asbw,all ! 再切分簧丝截面 cm,a1cm,area ! 定义 A1cm 面组件

VDRAG,a1cm,,,,,,L1 ! 拖拉面创建体

et,1,mesh200,7 $ et,2,solid95 ! 定义两种单元类型, 即 MESH200 和 SOLID95 cmsel,s,a1cm $ lsla,s ! 选择 A1cm 面组件,及附属线

lesize,all,,,6 $ amesh,all ! 定义线网分数目,划分面单元网格 allsel $ esize,d/2 ! 定义扫略方向的单元尺寸为 d/2 vsweep,all ! 扫略生成六面体单元

3. 具有坑缺陷的圆柱的网格划分

圆柱体受意外撞击或锈蚀形成一圆台形状的小坑,其网格划分既要考虑小坑处的网格密度,又要考虑采用六面体网格,具有一定难度。

4. 长方体开圆柱槽的网格划分

在一长方体表面上,开不同半径的两个圆柱槽,对该几何体进行六面体网格划分。 5. 圆柱与长方体的组合

如图所示的圆柱体与长方体,对其进行六面体网格划分。

这类几何体组合的网格划分可采用两种方法,其一是创建 1/4 几何体并划分网格,然后利用对称命令生成其余部分的几何体和网格,最后合并 (merge )所有图素形成无缝模型;其二是创建整个模型,用工作平面切分整个模型以满足映射网格划分要求。不管怎样建模,最后都归结为 1/4 几何实体的网格划分。

对于 1/4 几何实体的网格划分,可采用六面体映射网格划分或过渡六面体映射网格划分。采用过渡六面体映射网格划分的效果单元尺寸更容易控制,且更均匀些。该类组合体的网格划分可用于工程中基础和柱的分析,如桥梁中的承台和墩柱、建筑工程中的扩大基础和圆柱等。

本文来源:https://www.bwwdw.com/article/oq26.html

Top