精华内容
下载资源
问答
  • ANSYS 有限元分析 命令流 实例

    千次阅读 2020-07-09 11:33:33
    ANSYS 有限元分析 概述 ANSYS 有限元分析 坐标系/工作平面 ANSYS 有限元分析 几何建模 ANSYS 有限元分析 网格划分 ANSYS 有限元分析 选择与组件 ANSYS 有限元分析 修改与编辑 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 文件,文件内存储这每个工况下,每个螺栓的计算结果数据,如下图所示。



    在这里插入图片描述


    在这里插入图片描述






    展开全文
  • 有限元分析软件ANSYS命令流中文
  • 清华大学出版社,曾攀有限元基础教程,书中ANSYS算例命和GUI操作流程。
  • 重庆大学土木学院非线性结构力学及有限元大作业几何非线性桁架计算
  • 【ANSYS算例】3.2.5(3) 四杆桁架结构的有限元分析(GUI)及命令流.doc
  • 使用 ANSYS 创建有限元模型的主要方法流程 1. 创建或者导入实体模型; 2. 进行网格划分预备工作; 3. 对实体模型进行网格划分。

    使用 ANSYS 创建有限元模型的主要方法流程

    1. 创建或者导入实体模型;
    2. 进行网格划分预备工作;
    3. 对实体模型进行网格划分。
    
    展开全文
  • 命令流.txt

    2019-10-15 21:31:21
    有限元模型APDL命令流,比较实用,内容有建立工作文件名和工作标题、定义单元类型、定义材料性能参数、创建有限元模型单元划分
  • ansys 命令流解释

    2014-10-17 16:40:10
    大型CAE有限元分析软件ansys 主要命令流的详细解释
  • ansys命令流汇总

    2013-01-19 13:58:51
    ANSYS有限元分析 命令流汇总 好久没用到了 分享下..
  • 详细的有限元模拟隧道开挖命令流,利用台阶法开挖,内容详细明了,一看就懂 详细的有限元模拟隧道开挖命令流,利用台阶法开挖,内容详细明了,一看就懂
  • 三个基础知识点 一、分析了对称边界条件与反对称边界条件 二、列出了几何模型与有限元模型属性指定命 三、介绍了后处理命令---单元表"ETABLE"命令

    一、对称边界条件与反对称边界条件

    使用功能:在节点上施加对称或反对称约束

    DSYM,Lab ,Normal,KCN
    

    Lab:对称标签。若为SYMM,生成对称约束;若为ASYM,生成反对称约束。
    Normal:确定约束的表面方向标签。表面一般假定与KCN坐标系统中的坐标方向垂直。它有:
    X:表面与X方向的坐标垂直(默认设置),对非直角坐标系则为R方向。.
    Y:表面与Y方向的坐标垂直,对非直角坐标系则为θ方向。
    Z:表面与Z方向的坐标垂直,对球形和环形坐标则为Φ方向。
    KCN:用来定义表面方向的整体或局部坐标系统的参考号。
    使用提示:在所选择的节点上施加对称或反对称DOF约束。首先,节点自动旋转到KCN 指定的坐标系,然后在所选择的DOF(仅限于位移、速度和磁的自由度)集中生成-一个0值约束,约束就被施加在节点坐标系上。对称和反对称约束主要是根据模型上有效自由度的情况而生成约束即单元上节点的自由度。在生成器中使用的自由度标签主要是取决于Normal标签。

    1、对称边界条件

    对称边界条件在结构分析中是指:不能发生对称面外(out-of-plane)的移动(translations)和对称面内(in-plane)的旋转(rotations)。即在结构中施加对称条件为指向边界的位移和绕边界的转动被固定。 
    例如,若对称面的法向为X,如果你在对称面上的节点上施加了对称边界条件,那么:
     1)不能发生对称面外的移动 导致节点处的UX(法向位移)为0。
     2)不能发生对称面内的旋转 导致ROTZ,ROTY(绕两个切线方向的转角)也为0。

    2、反对称边界条件

    反对称边界条件在结构分析中是指:不能发生对称面(out-of-plane)的移动(translations)和对称面外(in-plane)的旋转(rotations)。 即:在结构中施加反对称条件为平行边界的位移和绕垂直边界的转动被固定。 
    例如,若对称面的法向为X,如果你在对称面上的节点上施加了反对称边界条件,那么:
     1)不能发生对称面的移动导致节点处的UY,UZ(切向位移)为0。
     2)不能发生对称面外的旋转导致ROTX(绕法线方向的转角)也为0

    二、几何模型与有限元模型属性指定命令

    几何模型指的是由点、线、面构成的连续的实体模型,有限元模型则指的是通过有限元方法把连续的几何模型划分为有限个单元的实体模型。即网格划分前的模型是几何模型,划分后的是有限元模型。所以,在划分前后他们属性的指定也有所差异。

    2.1.几何模型

    2.1.1“KATT”命令

    使用功能:给所有选择且未划分网格的关键点指定属性。

    KATT,MAT,REAL, TYPE,ESYS
    

    其中 MAT,REAL,TYPE,ESYS:给所有选择且未划分网格的关键点指定材料号、实常数设置号、单元类型号和坐标系编号。

    2.1.2“LATT”命令

    使用功能:给所有选择且未划分网格的线设置划分单元的属性。

    LATT,MAT,REAL,TYPE,--,KB ,KE,SECNUM
    

    其中:
    MAT,REAL,TYPE:给所选择且未划分网格的线指定材料号、实常数号、单元类型号。
    KB,KE:所选没有划分网格线的开始和末端关键点方向。
    SECNUM:与所选择未划分网格线相关的剖面标识符。

    2.1.3“AATT"命令

    使用功能:给所选择的面设置划分网格单元属性。

    AATT,MAT,REAL,TYPE,ESYS,SECN
    

    其中:
    SECN:与所选面相关的剖面号。
    该命令的其他变量和使用提示参考“KATT”命令。

    2.1.4“VATT”命令

    使用功能:给所选择的体设置划分网格单元属性

    VATT,MAT,REAL, TYPE,ESYS
    

    该命令中变量的意义和使用提示参考命令“KATT”。

    2.2有限元模型

    2.2.1.“TYPE”命令

    使用功能:设置单元类型属性指示器。

    TYPE, 1TYPE
    

    其中,ITYPE:指定单元类型号(默认为1)。
    使用提示:给随后生成的单元激活一个单元类型号。该编号是“T”命令定义的单元类型号(ITYPE),单元类型号可由“/PNUM”命令显示。

    2.2.2"MAT"命令

    使用功能:设置单元材料属性指示器,如图4-98所示。

    MAT,MAT
    

    其中,MAT:给随后生成的单元指定材料编号,默认为1。

    2.2.3.“REAL”命令

    使用功能:单元实常数属性指示器。

    REAL,NSET
    

    其中,NSET:给随后生成的单元指定实常数编号,默认为1。

    三、后处理命令-单元表"ETABLE"命令

    使用功能:生成一个单元表,并用数据填充以便后面使用。

    ETABLE, Lab , ltem , Comp
    

    其中:
    Lab:用户指定的单元表名称,不能超过8个字符,它是唯一的并可在随后的命令中使用。默认方式将分别由Item 和 Comp 标签的前4个字符连接而成。如果与前面已定义的标签相同,将覆盖以前定义的标签,最多可以定义200个具有不同标签名的单元表。ANSYS 预定义标签有:REFL、STAT 和 ERAS。
    若Lab = REFL,则按照最近的“ETABLE”命令,指定重新填充由以前的“ETABLE”命令定义的所有单元表,对于载荷已经改变后,重新填充一个表格是很方便的。
    若Lab = STAT,显示已贮存的表格值;
    若Lb = ERAS,删除整个单元表。
    Item,Comp:确定项目的标签或组合标签名(根据需要),也可以使用字符参数名,若ltem = ERAS,删除一个Lab 列。
    举例——BEAM4单元
    在这里插入图片描述
    在这里插入图片描述
    beam4号单元有I、J两个节点,根据上表的数据,运用ETABLE命令可以得到所需要的结果值。

    ETABLE,T_I,SMISC,1 !指的是I节点处x方向的轴向力(mforx)
    ETABLE,T_I,SMISC,7	!指的是J节点出x方向的轴向力(mforx)
    

    其中mforx、MMOMZ、SDIR、SBYT等代表的项目可以查看帮助文档的解释。

    列表出单元表的内容命令——PRETAB

    PRETAB,Lab1,Lab2,Lab3,Lab4,Lab5,Lab6,Lab7,Lab8,Lab9
    

    其中,Lab1 , … , Lab9:列表出所选择的内容。有效的标签可以为空(blank)或用命令“ETABLE”创建的标签。对于Lab1来说,比较方便的标签是选择一组标签(最大可达到10个):GRP1是首先贮存的前10个内容,GRP2是11~20的内容,如此往下类推。命令“ETABLE,STAT”可以列表出贮存内容的顺序,如果所有的标签都为空,列表出前10个贮存的内容。

    使用提示:列表出由命令“ETABLE”创建并贮存在表格中的内容,对于所选单元按排序的方式列表出其内容。

    展开全文
  • 通过ANSYS命令流的方式建立了水工结构大型三角闸门的有限元模型
  • ansys命令流汇总.pdf

    2008-12-04 16:16:00
    有限元分析必备资料,绝对有用 ansys命令流汇总
  • 目录加载分析荷载自由度约束命令流 加载分析 荷载 荷载包括边界条件和外部或在内部作用力函数,主要分为以下6类: 自由度约束:固定约束、支座约束等 集中载荷:力、力矩等 表面载荷:压力等 体载荷:温度 惯性载荷...

    荷载

    荷载包括边界条件和外部或在内部作用力函数,主要分为以下6类:

    • 自由度约束:固定约束、支座约束等
    • 集中载荷:力、力矩等
    • 表面载荷:压力等
    • 体载荷:温度
    • 惯性载荷:重力加速度等
    • 耦合场载荷:热分析的温度等

    在ANSYS中,荷载既可施加在几何模型上,也可施加在有限元模型上,或者二者混合使用。

    • 针对两者的不同施加方式,后期可以在Workbench平台中专门尝试,也可参考周炬老师的静力学实例。
    • 当采用命令流加载时,方便程度二者相差不多。
      • 施加在几何模型上的荷载独立于有限元网格,不必为修改网格面重新加载
    • 求解时荷载会全部转换到有限元模型上

    自由度约束

    在结构分析中自由度共有7个,即三个平动自由度Ux,Uy,Uz,三个转动自由度ROTx,ROTy,ROTz和一个翘曲自由度WRAP。

    节点自由度约束

    • 对节点施加自由度约束
      重点学习
    D,NODE,Lab,VALUE,VALUE2,NEND,NINC,Lab2,Lab3,Lab4,Lab5,Lab6
    其中
    NODE——拟施加约束的节点号,其值可去ALL(此时可忽略NEND和NINC的参数)、元件名。
    Lab——自由度标识符。如为ALL,则为所有有效的自由度。
    VALUE——自由度约束位置值或表示边界条件的`表格`名称。
    VALUE——位置约束值的第二个数,如复数输入时,VALUE为实部,VALUE2为虚部。
    NEND,NINC——节点编号范围和编号增量,**缺省时**NEND=NODE,NINC=1.
    Lab2.Lab3,Lab4,,,——其他自由度标识符,VALUE对这些自由度也有效
    

    例如:

    D,ALL,ALL                   !对所选节点的全部自由度施加约束
    D,18,UX,,,,,UY,UZ           !对节点183个平动自由度全部施加约束
    D,20,UX,1.0e-4              !对节点20的UX施加约束,且约束位移值为1.0e-4
    D,22,UX,0.1,,25,,UY,ROTY    !对节点22~25的UX,UY,ROTY施加约束,且位移值均为0.1
    
    • 节点自由度约束列表
      与命令D的节点编号选取相似
    DLIST,NODE1,NODE2,NINC
    NODE1,NODE2,NINC——节点编号及其编号增量。缺省时,NODE2=NODE1,且NINC=1,NODE1可取ALL(缺省)
    
    • 删除节点自由度约束
    DDELE,NODE,Lab,NEND,NINC
    各参数意义同D命令中的参数  
    
    • 在节点上施加对称和反对称约束
      如施加对称约束的边的法向为UX,那么2D条件下不能发生沿X的位移和沿Z轴的旋转。反对称约束类似。自己可深入思考,链接中有更详细解释。
      重点学习
    DSYM,Lab,Normal,KCN
    
    Lab——对称标识。当为SYMM时,生成对称约束;当为ASYM时,生成反对称约束。
    Norma——约束的表面方向标识
    KCN——用于定义表面方向的整体和局部坐标系的参考号。
    

    Normal参数代表的约束如下:
    在这里插入图片描述

    对称边界条件在结构分析中是指:不能发生对称面外(out-of-plane)的移动(translations)和对称面内(in-plane)的旋转(rotations)。
    反对称边界条件在结构分析中是指:不能发生对称面(out-of-plane)的移动(translations)和对称面外(in-plane)的旋转(rotations)。

    • 比例缩放节点自由度约束
      该对所选节点(NSEL命令)和所选自由度(DOFSEL命令)都可进行缩放。
    DSCALE,RFACT,IFACT,TBASE
    
    RFACT,IFACT——自由度约束位移值的实部和虚部缩放系数,0或空时缺省为1。
    如欲设为0,可采用一个很小的数值代替。
    TBASE——温度差分的基温值,仅对温度自由度
    
    • 累加节点自由度约束
      重点学习
    DCUM,Oper,RFACT,IFACT,TABSE
    
    Oper——累加控制参数
    =REPL(缺省):后定义的自由度约束替代前面定义的值
    =ADD:后定义的自由度约束值与前面定义的值相加
    =IGNO:忽略后定义的约束值,不起作用
    其他同DSCAL命令中参数一致。
    

    EXP:累加节点自由度约束值

    finish
    /clear
    /prep7
    et,1,beam3          !定义节点单元
    k,1                 !创建关键点
    k,2,10
    l,1,2               !创建线
    esize,1				!定义单元尺寸
    lmesh,all			!划分单元
    d,1,ux,1e-2,,,,uy	!节点1的Ux和Uy约束位移值为0.01
    d,1,rotz			!约束节点1的ROTz
    d,2,all				!完全约束节点2
    dlist				!节点自由度约束列表
    nsel,s,d,u,0,0.1    !选择约束位移值(任一平动自由度)在0-0.1之间的节点
    dofsel,s,uy         !选择其中Uy自由度
    dscale,2.5          !比例缩放2.5倍,此时Uy=0.025
    !又一次选择了节点
    dlist               !节点自由度列表(仅有12的Uy
    dofsel,all          !选择所有自由度
    dcum,add			!后定义的自由度约束值与前面定义的值相加
    d,1,ux,2e-2  		!再次设置节点1Ux
    dlist				!此时Ux1=0.03
    dcum,igno 			!自由度约束值为忽略方式
    d,2,uy,1.0			!施加节点2的Uy
    dlist				!自由度列表,Uy2并没有改变,为0
    
    • 为什么第二次dlist命令使用时,节点自由度列表中只有12Uy自由度?
      dlist相当于dlist,all(缺省),表示选中所有节点。之后的命令应该是选择相应的自由度dofsel选中自由度命令。由于上一次使用dofsel,s,uy选中Uy自由度,故这次节点自由度列表中只有节点1和2的Uy自由度。

    • nsel,s,d,u,0,0.1 !选择约束位移值(任一平动自由度)在0-0.1之间的节点

    • dofsel,s,uy !选择其中Uy自由度

    展开全文
  • abqus车桥耦合命令流

    2018-11-02 21:04:45
    有限元分析,压缩包里还有加载动图,分享给大家学习,车桥耦合程序
  • 目录模型的建立常用建模命令汇总命令补充...有限元模型可精确布置节点的位置,但对用户的有限元基础要求较高。 本次内容主要以几何模型的建立为主,重点关注建模的常用相关命令。 常用建模命令汇总 FINISH !退出...
  • 整理后版本 ANSYS结构分析单元功能与特性 ANSYS 的基本使用 有限元模型的建立 实体模型的建立
  • ansys命令流入门教程

    2011-12-09 08:30:26
    ansys apdl 语言 入门教程,学习ansys有限元分析可以参考
  • 有限元方法计算斜拉索在简支边界和固支边界条件下各阶频率 (Calculating the Frequencies of Stayed Cables under Simply Supported and Fixed Boundary Conditions)
  • 目录 ANSYS结构分析单元功能与特性 ANSYS 的基本使用 有限元模型的建立 实体模型的建立 .........
  • 桁架结构的APDL命令流

    千次阅读 2015-08-11 18:55:53
    ANSYS参数化设计语言(APDL)是一种用来完成有限元常规分析操作或通过参数化变量方式建立分析模型的脚本语言,它用智能化分析的手段,为用户提供了自动完成有限元分析过程的功能,即程序的输入可根据指定的函数、变量...
  • 采用有限元软件ANSYS,分别通过采用实体单元、壳单元建立ZL20装载机铲斗模型,然后进行模态分析——压缩文件中含命令流+铲斗数据及图纸(不精确)
  • 我们都知道有限元软件就是通过有限单元法(FEM)来求解偏微分方程,而求解偏微分方程的定解条件包括 1、初始条件 2、边界条件;其中载荷就相当于初始条件,约束就相当于边界条件。
  • 有限元基础教程

    2014-10-02 22:36:25
    有限元基础教程,理清有限元理论及基础计算,ANSYS命令流,应用MATLAB计算有限元问题
  • 在关键点、线、面上施加的自由度约束均转换到有限元模型的节点上。

空空如也

空空如也

1 2 3 4 5 6
收藏数 105
精华内容 42
关键字:

有限元命令流