本帖最后由 冰映光 于 2012-9-30 20:56 编辑
首先,再次非常感谢midasgalaxy版主的热心帮助。现将我的模型和问题阐述如下。
我建立的是一个人字齿轮单齿模型,由三个单独的体构成,旁边两个是由面沿螺旋线拉伸,中间的是由面沿直线拉伸。我要对模型进行整体的热分析,所以要想办法将体合并为一体并划分网格。
原模型图:
其实对于多个规则体来说,采用ADD和MERGE未尝不是一个好办法。但由于我的面是沿螺旋线拉伸的,ADD之后就成了如下的情况:
连续的面变成不连续的许多小面,使得以后面上载荷加载很不方面,产生这种现象可能是与ANSYS的精度有关系。
采用MERGE命令是将节点、网格、点等项目合并。是将体之间的衔接面的节点和网格进行合并从而达到整体热分析的效果,但我的两个体衔接面上的网格没有吻合的地方,MERGE总出错,最后热分析的时候还是没有达到整体的效果 。
现介绍midasgalaxy版主提供的方案如下。一个是利用MPC装配,一个是利用耦合。
方案1:建立目标面和接触面单元,在已存在的选中单元的自由表面覆盖产生单元,覆盖在体之间的衔接面上,代码如下:
ET,3,170
!*
ET,4,174
!*
KEYOPT,4,1,2
KEYOPT,4,2,0
KEYOPT,4,4,2
KEYOPT,4,5,0
KEYOPT,4,6,0
KEYOPT,4,7,0
KEYOPT,4,8,0
KEYOPT,4,9,0
KEYOPT,4,10,0
KEYOPT,4,11,0
KEYOPT,4,12,5
KEYOPT,4,14,0
KEYOPT,4,15,0
KEYOPT,4,16,0 !定义目标面和接触面单元
ET,5,170
!*
ET,6,174
!*
KEYOPT,6,1,2
KEYOPT,6,2,0
KEYOPT,6,4,2
KEYOPT,6,5,0
KEYOPT,6,6,0
KEYOPT,6,7,0
KEYOPT,6,8,0
KEYOPT,6,9,0
KEYOPT,6,10,0
KEYOPT,6,11,0
KEYOPT,6,12,5
KEYOPT,6,14,0
KEYOPT,6,15,0
KEYOPT,6,16,0
allse,all
asel,s,,,12
nsla,s,1
type,3
real,3
esurf,all
asel,s,,,25
nsla,s,1
type,4
real,3
esurf,all
asel,s,,,11
nsla,s,1
type,5
real,5
esurf,all
asel,s,,,1
nsla,s,1
type,6
real,5
esurf,all !选择体之间的衔接面并将目标和接触单元覆盖在面上
MPC多点约束技术,这个感觉好好啊,多谢版主指教。不过代码还是没能完全分解懂啊,要慢慢来看。
不过不知道这种方法和我做过的接触变形定义的接触面、目标面一样吗,这种方法用于热分析实现整体导热应该可以,但不知道如果做应力接触或变形分析能否视为一个整体,体之间会不会有内力或者 变形 ?
附上一个MPC学习附件:
方案2:利用耦合的方法,在建模前先建立宏,这个感觉更加高深啊,呜呜,感觉太才疏学浅任重道远啊,以后慢慢来看,我先用版主现成的代码先完成模型,以后好好研习,附上代码如下。
finish
/clear
/title, gear modeling
*create,ouhe3,mac
allsel,all
cmsel,s,slavenode
*get,count1_node,node,0,count
*del,slave_node
*dim,slave_node,array,count1_node
*get,slave_node(1),node,0,num,min
*do,i,2,count1_node
slave_node(i)=ndnext(slave_node(i-1))
*enddo
allsel
cmsel,s,masternode
*get,count2_node,node,0,count
*del,master_node
*dim,master_node,array,count2_node
*get,master_node(1),node,0,num,min
*do,i,2,count2_node
master_node(i)=ndnext(master_node(i-1))
*enddo
!**********************************************!将与从属节点耦合的节点数组初始化
*del,cp_node
*dim,cp_node,array,count1_node
*do,i,1,count1_node
cp_node(i)=0
*enddo
!**********************************************!开始选择程序
allsel
*if,COUNT1_NODE,lt,COUNT2_NODE,then !slavenode少于MASTERNODE
shuzu_ouhe=
*dim,shuzu_ouhe,array,count1_node,1
*do,i,1,count1_node,1
nsel,s,,,slave_node(i)
cmsel,a,masternode
shuzu_ouhe(i)=nnear(slave_node(i)) !shuzu_ouhe(i)从MASTERNODE中选择
nsel,u,,,shuzu_ouhe(i)
nsel,u,,,slave_node(i)
cm,masternode,node !必须更新
*enddo
allse,all
*do,i,1,count1_node,1
!cp,next,UX,shuzu_ouhe(i),slave_node(i) !以节点数少的SLAVENODE为基准
!cp,next,UY,shuzu_ouhe(i),slave_node(i)
!cp,next,UZ,shuzu_ouhe(i),slave_node(i)
!cp,next,ROTX,shuzu_ouhe(i),slave_node(i)
!cp,next,ROTZ,shuzu_ouhe(i),slave_node(i)
!cp,next,ROTY,shuzu_ouhe(i),slave_node(i)
cp,next,all,shuzu_ouhe(i),slave_node(i)
*enddo
*elseif,COUNT1_NODE,gt,COUNT2_NODE !slavenode多于MASTERNODE
shuzu_ouhe=
*dim,shuzu_ouhe,array,count2_node,1
*do,i,1,count2_node,1
nsel,s,,,master_node(i)
cmsel,a,slavenode
shuzu_ouhe(i)=nnear(master_node(i)) ! shuzu_ouhe(i)从SLAVENODE中选择
nsel,u,,,shuzu_ouhe(i)
nsel,u,,,master_node(i)
cm,slavenode,node !必须更新
*enddo
allse,all
*do,i,1,count2_node,1
!cp,next,UX,shuzu_ouhe(i),master_node(i) !以节点数少的MASTERNODE为基准
!cp,next,UY,shuzu_ouhe(i),master_node(i)
!cp,next,UZ,shuzu_ouhe(i),master_node(i)
!cp,next,ROTX,shuzu_ouhe(i),master_node(i)
!cp,next,ROTZ,shuzu_ouhe(i),master_node(i)
!cp,next,ROTY,shuzu_ouhe(i),master_node(i)
cp,next,all,shuzu_ouhe(i),slave_node(i)
*enddo
*else !eq 相等
shuzu_ouhe=
*dim,shuzu_ouhe,array,count2_node,1
*do,i,1,count2_node,1
nsel,s,,,master_node(i)
cmsel,a,slavenode
shuzu_ouhe(i)=nnear(master_node(i)) ! shuzu_ouhe(i)从SLAVENODE中选择
nsel,u,,,shuzu_ouhe(i)
nsel,u,,,master_node(i)
cm,slavenode,node !必须更新
*enddo
allse,all
*do,i,1,count2_node,1
!cp,next,UX,shuzu_ouhe(i),master_node(i) !以节点数少的MASTERNODE为基准
!cp,next,UY,shuzu_ouhe(i),master_node(i)
!cp,next,UZ,shuzu_ouhe(i),master_node(i)
!cp,next,ROTX,shuzu_ouhe(i),master_node(i)
!cp,next,ROTZ,shuzu_ouhe(i),master_node(i)
!cp,next,ROTY,shuzu_ouhe(i),master_node(i)
cp,next,all,shuzu_ouhe(i),slave_node(i)
*enddo
*endif
!!!!!!!结束改进的OUHE2.MAC
*end
csys,0
asel,s,,,12
nsla,s,1
nsel,r,loc,y,0.18695E-01,0.36144E-01
cm,slavenode,node
asel,s,,,25
nsla,s,1
nsel,r,loc,y,0.18695E-01,0.36144E-01
cm,masternode,node
ouhe3
asel,s,,,11
nsla,s,1
nsel,r,loc,y,0.18695E-01,0.36144E-01
cm,slavenode,node
asel,s,,,1
nsla,s,1
nsel,r,loc,y,0.18695E-01,0.36144E-01
cm,masternode,node
ouhe3
MPC装配过程,共有三对接触面,定义三对目标面接触面单元,分别施加在接触面和目标面上,同时还要定义实常数,注意一对接触的面的实常数是一样的,而且同一个模型中的单元,实常数不能有一样的。
最终效果图。
|