ANSYS 有限元分析 命令流 实例




Blog Links





一、前言


  本文为 ANSYS 有限元分析 系列博客中所采用的法兰分析实例的系列命令流。


二、创建法兰


FINISH                                ! 退出当前处理器
/CLEAR,ALL                            ! 清除所有
/PREP7                                ! 进人前处理器
*AFUN,RAD                             ! 指定角度单位为弧度(非必要步骤)
pi = ACOS(-1)                         ! 获取圆周率pi的数值(非必要步骤)
*AFUN,DEG                             ! 将角度单位切换为度(非必要步骤)


/com,************* 1. 创建坐标系 *************


CSYS,0                                ! 激活总体直角坐标系统
xc = 500 $ yc = 0 $ zc = 0            ! 局部坐标系原点位置(相对应当前激活坐标系)
thxy = 0 $ thyz = 0 $ thzx = 90       ! 局部坐标轴旋转角度度(相对应当前激活坐标系)
LOCAL,15,0,xc,yc,zc,thxy,thyz,thzx    ! 创建局部直角坐标系15

CSYS,15                               ! 激活局部坐标系15
xc = 1000 $ yc = 0 $ zc = 0           ! 局部坐标系原点位置(相对应当前激活坐标系)
thxy = 0 $ thyz = 0 $ thzx = 0        ! 局部坐标轴旋转角度度(相对应当前激活坐标系)
CLOCAL,16,1,xc,yc,zc,thxy,thyz,thzx   ! 根据激活的局部坐标系15定义新的局部柱坐标系16


/com,************** 2. 创建几何 **************


CSYS,16                               ! 激活局部柱坐标系16
WPCSYS,-1                             ! 根据当前坐标系定义工作平面

d0 = 40                               ! 螺栓孔直径为40

K,1,d0/2,0 $ K,2,d0/2,45 $ K,3,d0/2,90 $ K,4,d0/2,135 $ K,5,d0/2,180 

L,1,2                                 ! 由两个关键点创建一条线(可以是直线或是弧线取决于坐标系)
*REPEAT,4,1,1                         ! 上一条命令重复执行4次,始末关键点编号增量为1。

CSYS,15                               ! 激活局部坐标系15
CLOCAL,17,1                           ! 根据激活的局部坐标系15定义新的局部柱坐标系17
WPCSYS,-1,                            ! 根据当前坐标系定义工作平面

width = 88                            ! 环带宽度为88
num = 55                              ! 螺栓总数
Ds = 2000                             ! 螺栓分度圆直径

K,6,Ds/2+width/2 $ K,7,Ds/2+width/2,180/num  $ K,8,Ds/2,180/num 
K,9,Ds/2-width/2,180/num $ K,10,Ds/2-width/2,0

L,6,7 
*REPEAT,4,1,1
L,1,6
*REPEAT,5,1,1  

/PNUM,KP,1                            ! 显示关键点编号
/PNUM,LINE,1                          ! 显示线编号
/REPLOT                               ! Replot 
GPLOT                                 ! Multi-Plots 

AL,1,10,5,9                           ! 创建平面,平面由边界线围成,边界线的编号分别为1、10、5、9。
*REPEAT,4,1,1,1,1                     ! 上一条命令重复执行4次,各边界线编号增量均为1。

/PNUM,KP,0                            ! 关闭关键点编号显示
/PNUM,LINE,0                          ! 关闭线编号显示
/PNUM,AREA,1                          ! 显示面的编号                 
/REPLOT                               ! Replot
GPLOT                                 ! Multi-Plots


/com,************** 3. 定义材性 **************


ALLSEL,ALL                        ! *GET前最好全选,以免出现意向不到的错误。
*GET,mtmax,MAT,,NUM,MAX           ! 获取当前定义的最大单元类型编号并将其赋予变量mtmax。

MPTEMP,,,,,,,,                    ! 为材料属性定义温度表
MPTEMP,1,0                        ! 为材料属性定义温度表
MPDATA,EX,mtmax+3,,2e5            ! 定义mtmax+1号材料属性弹性模量     
MPDATA,PRXY,mtmax+3,,0.28         ! 定义mtmax+1号材料属性泊松比
MPDATA,DENS,mtmax+3,,2700         ! 定义mtmax+1号材料属性密度


/com,************** 4. 定义单元 **************


! MESH200单元

*GET,etmax,ETYP,,NUM,MAX          ! 获取当前定义的最大单元类型编号并将其赋予变量etmax (etmax=0)。

ET,etmax+2,MESH200                ! 定义单元类型为Mesh200,其单元识别号为etmax+2。 
KEYOPT,etmax+2,1,7                ! 设置单元etmax+2的关键选项,即令 Keyoption(1)=7! SOLID186单元

ET,etmax+3,SOLID186               ! 定义单元类型为SOLID186,其单元识别号为etmax+3。 
KEYOPT,etmax+3,2,1                ! 设置单元关键选项,将单元类型参考号为etmax+1的单元设置为完全积分单元。


/com,************** 5. 设置种子 **************


LESIZE,9, , ,2, , , , ,0              ! 设置组成面的边(线)的网格大小,编号为9的线被分成2段。
*REPEAT,5,1                           ! 上一条命令重复执行5次
LESIZE,1, , ,2, , , , ,0              ! 设置线的网格大小,编号为1的线被分成2段。
*REPEAT,4,1                           ! 上一条命令重复执行4次
LESIZE,8, , ,2, , , , ,0              ! 设置线的网格大小,编号为8的线被分成2段。


/com,************** 6. 创建网格 **************


MAT,mtmax+3                           ! 给随后生成的单元激活一个材料号
TYPE,etmax+2                          ! 给随后生成的单元激活一个单元类型号

MSHAPE,0,2D                           ! 指定划分单元的形状,生成四边形单元。
MSHKEY,1                              ! 采用映射网格划分方式划分网格
AMESH,ALL                             ! 将所有面划分网格

/PNUM,ELEM,1                          ! 显示单元编号
/REPLOT                               ! Replot 
EPLOT                                 ! Elements plots
               
/VIEW,1,-1                            ! Left View       
/ANG,1  
/REP,FAST 

MAT,mtmax+3                           ! 给随后生成的单元激活一个材料号
TYPE,etmax+3                          ! 给随后生成的单元激活一个单元类型号

! 执行拉伸

EXTOPT,ESIZE,8,1,                     ! EXTOPT:由面单元生成体单元的控制选项;
                                      ! 8表示在体生成或体扫略方向上单元分割数量为8;
                                      ! 1表示在体生成或体扫略方向上的间隔率为1(默认)。
EXTOPT,ACLEAR,1                       ! 体单元网格生成后清除面单元网格即MESH200。

tf = 40                               ! 法兰厚度为40
VEXT,ALL, , ,0,0,tf                   ! 通过给的偏移量由面生体

EPLOT                                 ! Elements plots
/REPLOT                               ! Replot


/com,************** 7. 镜像及阵列 **************


CSYS,15                               ! 激活局部直角坐标系15
VSYMM,Y,ALL, , , ,0,0                 ! 对所有几何体进行镜像操作,镜像平面为xoz平面。

CSYS,17                                      ! 激活局部柱坐标系17
num = 55                                     ! 螺栓总数
VGEN,4,ALL, , , ,360/num, , ,0               ! 复制体,重复生成次数4,复制全部体。
                                             ! 当前激活坐标系下,关键点坐标值的偏移量为(--,360/num,0)
                                             ! 单个偏转角度为360/num

/PNUM,ELEM,0                                 ! 关闭单元编号显示
/REPLOT                                      ! Replot
EPLOT                                        ! Elements plots

NUMMRG,ALL                                   ! 对实体进行合并
NUMCMP,ALL                                   ! 压缩所定义项的编号

ALLSEL,ALL,ELEM                              ! Selects all elements.
CM,TopFlangeElems,ELEM                       ! 由所选实体生成一个组件
                                             ! 元件名称:TopFlangeElems;元件中的数据类型:单元。

CSYS,16                                      ! 激活局部柱坐标系16
CLOCAL,19,0                                  ! 创建局部直角坐标系19

VSYMM,Z,ALL, , , ,0,0                        ! 对所有几何体进行镜像操作,镜像平面为局部坐标系19的xoY平面。

ALLSEL,ALL,ELEM                              ! Selects all elements.
CMSEL,U,TopFlangeElems                       ! 上一选择集中除去组件TopFlangeElems内的单元
CM,BotFlangeElems,ELEM                       ! 由所选实体生成一个组件
                                             ! 元件名称:BotFlangeElems;元件中的数据类型:单元。

/com,************ 8. 输出cdb文件 *************


ALLSEL,ALL                                   ! 全选 select all entities
CDWRITE,DB,'PartFlange','cdb',,'',''         ! 当前模型另存为 PartFlange.cdb 文件。

在这里插入图片描述

法兰模型

三、创建垫片


FINISH                                ! 退出当前处理器
/CLEAR,ALL                            ! 清除所有
/PREP7                                ! 进人前处理器
*AFUN,RAD                             ! 指定角度单位为弧度(非必要步骤)
pi = ACOS(-1)                         ! 获取圆周率pi的数值(非必要步骤)
*AFUN,DEG                             ! 将角度单位切换为度(非必要步骤)


/com,************* 1. 创建坐标系 *************


CSYS,0                                ! 激活总体直角坐标系统
xc = 500 $ yc = 0 $ zc = 0            ! 局部坐标系原点位置(相对应当前激活坐标系)
thxy = 0 $ thyz = 0 $ thzx = 90       ! 局部坐标轴旋转角度度(相对应当前激活坐标系)
LOCAL,15,0,xc,yc,zc,thxy,thyz,thzx    ! 创建局部直角坐标系15


CSYS,15                               ! 激活局部坐标系15
xc = 1000 $ yc = 0 $ zc = 0           ! 局部坐标系原点位置(相对应当前激活坐标系)
thxy = 0 $ thyz = 0 $ thzx = 0        ! 局部坐标轴旋转角度度(相对应当前激活坐标系)
CLOCAL,16,1,xc,yc,zc,thxy,thyz,thzx   ! 根据激活的局部坐标系15定义新的局部柱坐标系16


/com,************* 2. 创建几何体 *************


CSYS,16
tf = 40                               ! 法兰盘厚度
CLOCAL,18,0,0,0,tf                    ! 创建局部直角坐标系18

*GET,vlmax,VOLU,,NUM,MAX              ! 获取当前定义的最大几何体编号并将其赋予变量vlmax。

WPCSYS,-1,                            ! 定义工作平面,工作平面为局部直角坐标系18的xoy平面。

d0 = 40                               ! 螺栓孔直径为40
d1 = 70 $ tw = 5                      ! 垫片外径为70,垫片厚度为5。

CYL4,0,0,d0/2,0,d1/2,90,tw            ! 创建四分之一垫片,其编号为V1,见下图。
CYL4,0,0,d0/2,90,d1/2,180,tw          ! 创建四分之一垫片,其编号为V2,见下图。
CYL4,0,0,d0/2,180,d1/2,270,tw         ! 创建四分之一垫片,其编号为V3,见下图。
CYL4,0,0,d0/2,270,d1/2,360,tw         ! 创建四分之一垫片,其编号为V4,见下图。

VPLOT                                 ! Volumes plots
/PNUM,AREA,0                          ! 关闭几何面编号显示
/PNUM,VOLU,1                          ! 显示几何体编号
/REPLOT                               ! Replot


VGLUE,1,2,3,4                         ! 粘接1号、2号、3号和4号几何体。
! VGLUE,ALL                           ! 粘接全部几何体。


/com,************** 3. 定义材性 **************


*GET,mtmax,MAT,,NUM,MAX               ! 获取当前定义的最大单元类型编号并将其赋予变量mtmax。
MPTEMP,1,0                            ! 为材料属性定义温度表
MPDATA,EX,mtmax+1,,2e5                ! 定义mtmax+1号材料属性弹性模量     
MPDATA,PRXY,mtmax+1,,0.28             ! 定义mtmax+1号材料属性泊松比
MPDATA,DENS,mtmax+1,,7.85e-9          ! 定义mtmax+1号材料属性密度


/com,************** 4. 定义单元 **************


*GET,etmax,ETYP,,NUM,MAX              ! 获取当前定义的最大单元类型编号并将其赋予变量etmax。
ET,etmax+1,SOLID185                   ! 定义单元类型为SOLID185,其单元识别号为etmax+1。 
KEYOPT,etmax+1,2,2                    ! 设置单元关键选项,KEYOPT(2)=2,Enhanced strain formulation。


/com,************** 5. 划分网格 **************


CSYS,18                               ! 激活局部主坐标系18
tw = 5                                ! 垫片厚度为5

MAT,mtmax+1
TYPE,etmax+1

LSEL,S,LENGTH,,tw                     ! 按长度选线,选择垫片厚度方向上的全部线。
LESIZE,ALL, , ,3, , , , ,0            ! 分3段(布种子)

LSEL,S,LENGTH,,0,d1/2-d0/2            ! 按长度选线,选择垫片半径方向上的全部线。
LESIZE,ALL, , ,3, , , , ,0            ! 分3段(布种子)


LSEL,S,LINE, ,ALL                     ! 选择全部线
LSEL,U,LENGTH,,tw                     ! 上一选择集中除去长度为tw的线
LSEL,U,LENGTH,,0,d1/2-d0/2            ! 上一选择集中除去长度为d1/2-d0/2的线
LESIZE,ALL, , ,10, , , , ,0           ! 分10段(布种子)


VSWEEP,1                              ! 对1号几何体进行扫掠分网
VSWEEP,5                              ! 对5号几何体进行扫掠分网
VSWEEP,6                              ! 对6号几何体进行扫掠分网
VSWEEP,7                              ! 对7号几何体进行扫掠分网

! VSWEEP,ALL 


/com,************** 6. 环形阵列 **************


CSYS,18                               ! 激活局部直角坐标系18
tw = 5 $ tf = 40                      ! 分别为垫片厚度和法兰厚度
VSEL,S,VOLU, ,ALL                     ! 选择所有几何体
VGEN,2,ALL, , , 0,0, -(tw+2*tf)       ! 沿局部轴z轴阵列,坐标增量为-(tw+2*tf),生成相关结点和单元。


CSYS,15                               ! 激活局部坐标系15
CLOCAL,17,1                           ! 根据激活的局部坐标系15定义新的局部柱坐标系17
CSYS,17                               ! 激活局部柱坐标系17
num = 55                              ! 螺栓总数
VSEL,S,VOLU, ,ALL                     ! 选择所有几何体
VGEN,4,ALL, , , ,360/num              ! 复制体,重复生成次数4。
                                      ! 当前激活坐标系下,关键点坐标值的偏移量为(--,360/num,0)
                                      ! 单个偏转角度为360/num


NUMMRG,ALL                            ! 对实体进行合并
NUMCMP,ALL                            ! 压缩所定义项的编号

ALLSEL,ALL,ELEM                       ! Selects all elements.
CM,WasherElems,ELEM                   ! 由所选实体生成一个组件
                                      ! 元件名称:WasherElems;元件中的数据类型:单元。


/com,************ 7. 输出cdb文件 *************


ALLSEL,ALL                            ! 全选 select all entities
CDWRITE,DB,'PartWasher','cdb',,'',''  ! 当前模型另存为 PartWasher.cdb 文件。

在这里插入图片描述

垫片模型

四、创建螺栓


FINISH                                ! 退出当前处理器
/CLEAR,ALL                            ! 清除所有
/PREP7                                ! 进人前处理器
*AFUN,RAD                             ! 指定角度单位为弧度(非必要步骤)
pi = ACOS(-1)                         ! 获取圆周率pi的数值(非必要步骤)
*AFUN,DEG                             ! 将角度单位切换为度(非必要步骤)


/com,************* 1. 创建坐标系 *************


CSYS,0                                ! 激活总体直角坐标系统
xc = 500 $ yc = 0 $ zc = 0            ! 局部坐标系原点位置(相对应当前激活坐标系)
thxy = 0 $ thyz = 0 $ thzx = 90       ! 局部坐标轴旋转角度度(相对应当前激活坐标系)
LOCAL,15,0,xc,yc,zc,thxy,thyz,thzx    ! 创建局部直角坐标系15


CSYS,15                               ! 激活局部坐标系15
xc = 1000 $ yc = 0 $ zc = 0           ! 局部坐标系原点位置(相对应当前激活坐标系)
thxy = 0 $ thyz = 0 $ thzx = 0        ! 局部坐标轴旋转角度度(相对应当前激活坐标系)
CLOCAL,16,1,xc,yc,zc,thxy,thyz,thzx   ! 根据激活的局部坐标系15定义新的局部柱坐标系16


/com,************** 2. 定义材料 **************


*GET,mtmax,MAT,,NUM,MAX               ! 获取当前定义的最大单元类型编号并将其赋予变量mtmax。

MPTEMP,,,,,,,,                        ! 为材料属性定义温度表
MPTEMP,1,0                            ! 为材料属性定义温度表
MPDATA,EX,mtmax+1,,2e5                ! 定义mtmax+1号材料属性弹性模量     
MPDATA,PRXY,mtmax+1,,0.28             ! 定义mtmax+1号材料属性泊松比
MPDATA,DENS,mtmax+1,,2700             ! 定义mtmax+1号材料属性密度


/com,************** 3. 定义单元 **************


*GET,etmax,ETYP,,NUM,MAX              ! 获取当前定义的最大单元类型编号并将其赋予变量etmax。
ET,etmax+1,BEAM189                    ! 定义梁单元


/com,************** 4. 定义截面 **************


*GET,scmax,SECP,,NUM,MAX              ! 获取当前定义的最大梁截面编号并将其赋予变量scmax。
SECTYPE,scmax+1,BEAM,CSOLID, ,0       ! 定义梁截面
SECOFFSET,CENT                        ! 设置截面偏置,即梁杆轴端点位于梁截面形心上。
de = 38                               ! 螺栓有效直径
SECDATA,de/2,10,3                     ! 应力截面直径,圆周方向10份,半径方向3份。


SECTYPE,scmax+2,BEAM,CSOLID, ,0 
SECOFFSET,CENT
ds = 26                               ! 螺栓缩进段直径
SECDATA,ds/2,10,3         


/com,************* 5. 创建关键点 *************


CSYS,16
CLOCAL,19,0                           ! 创建局部直角坐标系19

tf = 40 $ tw = 5                      ! 分别为法兰厚度及垫片厚度
startPntZ = -(tf+tw)                  ! 在局部坐标系19下,梁轴线起点z坐标值。
midPntZ = 0                           ! 螺栓预紧力施加位置处
endPntZ= tf+tw                        ! 在局部坐标系19下,梁轴线终点z坐标值。

*GET,lnmax,LINE,,NUM,MAX              ! 获取当前定义的最大几何线编号并将其赋予变量lnmax。
*GET,kpmax,KP,,NUM,MAX                ! 获取当前定义的最大关键点编号并将其赋予变量kpmax。

K, ,0,0,startPntZ                     ! 创建关键点
K, ,0,0,midPntZ 
K, ,0,0,20
K, ,0,0,endPntZ 


/com,************** 6. 连点成线 **************


LSTR,kpmax+1,kpmax+2                  ! 创建直线
*REPEAT,3,1,1


/com,*************** 7. 布种子 ***************


LESIZE,lnmax+1, , ,6,1, , , ,0        ! 单元数量6
LESIZE,lnmax+2, , ,6,1, , , ,0        ! 单元数量6
LESIZE,lnmax+3, , ,3,1, , , ,0        ! 单元数量3


/com,************** 8. 分配属性 **************


TYPE,etmax+1                          ! 激活单元类型号
MAT,mtmax+1                           ! 激活材料编号
SECNUM,scmax+1                        ! 激活截面编号
LMESH,lnmax+1                         ! 为编号为lnmax+1的线划分网格
LMESH,lnmax+2                         ! 为编号为lnmax+2的线划分网格

TYPE,etmax+1                          ! 激活单元类型号
MAT,mtmax+1                           ! 激活材料编号
SECNUM,scmax+2                        ! 激活截面编号
LMESH,lnmax+3                         ! 为编号为lnmax+2的线划分网格

/ESHAPE,1                             ! 显示梁截面
/REPLOT                               ! Replot


/com,************** 9. 环形阵列 **************


CSYS,15                               ! 激活局部坐标系15
CLOCAL,17,1                           ! 根据激活的局部坐标系15定义新的局部柱坐标系17
CSYS,17                               ! 激活局部柱坐标系17
num = 55                              ! 螺栓总数
!LSEL,S,LINE, ,ALL                    ! 选择全部线
LGEN,4,ALL, , , ,360/num, , ,0        ! 执行阵列,额外阵列数为3。

ALLSEL,ALL

NUMMRG,ALL                            ! 对实体进行合并
NUMCMP,ALL                            ! 压缩所定义项的编号

/ESHAPE,0                             ! 关闭梁截面显示
/REPLOT                               ! Replot

ALLSEL,ALL,ELEM                       ! Selects all elements.
CM,BoltElems,ELEM                     ! 由所选实体生成一个组件
                                      ! 元件名称:BoltElems;元件中的数据类型:单元。


/com,*********** 10. 创建预紧单元 ***********


CSYS,15                               ! 激活局部坐标系15
CLOCAL,17,1                           ! 根据激活的局部坐标系15定义新的局部柱坐标系17
CSYS,17                               ! 激活局部柱坐标系17

num = 55                              ! 螺栓总数
radius = 1000                         ! 法兰螺栓分度圆半径


*DO,i,1,4

    CMSEL,S,BoltElems                     ! 选择组件BoltElems(全部螺栓杆单元)
    ALLSEL,BELOW,ELEM                     ! 选择单元以下附属即构成单元的结点

    startAngle = (360/num)*(i-1)-(360/num/2-1)
    endAngle = (360/num)*(i-1)+(360/num/2-1)
    NSEL,R,LOC,Y,startAngle,endAngle
    ESLN,,1
    ESEL,R,ENAME,,BEAM189                 ! 选择BEAM189单元

    zmid = 0                              ! 预紧力施加位置处的z坐标值
    CLOCAL,201,1,radius,360/num*(i-1),0   ! 创建螺栓杆处的局部柱坐标系201
    PSMESH,1001+i, , ,ALL, , 15,Z, ,node(0,0,zmid),, , ,  !螺栓杆中间位置处插入预紧单元

    CSYS,17                               ! 激活局部柱坐标系17

*ENDDO


ALLSEL,ALL
EPLOT 


ALLSEL,ALL,ELEM                       ! Selects all elements.
CM,BoltElems,ELEM                     ! 由所选实体生成一个组件
                                      ! 元件名称:BoltElems;元件中的数据类型:单元。


/com,************* 11. 输出cdb文件 *************


ALLSEL,ALL                            ! 全选 select all entities
CDWRITE,DB,'PartBolt','cdb',,'',''    ! 当前模型另存为 PartBolt.cdb 文件。

在这里插入图片描述

螺栓模型

在这里插入图片描述

179 选择预紧单元

五、创建接触


FINISH                                ! 退出当前处理器
/CLEAR,ALL                            ! 清除所有
/PREP7                                ! 进人前处理器


/com,************** 1. 导入cdb文件 **************


CDREAD,db,'PartFlange','cdb',,'',''   ! 导入法兰模型
CDREAD,db,'PartWasher','cdb',,'',''   ! 导入垫片模型
CDREAD,db,'PartBolt','cdb',,'',''     ! 导入栓杆模型


ALLSEL,ALL
/ESHAPE,0                             ! 显示梁截面
/REPLOT                               ! Replot
EPLOT                                 ! Elements plots


/com,************** 2. 创建坐标系 **************


CSYS,0                                ! 激活总体直角坐标系统
xc = 500 $ yc = 0 $ zc = 0            ! 局部坐标系原点位置(相对应当前激活坐标系)
thxy = 0 $ thyz = 0 $ thzx = 90       ! 局部坐标轴旋转角度度(相对应当前激活坐标系)
LOCAL,15,0,xc,yc,zc,thxy,thyz,thzx    ! 创建局部直角坐标系15


CSYS,15                               ! 激活局部坐标系15
xc = 1000 $ yc = 0 $ zc = 0           ! 局部坐标系原点位置(相对应当前激活坐标系)
thxy = 0 $ thyz = 0 $ thzx = 0        ! 局部坐标轴旋转角度度(相对应当前激活坐标系)
CLOCAL,16,1,xc,yc,zc,thxy,thyz,thzx   ! 根据激活的局部坐标系15定义新的局部柱坐标系16


/com,************** 3. 螺栓端部与上法兰侧垫片间MPC绑定接触


*GET,etmax,ETYP, ,NUM,MAX             ! 获取模型空间当前最大单元类型号
*GET,rlmax,RCON, ,NUM,MAX             ! 获取模型空间当前最大实常数号
 
ET,etmax+1,TARGE170                   ! 定义目标面单元 - 连续面
KEYOPT,etmax+1,2,1                    ! 用户指定 rigid target nodes

ET,etmax+2,CONTA174                   ! 定义接触面单元 - 离散面
KEYOPT,etmax+2,2,2                    ! 接触算法:MPC。
KEYOPT,etmax+2,4,1                    ! 接触探测点位置:On nodal point - normal from contact surface 。
KEYOPT,etmax+2,12,5                   ! 接触面行为:始终绑定。

num = 55                              ! 螺栓总数
radius = 1000                         ! 法兰螺栓分度圆半径
tf = 40 $ tw = 5                      ! 分别为法兰厚度及垫片厚度
startPntZ = -(tf+tw)                  ! 在局部坐标系15下,梁轴线起点z坐标值。
midPntZ = 0                           ! 螺栓预紧力施加位置处
endPntZ= tf+tw                        ! 在局部坐标系15下,梁轴线终点z坐标值。
d0 = 40                               ! 螺栓孔直径/垫片内径
d1 = 70                               ! 垫片外径

CSYS,17                               ! 激活局部坐标系17


*DO,i,1,4                                 ! DO循环,分别执行 i=1,2,3,4 共执行4次。

    CLOCAL,201,1,radius,360/num*(i-1),0   ! 螺栓杆处的局部柱坐标系201

    R,rlmax+i                             ! 定义新的实常数
    REAL,rlmax+i                          ! 激活实常数

    TYPE,etmax+1                          ! 激活目标单元类型号
    TSHAP,PILO                            ! 目标单元几何形状为导向结点

    CMSEL,S,BoltElems                     ! 选择组件BoltElems(全部螺栓杆单元)
    ALLSEL,BELOW,ELEM                     ! 选择单元以下附属即构成单元的结点
    E,NODE(0,0,endPntZ)                   ! 在结点(0,0,endPntZ)处创建目标单元
    ALLSEL,ALL                            ! 全选,清除上述选择集。

    TYPE,etmax+2                          ! 激活接触单元类型号
    CMSEL,S,WasherElems                   ! 选择组件WasherElems(全部垫片单元)
    ALLSEL,BELOW,ELEM                     ! 选择单元以下附属即构成单元的结点
    NSEL,R,EXT                            ! 选择外表面结点

    ! 按坐标位置选择结点,最终选出垫片外表面结点。

    NSEL,R,LOC,X,0,d1/2+0.5             
    NSEL,R,LOC,Z,endPntZ-0.5,endPntZ+0.5
 
    ESURF, ,TOP                           ! 在存在已选单元的自由面上生成重叠单元,即创建接触单元。

    ALLSEL,ALL
    CSYS,17

*ENDDO


/com,************** 4. 螺栓端部与下法兰侧垫片间MPC绑定接触


*GET,etmax,ETYP, ,NUM,MAX             ! 获取模型空间当前最大单元类型号
*GET,rlmax,RCON, ,NUM,MAX             ! 获取模型空间当前最大实常数号
 
ET,etmax+1,TARGE170                   ! 定义目标面单元 - 连续面
KEYOPT,etmax+1,2,1                    ! 用户指定 rigid target nodes

ET,etmax+2,CONTA174                   ! 定义接触面单元 - 离散面
KEYOPT,etmax+2,2,2                    ! 接触算法:MPC。
KEYOPT,etmax+2,4,1                    ! 接触探测点位置:On nodal point - normal from contact surface 。
KEYOPT,etmax+2,12,5                   ! 接触面行为:始终绑定。

num = 55                              ! 螺栓总数
radius = 1000                         ! 法兰螺栓分度圆半径
tf = 40 $ tw = 5                      ! 分别为法兰厚度及垫片厚度
startPntZ = -(tf+tw)                  ! 在局部坐标系15下,梁轴线起点z坐标值。
midPntZ = 0                           ! 螺栓预紧力施加位置处
endPntZ= tf+tw                        ! 在局部坐标系15下,梁轴线终点z坐标值。
d0 = 40                               ! 螺栓孔直径/垫片内径
d1 = 70                               ! 垫片外径

CSYS,17                               ! 激活局部坐标系17


*DO,i,1,4                                 ! DO循环,分别执行 i=1,2,3,4 共执行4次。

    CLOCAL,201,1,radius,360/num*(i-1),0   ! 螺栓杆处的局部柱坐标系201

    R,rlmax+i                             ! 定义新的实常数
    REAL,rlmax+i                          ! 激活实常数

    TYPE,etmax+1                          ! 激活目标单元类型号
    TSHAP,PILO                            ! 目标单元几何形状为导向结点

    CMSEL,S,BoltElems                     ! 选择组件BoltElems(全部螺栓杆单元)
    ALLSEL,BELOW,ELEM                     ! 选择单元以下附属即构成单元的结点
    E,NODE(0,0,startPntZ)                 ! 在结点(0,0,startPntZ)处创建目标单元
    ALLSEL,ALL                            ! 全选,清除上述选择集。

    TYPE,etmax+2                          ! 激活接触单元类型号
    CMSEL,S,WasherElems                   ! 选择组件WasherElems(全部垫片单元)
    ALLSEL,BELOW,ELEM                     ! 选择单元以下附属即构成单元的结点
    NSEL,R,EXT                            ! 选择外表面结点

    ! 按坐标位置选择结点,最终选出垫片外表面结点。

    NSEL,R,LOC,X,0,d1/2+0.5             
    NSEL,R,LOC,Z,startPntZ-0.5,startPntZ+0.5
 
    ESURF, ,TOP                           ! 在存在已选单元的自由面上生成重叠单元,即创建接触单元。

    ALLSEL,ALL
    CSYS,17

*ENDDO


/com,************** 5. 创建法兰与垫片间标准接触


*GET,etmax,ETYP, ,NUM,MAX             ! 获取模型空间当前最大单元类型号
*GET,rlmax,RCON, ,NUM,MAX             ! 获取模型空间当前最大实常数号
 
R,rlmax+1                             ! 定义新的实常数

ET,etmax+1,170                        ! 定义目标面单元 - 连续面

ET,etmax+2,174                        ! 定义接触面单元 - 离散面
KEYOPT,etmax+2,2,0                    ! 接触算法:增广拉格朗日乘子法。
KEYOPT,etmax+2,4,0                    ! 接触探测点位置:高斯积分点。
KEYOPT,etmax+2,5,4                    ! CNOF/ICONT Automated adjustment: Auto ICONT.
KEYOPT,etmax+2,9,2                    ! 初始穿透/间隙效应:包含初始几何穿透或间隙和偏置,但带有坡道效应。
KEYOPT,etmax+2,10,2                   ! 接触刚度更新:在每个迭代步基于下层单元目前的平均应力进行更新,
                                      ! 但在整个求解过程中实际弹性滑移始终不超过最大允许极限。

MP,MU,etmax+1,0.3                     ! 定义摩擦系数

CSYS,17                               ! 激活局部坐标系17
REAL,rlmax+1                          ! 激活实常数
MAT,etmax+1                           ! 激活材料编号
tf = 40 $ tw = 5                      ! 分别为法兰厚度及垫片厚度

TYPE,etmax+1                          ! 激活目标单元类型号

CMSEL,S,WasherElems                   ! 选择组件WasherElems(全部螺栓杆单元)
ALLSEL,BELOW,ELEM                     ! 选择单元以下附属即构成单元的全部结点
NSEL,R,EXT                            ! 选择表面全部结点
NSEL,R,LOC,Z,-tf-0.5,tf+0.5           ! 选择位于接触面上的全部结点
ESLN,S,0                              ! 选择结点附属单元,0表示单元的任何一个结点被选中,则该单元被选中。

ESURF                                 ! 在存在已选单元的自由面上生成重叠单元,即创建接触单元。
ALLSEL,ALL                            ! 全选,清除上述选择集。



TYPE,etmax+2                          ! 激活接触单元类型号
CMSEL,S,TopFlangeElems                ! 选择组件TopFlangeElems(上法兰全部单元)
CMSEL,A,BotFlangeElems                ! 补选组件BotFlangeElems(上法兰全部单元)

ALLSEL,BELOW,ELEM                     ! 选择单元以下附属即构成单元的结点
NSEL,R,EXT                            ! 选择外表面结点
NSEL,U,LOC,Z,-tf+0.5,tf-0.5           ! 选择位于接触面上的全部结点
ESURF                                 ! 在存在已选单元的自由面上生成重叠单元,即创建接触单元。
ALLSEL,ALL                            ! 全选,清除上述选择集。


/com,************** 6. 创建法兰间的标准接触


*GET,etmax,ETYP, ,NUM,MAX             ! 获取模型空间当前最大单元类型号
*GET,rlmax,RCON, ,NUM,MAX             ! 获取模型空间当前最大实常数号
 
R,rlmax+1                             ! 定义新的实常数

ET,etmax+1,170                        ! 定义目标面单元 - 连续面

ET,etmax+2,174                        ! 定义接触面单元 - 离散面
KEYOPT,etmax+2,2,0                    ! 接触算法:增广拉格朗日乘子法。
KEYOPT,etmax+2,4,0                    ! 接触探测点位置:高斯积分点。
KEYOPT,etmax+2,5,4                    ! CNOF/ICONT Automated adjustment: Auto ICONT.
KEYOPT,etmax+2,9,2                    ! 初始穿透/间隙效应:包含初始几何穿透或间隙和偏置,但带有坡道效应。
KEYOPT,etmax+2,10,2                   ! 接触刚度更新:在每个迭代步基于下层单元目前的平均应力进行更新,
                                      ! 但在整个求解过程中实际弹性滑移始终不超过最大允许极限。


MP,MU,etmax+1,0.3                     ! 定义摩擦系数


CSYS,17                               ! 激活局部坐标系17
REAL,rlmax+1                          ! 激活实常数
MAT,etmax+1                           ! 激活材料编号
tf = 40 $ tw = 5                      ! 分别为法兰厚度及垫片厚度

TYPE,etmax+1                          ! 激活目标单元类型号
CMSEL,S,TopFlangeElems                ! 选择组件TopFlangeElems(上法兰全部单元)
ALLSEL,BELOW,ELEM                     ! 选择单元以下附属即构成单元的结点
NSEL,R,EXT                            ! 选择外表面结点
NSEL,R,LOC,Z,-0.5,0.5                 ! 选择位于接触面上的全部结点
ESURF                                 ! 在存在已选单元的自由面上生成重叠单元,即创建接触单元。
ALLSEL,ALL                            ! 全选,清除上述选择集。


TYPE,etmax+2                          ! 激活接触单元类型号
CMSEL,S,BotFlangeElems                ! 选择组件BotFlangeElems(下法兰全部单元)
ALLSEL,BELOW,ELEM                     ! 选择单元以下附属即构成单元的结点
NSEL,R,EXT                            ! 选择外表面结点
NSEL,R,LOC,Z,-0.5,0.5                 ! 选择位于接触面上的全部结点
ESURF                                 ! 在存在已选单元的自由面上生成重叠单元,即创建接触单元。
ALLSEL,ALL                            ! 全选,清除上述选择集。(select all entities)


/com,************** 7. 定义加载点 **************


*GET,rlmax,RCON,0,NUM,MAX   ! 获取模型空间当前最大实常数号
*GET,etmax,ETYP,,NUM,MAX    ! 获取模型空间当前最大单元类型号
*GET,ndmax,NODE,,NUM,MAX    ! 获取模型空间当前最大结点编号

R,rlmax+1                   ! 定义新实常数

ET,etmax+1,TARGE170         ! 定义目标面单元 - 连续面   
KEYOPT,etmax+1,2,1          ! Boundary conditions for rigid target nodes: Specified by user.

ET,etmax+2,CONTA174         ! 定义接触面单元 - 离散面
KEYOPT,etmax+2,2,2          ! Contact algorithm: Multipoint constraint (MPC).
KEYOPT,etmax+2,4,1          ! Location of contact detection point: 
                            ! On nodal point - normal from contact surface
KEYOPT,etmax+2,12,5         ! Behavior of contact surface: Bonded (always).

CSYS,17                               ! 激活局部坐标系17
num = 55                              ! 螺栓总数
tf = 40                               ! 法兰厚度

N,ndmax+1,1000,-360/num,0.5*tf        ! 新建结点,结点编号为ndmax+1。
NSEL,,NODE,,NODE(1000,-360/num,0.5*tf)
CM,loadNode,Node                      ! 为加载点创建一组件
ALLSEL,ALL                            ! 退出选择集,显示全部。

CSYS,15
CMSEL,S,loadNode
NROTAT,ALL                            ! 旋转结点坐标系,方便加载。
ALLSEL,ALL                            ! 退出选择集,显示全部。

CSYS,17                               ! 激活局部坐标系17
REAL,rlmax+1                          ! 激活实常数
TYPE,etmax+1                          ! 激活目标单元类型号
TSHAP,PILO                            
E,ndmax+1                             ! 创建目标单元
ALLSEL,ALL                            ! 退出选择集,显示全部。


REAL,rlmax+1                          ! 激活实常数
TYPE,etmax+2                          ! 激活目标单元类型号
CMSEL,S,TopFlangeElems                ! 选择组件TopFlangeElems(上法兰全部单元)
ALLSEL,BELOW,ELEM                     ! 选择单元以下附属即构成单元的结点
NSEL,R,EXT                            ! 选择外表面结点
NSEL,R,LOC,Y,-(360/num/2+0.5),-(360/num/2-0.2)      ! 选择位于加载面上的全部结点
ESURF                                 ! 在存在已选单元的自由面上生成重叠单元,即创建接触单元。
ALLSEL,ALL                            ! 全选,清除上述选择集。(select all entities)

EPLOT   

!NUMCMP,ALL                           ! 压缩所定义项的编号(存在预紧单元时别瞎压缩全部)

!/DELETE,'PartFlange','cdb'           ! 删除部件文件PartFlange.cdb
!/DELETE,'PartWasher','cdb'           ! 删除部件文件PartWasher.cdb
!/DELETE,'PartBolt','cdb'             ! 删除部件文件PartBolt.cdb


/com,************ 8. 输出装配cdb文件 ************


CDWRITE,DB,'AllAsmbs','cdb',,'',''    ! 当前模型另存为 AllAsmbs.cdb 文件。
                                      ! AllAsmbs.cdb为装配及接触创建完成后的有限元模型文件。

在这里插入图片描述

接触的创建

六、加载及求解


在这里插入图片描述

load.csv文件

FINISH                                ! 退出当前处理器
/CLEAR,ALL                            ! 清除所有
FINISH                                ! Exits normally from a processor.
/FILNAME,BoltPreloadCase,0            ! Changes the Jobname for the analysis. 
FINISH 
/PREP7                                ! 访问前处理器
*AFUN,DEG                             ! 设置角度单位为度
SHPP,OFF,,NOWARN                      ! 关闭单元形状检测警告


/com,************** 1. 导入cdb文件 **************


CDREAD,DB,'AllAsmbs','cdb',,'',''     ! 导入装配体模型


/com,************** 2. 读取荷载文件 **************


*DIM,csvLoads,TABLE,7,6,1             ! 矩阵维度:7行6列1页;Table Array 名称为:csvLoads。
*TREAD,csvLoads,'loads','csv',''      ! .csv文件名为loads.csv,load.csv文件见上图。


/com,************* 3. 压缩模型编号 **************


NUMCMP,NODE                           ! 压缩结点编号
NUMCMP,ELEM                           ! 压缩单元编号
NUMCMP,MAT                            ! 压缩材料编号
NUMCMP,TYPE                           ! 压缩单元类型号
NUMCMP,REAL                           ! 压缩实常数编号

EPLOT                                 ! Plot elements


/com,************ 4. 指定位移边界条件 *************


CSYS,17                               ! 激活局部坐标系17

CMSEL,S,BotFlangeElems                ! 选择组件BotFlangeElems(下法兰全部单元)
ALLSEL,BELOW,ELEM                     ! 选择单元以下附属即构成单元的结点
NSEL,R,EXT                            ! 选择外表面结点
NSEL,R,LOC,Y,(7*360/num/2-0.5),(7*360/num/2+0.5)     ! 选择位于加载面上的全部结点
CM,BCNodes,NODE                       ! 创建组件


CSYS,0
D,BCNodes,ALL,0                       ! 约束组件BCNodes内所有结点的全部自由度
ALLSEL,ALL


/com,************ 5. 施加螺栓预紧力 *************


preload=790*1000                      ! 施加790KN的预紧力
num = 4                               ! 施加预紧力的螺栓个数


*DO,i,1,num

    SLOAD,1001+i,9,LOCK,FORC,preload,1,2 

*ENDDO


/com,************ 6. 预紧工况分析 *************


/SOLU                 ! 访问求解器

! 6.1 设置求解控制

ANTYPE,STATIC         ! 静力分析
NLGEOM,OFF            ! Ignores large-deflection effects 关闭几何非线性
EQSLV,PCG,1E-4        ! 预条件共轭梯度法/公差:1E-4。
NSUBST,2,2,2          ! 荷载子步数2,最大子步数2,最小子步数2。
AUTOTS,ON             ! 自动荷载步(浮动荷载步)/默认

OUTRES,ERASE          ! Resets OUTRES specifications to their default values.
OUTRES,ALL,ALL        ! Writes the solution of the specified solution results item for every substep. 
LSWRITE,1             ! LSNUM=1 载荷步文件编号

ALLSEL,ALL
SOLVE                 ! 提交求解器进行求解

FINISH

! 6.2 删除非必要文件

/DELETE,'','esav',''   
/DELETE,'','emat',''   
/DELETE,'','PCS',''
/DELETE,'','stat',''
/DELETE,'','mntr','' 
/DELETE,'','osav',''

 !!! 特别注意:rdb、r001、ldhi文件务必保留,以便后续重启动使用。 


/com,************ 7. 荷载工况分析 *************


! 分工况加载求解

loadCaseNum = 7

*DO,i,1,loadCaseNum,1  

    ! 循环变量i的初值为1终止为7增量为1      

    /FILNAME,LoadCase%i%,0    ! 设置 Job Name 

    /COPY, 'BoltPreloadCase','rdb','','LoadCase%i%','rdb','' 
           ! 复制文件BoltPreloadCase.rdb并重命名为LoadCase1.rdb

    /COPY, 'BoltPreloadCase','r001','','LoadCase%i%','r001','' 
    /COPY, 'BoltPreloadCase','ldhi','','LoadCase%i%','ldhi',''
   

    /SOLU                          ! 访问求解器

    /DELETE,'parameter','txt','' 
    PARSAVE,SCALAR,parameter,txt

    ANTYPE,STATIC,RESTART,1,2,0    ! 静力/重启动/LDSTEP=1/SUBSTEP=2

    PARRES,CHANGE,'parameter','txt',''

    NSUBST,5,5,5                   ! 荷载子步数5,最大子步数5,最小子步数5。
    AUTOTS,ON                      ! 自动荷载步(浮动荷载步)/默认
    KBC,0                          ! 渐变方式荷载步

    !OUTRES,ALL,ALL                ! 写入每个荷载步的全部子步内容

    OUTRES,ALL,LAST                ! 写入每个荷载步的最后一个子步内容

    CSYS,15

    F,loadNode,FX,csvLoads(i,1)
    F,loadNode,FY,csvLoads(i,2)
    F,loadNode,FZ,csvLoads(i,3)
    F,loadNode,MX,csvLoads(i,4)
    F,loadNode,MY,csvLoads(i,5)
    F,loadNode,MZ,csvLoads(i,6)
 
    ALLSEL,ALL

    SOLVE

    FINISH

    /DELETE,,'emat'
    /DELETE,,'esav'
    /DELETE,,'osav'
    /DELETE,,'r001'
    /DELETE,,'r002'
    /DELETE,,'rdb' 
    /DELETE,,'full' 
    /DELETE,,'ldhi'
    /DELETE,,'mntr'
    /DELETE,,'pcs'
    /DELETE,,'pc6'
    /DELETE,,'stat' 

*ENDDO

在这里插入图片描述

边界条件的指定

  以上命令运行后,得到如下 8 个计算结果文件,分别为 BoltPreloadCase.rst、LoadCase1.rst ~ LoadCase7.rst 。其中,BoltPreloadCase.rst 为结构仅在螺栓预紧力作用下的计算结果文件,LoadCase1.rst ~ LoadCase7.rst 为结构在螺栓预紧力和附加外载共同作用下的计算结果文件。


在这里插入图片描述



七、后处理


FINISH                                ! 退出当前处理器
/CLEAR,ALL                            ! 清除所有
FINISH                                ! Exits normally from a processor. 
/PREP7                                ! 访问前处理器
*AFUN,DEG                             ! 设置角度单位为度
SHPP,OFF,,NOWARN                      ! 关闭单元形状检测警告

CDREAD,DB,'AllAsmbs','cdb',,'',''     ! 导入装配体模型


/com,******************** 1. 螺栓参数 ********************


pi = 3.14159265
As = 1120                             ! 应力面积
de = SQRT(As*4/pi)                    ! 有效直径
d = 42                                ! 公称直径
d2 = 39.08                            ! 螺纹中径
p = 4.5                               ! 螺纹螺距
num = 4                               ! 螺栓个数
loadCaseNum = 7                       ! 工况个数
preload=790*1000                      ! 预紧力

W = pi*(de**3)/32.0                   ! 抗弯截面模量
Wt = 2*W                              ! 抗扭截面模量

! 螺栓等效应力计算

/POST1

num = 55                              ! 螺栓总数
radius = 1000                         ! 法兰螺栓分度圆半径
tf = 40 $ tw = 5                      ! 分别为法兰厚度及垫片厚度
startPntZ = -(tf+tw)                  ! 在局部坐标系15下,梁轴线起点z坐标值。
midPntZ = 0                           ! 螺栓预紧力施加位置处(梁单元预紧位置点)
endPntZ= tf+tw                        ! 在局部坐标系15下,梁轴线终点z坐标值。
d0 = 40                               ! 螺栓孔直径/垫片内径
d1 = 70                               ! 垫片外径
calBoltNum = 4                        ! 模型中螺栓个数

*DEL,boltResults
*DIM,boltResults,ARRAY,calBoltNum,9

torsion = preload*d2*(p/(pi*d2)+1.155*0.09)/2   ! 预紧扭矩 VDI2230-Part1
tau = torsion/wt                                ! 预紧扭转剪应力

/COPY, 'BoltPreloadCase','rst','','LoadCase0','rst',''  ! 复制预紧力工况结果文件


/com,************* 2. 内力提取并计算等效应力 *************


*DO,i,0,loadCaseNum,1 

    ! 工况循环

    FILE,LoadCase%i%,'rst'   ! .rst文件名
    INRES,ALL                ! 从结果文件中读取全部数据
    SET,LAST                 ! 从结果文件中读取最后一个荷载步的数据

    loadCaseNum = i
  
    *DO,j,1,calBoltNum,1

        ! 螺栓循环

        CSYS,17
        ESEL,S,ENAME,,189               ! 选择189单元
        ALLSEL,BELOW,ELEM               ! 选择单元附属结点
        startAngle = (360/num)*(j-1)-(360/num/2-1)
        endAngle = (360/num)*(j-1)+(360/num/2-1)
        NSEL,R,LOC,Y,startAngle,endAngle
        NSEL,R,LOC,Z,startPntZ+7.5-0.5,startPntZ+2*7.5+0.5
        ESLN,R,1                        ! 单元全部结点被选中该单元才被选中
        *GET,elenum,ELEM,,NUM,Min       ! 获取梁单元编号



        ETABLE,ForceX,SMISC,1           ! 梁单元始端截面轴向力
        ETABLE,MomentY,SMISC,2          ! 梁单元始端截面绕局部y轴弯矩
        ETABLE,MomentZ,SMISC,3          ! 梁单元始端截面绕局部z轴弯矩

        ! ETABLE,ForceX,SMISC,14        ! 梁单元终端截面轴向力
        ! ETABLE,MomentY,SMISC,15       ! 梁单元终端截面绕局部y轴弯矩
        ! ETABLE,MomentZ,SMISC,16       ! 梁单元终端截面绕局部z轴弯矩


        *GET,FxVal,ELEM,elenum,ETAB,ForceX       ! 获取梁单元终端截面轴向力数值
        *GET,MyVal,ELEM,elenum,ETAB,MomentY      ! 获取梁单元终端截面绕局部y轴弯矩数值
        *GET,MzVal,ELEM,elenum,ETAB,MomentZ      ! 获取梁单元终端截面绕局部z轴弯矩数值


        boltID = j                                      ! 螺栓编号

        MyzVal = SQRT( MyVal**2 + MzVal**2 )            ! 合弯矩

        sigmaN = ABS(FxVal/As)                          ! 拉压正应力绝对值
        sigmaM = MyzVal/W                               ! 弯曲正应力绝对值
        Sigma = sigmaN + sigmaM                         ! 最大正应力
        eqvStress = SQRT( Sigma**2 + 3*(0.5*tau)**2 )   ! VDI2230-Part1

        ALLSEL,ALL
        CSYS,17

        boltResults(j,1) = loadCaseNum
        boltResults(j,2) = boltID
        boltResults(j,3) = FxVal/1E3
        boltResults(j,4) = MyzVal/1E6
        boltResults(j,5) = sigmaN
        boltResults(j,6) = sigmaM
        boltResults(j,7) = sigma
        boltResults(j,8) = tau
        boltResults(j,9) = eqvStress

    *ENDDO

    !*
    !*  汇总计算结果输出
    !* 

    outFileName='BoltResultsLoadCase%i%'     ! 指定.txt文件名

    *CFOPEN,outFileName,'txt'                ! 打开文件LoadCase1BoltResults.txt

    *VWRITE,
    ('  LoadCaseNum    BoltNum    N (kN)    M (kN·m)    SigmaN (N/mm^2)    SigmaM (N/mm^2)    Sigma (N/mm^2)    Tau (N/mm^2)    EqvStress (N/mm^2)  ')

    *VWRITE,boltResults(1,1), boltResults(1,2),boltResults(1,3), boltResults(1,4), boltResults(1,5), boltResults(1,6), boltResults(1,7), boltResults(1,8), boltResults(1,9)
        (F9.1,F13.1, F12.2, F11.3, F16.2, F18.2, F19.2, F18.2, F19.2)

    *CFCLOS   

*ENDDO


  该命令流运行后,将得到 8 个 .txt 文件,文件内存储这每个工况下,每个螺栓的计算结果数据,如下图所示。



在这里插入图片描述


在这里插入图片描述






  • 14
    点赞
  • 103
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 5
    评论
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Hulunbuir

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值