Ansys的选择方法
在Ansys使用过程中,无论是建模还是网格划分,求解,计算后处理,经常要选择相应的对象,如节点,单元,体,面,线,关键点等,然后对对象施加一些操作。
选择(select)在ansys中经常使用,有非常多的技巧可以使得选择大大简化,熟练使用可以将需要几小时甚至一天的工作量,几十秒种就完成。
今天小编就用本朝正经的APDL,包你一新耳目,教你得知经典中别有洞天。
初级:通过编号来进行选择
通过模型的编号来选择,其方法为*sel+模型编号的方式。
!*sel+编号lsel,s,,,2,8,2 !选择编号为2,4,6,8的线asel,s,,,2,8,2 !选择编号为2,4,6,8的面vsel,s,,,2,8,2 !选择编号为2,4,6,8的体
初级:唯一ID,指哪打哪。
中级:通过依附关系(attached to)来选取
ansys的对象是有关联的,低维对象依附于高维对象,比如点依附于线,线依附于面,面依附于体,节点依附于单元。 !ASLB, A为要选择的对象,B代表依附的对象lsla,s !通过面选择线aslv,s !通过体选择面vsla,s !通过面选择体asll,s !通过线选择面
中级: 顺藤摸瓜,瓜田李下。
高级: 通过位置(By location)来选择
通过对象所在位置,来选择对象。
asel,s,loc,x,0 !选择x坐标为0的面asel,s,loc,x,0,2000 !选择在x坐标0~2000之间的面lsel,s,radius,,r1 !选择半径为r1的线lsel,s,length,,500,1000 !选择长度为500到1000的线lsel,s,tan2,x,-1 !选择所有和x轴平行且起点到终点方向朝向x轴负向的直线
ansys中的对象是以对象的几何形心为基准的,所以对于线面体的选择,可以先估计形心大致位置,然后在其附近寻找。
或者用*sel,s,loc,,命令,寻找形心所在范围,可以很迅速的找到所需要的对象。
对于Ansys的线,当采用梁单元时,要注意梁的方向,此时可以用tan2,比较方便的选择朝向某个方向的线。
假定一条直线两上端点K1(x1,y1,z1)和K2(x2,y2,z2),k1为起点,K2为终点,那么这条直线的tan1就是指单位向量K2指向K1,tan2就是指单位向量K1指向K2,具体计算公式为:
tan1=[(x1-x2)/len,(y1-y2)/len,(z1-z2)/len];tan2=[(x2-x1)/len,(y2-y1)/len,(z2-z1)/len];tan1=-tan2!Len为直线的长度
高级:天网恢恢,疏而不漏。
特高级:通过材料的属性,单元类型进行选择
当为单元赋予了材料属性和类型之后,可以通过材料属性和单元类型来选择。
vsel,s,mat,,1 !选择1号材料的体vsel,s,type,,1 !选择1号单元类型的体vsel,s,Real,,1 !选择1号实常数的体Esel,s,mat,,1 !选择1号材料的单元
特高级:物以类聚,人以群分.
大师级:层层选择
在前处理中检查单元形状,或在后处理中观察结果时,有时需要将单元一层一层的选出来进行观察。如果用模型比较复杂,直接选取比较困难。此时可以采用层层递进,剥洋葱一样拨开每层单元。
代码如下:
vsel,s,loc,y,0,3000 !获得y轴0-3000范围内的体eslv,s !通过体获得单元nsel,s,loc,y,0 !首先通过坐标位置y=0选取一层节点esln,r !选出与这层节点相关联的一层单元其效果如下: 再选择下一层:
nsle,s !选出这层单元相关的节点(相当于节点推进一层)esln,s !选出与节点相关的单元(相当于单元推进一层)中奖了,再来一次的效果:
以节点选择单元,再以单元选择节点,层层推进。
特高级:抽丝剥茧,如影随行。
宗师级:选择过程中巧用组件
同样上面的例子为例,nsle和esln重复交替使用,可以使节点和单元层层增加,如果只想单独一层层的看,则需要cm(component)命令帮助。
vsel,s,loc,y,0,3000 !获得y轴0-3000范围内的体eslv,s !通过体获得单元nsel,s,loc,y,0 !首先通过坐标位置y=0选取一层节点esln,r !选出与这层节点相关联的一层单元cm,ee1,element !ee1为这一层的单元
nsle,snsel,u,loc,y,0eslnesel,u,,,ee1cm,ee2,element !获得第2层单元
!下面获得第3层单元nsleeslnesel,u,,,ee1esel,u,,,ee2cm,ee3,element!下面获得第4层单元nsleeslnesel,u,,,ee2esel,u,,,ee3cm,ee4,element通过循环获得想要的n层单元
!通过循环获得5~24层的单元。*do,j,5,24,1nsleeslnesel,u,,,ee%(j-2)%esel,u,,,ee%(j-1)%cm,ee%j%,element !为每层单元起个温暖的名字eej*enddo
第24层单元显示如下:
需要任意一层,都可以通过组件调出,非常方便。
宗师级:用组件为每层起个温暖的名字,可谓军书十二卷,卷卷有爷名.
天外飞仙级:内外表面任意选择
在经典里没有像WB一样选择内表面的命令。经常要用上面的技巧选择所需要的面,遇到面特别多的时候,选择内表面往往需要耗费大量的时间。
那么APDL中有没有快速选择内表面的方法呢?
如以下的换热器,如果想选择内表面,应该如何选择呢?
观察一下细节,建立了角焊缝更难以通过GUI来选择了。
整理一下思路:
由面选择附着的线,由线选择附着的面,然后去掉非内外表面。这样一次可以获得联通的表面。
然后通过循环再来一次,多次后,会得到模型的内外表面。
如果每次循环都去掉内外表面边界上的面,那么就可以得到模型的内表面。
比如需要选择壳程侧的内表面,已知其中一个面编号是628。
利用这个思路,代码如下: allselasel,s,,,628 !壳程任意一个面*do,k,1,50 !从1到50次,次数可以自己试,如果没选完整,数量可以增加。lsla !由面选择线asll !由线选择面asel,r,ext !只要external表面asel,u,loc,x,0 !去掉内外边界的面asel,u,loc,y,0 !去掉内外边界的面asel,u,loc,z,-1216.2 !去掉内外边界的面*enddo !结束循环cm,ashside,area !壳程内表面编组
效果如下:
同样的,对于管程的内表面,代码如下: allselasel,s,,,648 !管程的一个面编号*do,k,1,50 lslaasllasel,r,extasel,u,loc,x,0asel,u,loc,y,0asel,u,loc,z,-1216.2asel,u,,,657 !顶部的一个面编号*enddo cm,atbside,area !管程内表面编组
管程内表面选择如下:
利用循环选择内表面,其代码简洁,优美,适应性强。
天外飞仙,随心所欲,链式扩张,不亦快哉。
往期精彩:
|