📄 collet.mac
字号:
!060115
!通过节点反力循环求和方法以及FSUM方法2种方式计算轴力
!先计算过盈配合。
!然后抽出试样,分析摩擦。
!不考虑热膨胀
FINI
/CLE
/FILE,COLLET
/TITLE,COLLET ANALYSIS
/CONFIG,NRES,10000 !设置最大子步数限制
*AFUN,DEG !使用角度为单位
*SET,THETA,3 !定义锥度
*SET,LONG,70 !工作锥长度
*SET,DIN,9.5/2 !末端内半径 与试样相同
*SET,DOUT,22/2 !末端外半径11
*SET,LL,60 !最大夹持长度(深度)
*SET,LM,25 !套筒长度
*SET,DD,5 !套筒离末端初始长度
*SET,DV,30/2 !套筒末端外半径
*SET,UU,0.3 !套筒向右位移量
*SET,XX,30 !试样夹持长度
*SET,LS,80 !试样右端到原点距离
*SET,NN,9 !设置锥的缝隙角度(一般为3,5,9度)
*SET,FKNN,1 !设置刚度因子
*SET,STEP1,20 !设置第一载荷步子步数
*SET,STEP2,50 !设置第二载荷步子步数
!前处理
/PREP7
ET,1,MESH200 !平面模型单元
KEYOPT,1,1,6 !四边形单元
ET,2,SOLID185 !实体模型单元
ET,3,CONTA173,1 !3D四节点接触单元
KEYOPT,3,1,0 !设定自由度
KEYOPT,3,12,0 !3号单元接触面行为
NROPT,UNSYM !指定非对称接触刚度
ET,4,TARGE170 !目标单元
!材料1为试样
MP,EX,1,1.9E5 !材料1弹性模量
MP,NUXY,1,0.3 !材料1泊松比
MP,ALPX,1,1.7E-5 !材料1热膨胀系数
MP,MU,1,0.2 !材料1摩擦系数
!材料2为锥体
MP,EX,2,2.05E5 !材料2弹性模量
MP,NUXY,2,0.3 !材料2泊松比
MP,ALPX,2,1.8E-5 !材料2热膨胀系数
MP,MU,2,0.2 !材料2摩擦系数
!材料3为套筒
MP,EX,3,1.95E5 !材料3弹性模量
MP,NUXY,3,0.3 !材料3泊松比
MP,ALPX,3,1.0E-5 !材料3热膨胀系数
MP,MU,3,0.2 !材料3摩擦系数
R,10,,,FKNN,0.1 !接触对10,接触刚度FKNN,罚系数0.1
R,11,,,FKNN,0.1 !接触对11,接触刚度FKNN,罚系数0.1
/PNUM,KP,1 !打开关键点编号开关
/PNUM,LINE,1 !打开线编号开关
/PNUM,AREA,1 !打开面编号开关
/VIEW,1,1,1,1 !正等轴测显示
!创建模型
!创建关键点
K,1 !模型左端界限
K,2,LS !模型右端界限
K,3,,DIN !左端锥体圆柱控制点
K,4,LONG,DIN !锥体右边界与内半径
K,5,LONG-LL,DIN !锥体空心部分左边界控制点
K,6,,DOUT-LONG*TAN(THETA) !锥体左端外半径
K,7,LONG,DOUT !锥体右端外半径
K,8,LONG-(DD-UU),DOUT-DD*TAN(THETA) !套筒右端
K,9,LONG-LL,DOUT-LL*TAN(THETA)
K,10,LONG-(DD-UU)-LM,DOUT-(LM+DD)*TAN(THETA) !套筒左端
K,11,LONG-(DD-UU),DV !套筒外半径
K,12,LONG-(DD-UU)-LM,DV
K,50,LONG-XX,DIN !试样左边界与半径
K,51,LONG-XX !试样轴心
!建立平面模型
A,3,5,9,6
A,5,4,7,9
A,10,8,11,12
WPROT,,,-90 !绕Y轴旋转-90度
CYL4,,,,,DIN !建立实心圆面
WPOFFS,,,XX-LONG !移动工作平面到锥内试样底部
CYL4,,,,,DIN !建立实心圆面
WPCSYS, !工作平面回到笛卡儿坐标系
ASEL,S,AREA,,4,5,1 !选择面
ASBW,ALL,,DELETE !用工作平面切分面
WPROT,,-90 !绕X轴旋转-90度
ASEL,S,AREA,,6,9,1 !选择面
ASBW,ALL,,DELETE !用工作平面切分面
ALLS !选择所有的元素
!划分网格
!划分面网格(锥体)
TYPE,1
MAT,2
LSEL,S,LINE,,12,15,1 !选择控制线
LESIZE,ALL,,,90/NN !设置划分数90/NN
LSEL,S,LINE,,22,25,1 !选择控制线
LESIZE,ALL,,,90/NN !设置划分数90/NN
ASEL,S,AREA,,4,5,1 !选择面用于分网
ASEL,A,AREA,,10,11,1 !增选面用于分网
AMESH,ALL !划分网格
LSEL,S,LINE,,2,6,2
LESIZE,ALL,,,3 !设置划分数3
LSEL,S,LINE,,1,3,2
LESIZE,ALL,,,2 !设置圆划分数2
LSEL,S,LINE,,5,7,2
LESIZE,ALL,,,10 !设置划分数10
ASEL,S,AREA,,1,2,1
AMESH,ALL
!实体模型(锥体)
TYPE,2 !设置单元类型
MAT,2 !设置材料属性
EXTOPT,ACLEAR,1 !旋转后清除面
EXTOPT,ESIZE,90/NN-1 !旋转后单元份数
ASEL,S,AREA,,2,2,1
VROTAT,ALL,,,,,,1,2,90-NN,1 !由面旋转生成单元和实体
LOCAL,11,1,,,,,,90 !定义局部坐标系用于复制实体
CSYS,11
VGEN,4,ALL,,,,90 !复制时角度增量90
CSYS,0 !回到地球坐标系
EXTOPT,ACLEAR,1 !旋转后清除面
EXTOPT,ESIZE,90/NN !旋转后单元份数
ASEL,S,AREA,,1,1,1
VROTAT,ALL,,,,,,1,2,,4 !由面旋转生成单元和实体
EXTOPT,ACLEAR,1 !清除面
EXTOPT,ESIZE,2 !延伸后单元份数
ASEL,S,AREA,,4,5,1
ASEL,A,AREA,,10,11,1
VEXT,ALL,,,LONG-LL !由面延伸生成单元和实体
NUMMRG,ALL !合并元素
NUMCMP,ALL !压缩编号
ESEL,S,MAT,,2
CM,ZHUITI,ELEM !定义锥体单元ZHUITI组件
VSEL,S,MAT,,2
CM,ZT,VOLU !定义锥体ZHUITI组件
!划分面网格(套筒)
TYPE,1
MAT,3
LSEL,S,LINE,,8,10,2
LESIZE,ALL,,,5 !设置长度划分数
LSEL,S,LINE,,9,11,2
LESIZE,ALL,,,3 !设置厚度划分数
ASEL,S,AREA,,3,3,1
AMESH,ALL
!实体模型(套筒)
TYPE,2
MAT,3
EXTOPT,ACLEAR,1 !清除面
EXTOPT,ESIZE,10 !旋转方向每个实体单元份数
ASEL,S,AREA,,3,3,1
VROTAT,ALL,,,,,,1,2,,4
ESEL,S,MAT,,3
CM,TAOTONG,ELEM !定义套筒单元TAOTONG组件
VSEL,S,MAT,,3
CM,TAOT,VOLU
!划分面网格(试样)
TYPE,1
MAT,1
LSEL,S,LINE,,16,19,1
LSEL,A,LINE,,26,29,1
LESIZE,ALL,,,6
ASEL,S,AREA,,12,15,1
AMESH,ALL
!实体模型(试样)
TYPE,2
MAT,1
EXTOPT,ACLEAR,1 !清除面
EXTOPT,ESIZE,5 !延伸后单元份数
ASEL,S,AREA,,12,15,1
VEXT,ALL,,,LS-(LONG-XX)
ESEL,S,MAT,,1
CM,SHIYANG,ELEM !定义试样单元SHIYANG组件
VSEL,S,MAT,,1
CM,SY,VOLU
!接触单元设置
!注意事项:
!1、当凸面与平面或凹面接触时,应指定平面或凹面为目标面
!2、应指定细网格所在面作为接触面,粗网格所在面为目标面
!3、应指定较硬的面作为目标面,较软的面为接触面
!4、应指定高阶的基础单元所在面作为接触面
!锥体外表面接触单元
ALLS
CMSEL,S,ZT !选择组件ZT
CMPLOT !显示组件
ASEL,S,AREA,,8,8,1
ASEL,A,AREA,,19,31,6
CM,OUT_Z,AREA !定义组元OUT_Z,锥体外表面
TYPE,3 !接触单元
MAT,2
REAL,11
NSLA,S,1
NSEL,R,LOC,X,LONG-(DD-UU)-LM-10,LS
ESLN,S,0
ESURF,ALL !在已存在单元自由表面覆盖产生单元
!套筒内表面目标单元
CMSEL,S,TAOT !选择组件TAOT
CMPLOT !显示组件
ASEL,S,AREA,,62,77,5
CM,TONG,AREA !定义组元TONG,套筒内表面
TYPE,4 !目标单元
MAT,3
REAL,11
NSLA,S,1
NSEL,R,LOC,X,LONG-(DD-UU)-LM-10,LS
ESLN,S,0
ESURF,ALL
!锥体内表面目标单元
CMSEL,S,ZT !选择组件ZT
CMPLOT !显示组件
ASEL,S,AREA,,6,6,1
ASEL,A,AREA,,17,29,6
CM,IN_Z,AREA !定义组元IN_Z,锥体内表面
TYPE,4 !目标单元
MAT,2
REAL,10
NSLA,S,1
NSEL,R,LOC,X,LONG-(DD-UU)-LM-10,LS
ESLN,S,0
ESURF,ALL
!试样外表面接触单元
CMSEL,S,SY !选择组件SY
CMPLOT !显示组件
ASEL,S,AREA,,82,86,4
ASEL,A,AREA,,89,92,3
CM,SHIY,AREA !定义组元SHIY,试样外表面
TYPE,3 !接触单元
MAT,1
REAL,10
NSLA,S,1
NSEL,R,LOC,X,LONG-(DD-UU)-LM-10,LS
ESLN,S,0
ESURF,ALL !在已存在单元自由表面覆盖产生单元
SAVE !保存模型
FINI
!求解
/SOLU
ANTYPE,STATIC
NSEL,S,LOC,X,0
D,ALL,ALL !左端夹头末端固定约束
NSEL,S,LOC,X,LS
D,ALL,ALL !右端试样末端固定约束
CSYS,11
NSEL,S,LOC,Z,LONG-(DD-UU)-LM,LONG-(DD-UU)
NSEL,R,LOC,X,DV
D,ALL,ALL,0 !套筒外表面约束
CSYS
!过盈配合分析
TIME,1
AUTOTS,ON !打开自动时间步
NSUB,STEP1 !指定此荷载步的子步数
NROPT,FULL
OUTRES,ALL,ALL !规定写入数据库的求解信息
NLGEOM,ON !打开几何非线性
PRED,ON
LNSRCH,ON
ALLS
SOLVE
!摩擦分析
TIME,2
AUTOTS,ON !打开自动时间步
NSUB,STEP2 !指定此荷载步的子步数
NROPT,FULL
OUTRES,ALL,ALL !规定写入数据库的求解信息
NLGEOM,ON !打开几何非线性
PRED,ON
LNSRCH,ON
ALLS
NSEL,S,LOC,X,LS
D,ALL,UX,LS+XX+5 !将柱体抽出
ALLS
SOLVE
SAVE
FINI
!夹头构件的应力应变云图
/POST1
SET,1,LAST !过盈配合最后的子步
ALLS
PLNSOL, EPTO,EQV, 0,1.0 !显示等效应变
PLNSOL, S,EQV, 0,1.0 !显示等效应力(节点解)
PLESOL, S,EQV, 0,1.0 !显示等效应力(单元解)
CMSEL,S,ZHUITI !锥体单元
CMPLOT
PLNSOL, S,EQV, 0,1.0 !显示等效应力
CMSEL,S,TAOTONG !套筒单元
CMPLOT
PLNSOL, S,EQV, 0,1.0 !显示等效应力
CMSEL,S,SHIYANG !试样单元
CMPLOT
PLNSOL, S,EQV, 0,1.0 !显示等效应力
ESEL,S,ENAME,,173 !选择接触单元
PLNSOL, S,EQV, 0,1.0 !显示等效应力
PLNSOL, CONT,PRES, 0,1.0 !显示接触压力
FINI
!获取夹头提供的摩擦合力
!方法一
/POST1
AXIAL=0
TEMP=0
TEMP1=0
SET,1,LAST
*GET,TEMP,ACTIVE,0,SOLU,NCMSS !获取累积的载荷子步
SET,2,LAST
*GET,TEMP1,ACTIVE,0,SOLU,NCMSS !获取累积的载荷子步
TEMP=TEMP+TEMP1
*DIM,FORCE1,ARRAY,TEMP
*DO,I,1,TEMP
*IF,I,EQ,1,THEN
SET,1,1
NSEL,S,LOC,X,LS !选择节点
*GET,NMAX,NODE,,NUM,MAX
*GET,NMIN,NODE,,NUM,MIN
*DO,KK,NMIN,NMAX
*IF,NSEL(KK),EQ,1,THEN
*GET,AXIAL,NODE,KK,RF,FX
FORCE1(I)=FORCE1(I)+AXIAL
*ENDIF
*ENDDO
*ELSEIF,I,NE,1
SET,NEXT
NSEL,S,LOC,X,LS !选择节点
*GET,NMAX,NODE,,NUM,MAX
*GET,NMIN,NODE,,NUM,MIN
*DO,KK,NMIN,NMAX
*IF,NSEL(KK),EQ,1,THEN
*GET,AXIAL,NODE,KK,RF,FX
FORCE1(I)=FORCE1(I)+AXIAL
*ENDIF
*ENDDO
*ENDIF
*ENDDO
FINI
/POST26
ALLS
NUMVAR,20 !指定允许的变量数
ANSOL,2,4012,EPEL,X,ST_N4012 !获取节点X方向应力
ANSOL,3,4015,EPEL,X,ST_N4015 !获取节点X方向应力
ANSOL,4,4006,EPEL,X,ST_N4006 !获取节点X方向应力
ANSOL,5,4009,EPEL,X,ST_N4009 !获取节点X方向应力
ANSOL,6,4023,EPEL,X,ST_N4023 !获取节点X方向应力
NSOL,7,4012,U,X,UX_N4012 !取出节点的X向位移数据
/AXLAB,X,TIME[S]
/AXLAB,Y,STRESS[MPA] DISPLACE[MM]
XVAR,1
PLVAR,2,3,4,5,6,7 !显示2~7变量随时间变化的图形
*DIM,TIME1,ARRAY,TEMP
VGET,TIME1(1),1
*DIM,LABEL,CHAR,1,2 !载荷-时间曲线保存
LABEL(1,1)='TIME1'
LABEL(1,2)='FORCE1'
*CREATE,ANSUITMP
*CFOPEN,TIME1_FORCE1,DAT
*VWRITE,LABEL(1,1),LABEL(1,2)
(1X,A8,A8)
*VWRITE,TIME1(1),FORCE1(1)
(1X,F18.6,F18.6)
*CFCLOSE
*END
/INPUT,ANSUITMP
!方法二
/POST1
TEMP=0
TEMP1=0
SET,1,LAST
*GET,TEMP,ACTIVE,0,SOLU,NCMSS !获取累积的载荷子步
SET,2,LAST
*GET,TEMP1,ACTIVE,0,SOLU,NCMSS !获取累积的载荷子步
TEMP=TEMP+TEMP1
*DIM,FORCE2,ARRAY,TEMP
*DO,I,1,TEMP
*IF,I,EQ,1,THEN
SET,1,1
NSEL,S,LOC,X,LS !选择节点
FSUM
*GET,FORCE2(I),FSUM,0,ITEM,FX
*ELSEIF,I,NE,1
SET,NEXT
NSEL,S,LOC,X,LS !选择节点
FSUM
*GET,FORCE2(I),FSUM,0,ITEM,FX
*ENDIF
*ENDDO
/POST26
NUMVAR,20 !指定允许的变量数
ANSOL,8,3889,EPEL,EQV,ST_N3889 !获取节点等效应力
ANSOL,9,4066,EPEL,EQV,ST_N4066 !获取节点等效应力
ANSOL,10,4067,EPEL,EQV,ST_N4067 !获取节点等效应力
ANSOL,11,3887,EPEL,EQV,ST_N3887 !获取节点等效应力
ANSOL,12,4058,EPEL,EQV,ST_N4058 !获取节点等效应力
ANSOL,13,4059,EPEL,EQV,ST_N4059 !取出节点的X向位移数据
/AXLAB,X,TIME[S]
/AXLAB,Y,STRESS[MPA]
XVAR,1
PLVAR,8,9,10,11,12,13 !显示8~13变量随时间变化的图形
*DIM,TIME2,ARRAY,TEMP
VGET,TIME2(1),1
*DIM,LABEL,CHAR,1,2 !载荷-时间曲线保存
LABEL(1,1)='TIME2'
LABEL(1,2)='FORCE2'
*CREATE,ANSUITMP
*CFOPEN,TIME2_FORCE2,DAT
*VWRITE,LABEL(1,1),LABEL(1,2)
(1X,A8,A8)
*VWRITE,TIME2(1),FORCE2(1)
(1X,F18.6,F18.6)
*CFCLOSE
*END
/INPUT,ANSUITMP
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -