最近ANSYS建模遇到了点小问题,折腾了好半天。现在终于搞清楚原由了,在这里分享一下,也许能帮到大家。也方便各位童鞋朋友以后遇到类似问题也好有个查错思路。
所建模型是一个三维的线圈,处在长方体空气区域里,为后面电磁场分析建立几何模型。(空气区域需要减去线圈所占的区域)。
线型结构如下图。
最初的建模命令如下:
/Prep7
pi=acos(-1) !定义圆周率pi
R=2 !线圈XY平面投影时中径大小
R1=4 !线圈XZ投影是半径大小
*do,i,0,16,1
*set,x,R*cos(i*pi/8)
*set,y,R*sin(i*pi/8)
*set,z,SQRT(R1*R1-(R*R*cos(i*pi/8)*cos(i*pi/8))) !定义XYZ坐标点
k,i+1,x,y,z
*enddo
*do,i,1,9,4
bsplin,i,i+1,i+2,i+3,i+4
*enddo
KDELE,17
bsplin,13,14,15,16,1 !定义样条曲线
kwpave,1 !将工作平面原点移动到关键点1处
wpro,,90,
pcirc,0,0.1,0,360 !建立线圈截面
*do,j,1,4,1
vdrag,1+(j-1)*5,,,,,,j
*enddo !拉伸截面生成线圈实体
CM,COIL,VOLU !定义线圈组件COIL
VSEL,NONE
CSYS,0
WPAVE,0,0,0
CSYS,0
wpro,,-90, !转换工作平面
BLOCK,-1.5*R,1.5*R,-1.5*R,1.5*R,0.5*R1,1.3*R1 !定义空气区域
CM,AIR,VOLU
ALLSEL
VSBV,AIR,COIL,,DELE,KEEP !用线圈体减去空气区域体
就在执行上面这条VSBV语句时出现问题:Topological degeneracy detected for vsbv command.try modifying geometry slightly or loosening the tolerance!
大致意思就是说:在执行VSBV命令时检测到了拓扑退化,请尝试稍微修改下几何模型或者增大容差。容差放大后应该保证在后面的操作中恢复到默认设置。
但这个错误提示感觉没多大用处嘛。没有具体指出来哪里出错了,ANSYS还是不够智能哦。
然后就是一番百度查找问题所在,后面经专家指点才发现问题症结。(感谢热情的张老师J)! 放大显示线圈后看有一个地方是下图这样的结构!终于找到问题了,就是这里建模时出现了间隙与干涉,导致后面的布尔运算时显示拓扑退化的提示!
后面的问题当然就是修改模型,把间隙与干涉处理掉。首先明白线圈的建模思路,先建立的16个关键点然后生成了4段样条曲线,然后生成截面,然后拉伸截面形成线圈。分析得知这里的间隙是由于在间隙处的关键点两边的曲线在该点处的切线不共线。这里需要回到之前使用的样条曲线命令bsplin上。查看help文档,bsplin命令详解如下所示。
前面6个点是用来指定样条曲线经过的点。注意这里可以少于6个其他几个点空着就行,但不能超过6个。后面几个参数XV1,YV1,ZV1,XV6,YV6,ZV6是用来确定点1和点6处的切线矢量的。例如XV1,YV1,ZV1=(1,1,0)就代表在1点处的切线是XY平面内的45度方向。命令搞明白了,接着就修改上面的模型侬。
这里的目的就是要保证L1-L4线条在关键点1,5,9,14处切线共线。由于这四个关键点位置特殊,都为4个极点。所以方向矢量容易看出来。
下面是修改后的模型命令流。感兴趣的朋友可以拷贝练练手。
/Prep7
pi=acos(-1)
R=2
R1=4
*do,i,0,16,1
*set,x,R*cos(i*pi/8)
*set,y,R*sin(i*pi/8)
*set,z,SQRT(R1*R1-(R*R*cos(i*pi/8)*cos(i*pi/8)))
k,i+1,x,y,z
*enddo
KDELE,17
bsplin,1,2,3,4,5,,0,-1,0,-1,0,0
bsplin,5,6,7,8,9,,1,0,0,0,-1,0
bsplin,9,10,11,12,13,,0,1,0,1,0,0
bsplin,13,14,15,16,1,,-1,0,0,0,1,0
kwpave,1
wpro,,90,
pcirc,0,0.1,0,360
*do,j,1,4,1
vdrag,1+(j-1)*5,,,,,,j
*enddo
CM,COIL,VOLU
VSEL,NONE
CSYS,0
WPAVE,0,0,0
CSYS,0
wpro,,-90,
BLOCK,-1.5*R,1.5*R,-1.5*R,1.5*R,0.5*R1,1.3*R1
CM,AIR,VOLU
ALLSEL
VSBV,AIR,COIL,,DELE,KEEP
修改后的线圈如下图所示。这四段体相连接处都没有间隙与干涉。VSBV布尔减操作时自然也没有出现错误了。
最后小结一下:以后建模时遇到这样错误提示Topological degeneracy detected for vsbv command.try modifying geometry slightly or loosening the tolerance! 建议首先将零部件放大放大在放大,看连接处有木有间隙或者干涉或者其它几何结构缺陷!
ansys命令流中,如何根据已知的关键点编号,选择线。同时,在命令流编写过程中,怎么得知前面建立的体和面的编号,比如在vsba的时候,就不知道自己要减的面的编号是多少 |
lslk