单元的选取 希望大家多支持
左图为一旋转体热源, 如何在右图中选取体热源包含的单元? 谢谢这么多人看? 难道就没有人作过类似的问题么 提取单元中心坐标,判断是否要选择。我看不懂你给的左图,不知道具体怎么命令怎么写。 3# cyc1987
兄弟能不能交流下? 你的QQ多少 我很少上QQ。建议你读一读《ANSYS 9.0 经典产品高级分析技术与实例详解》,该书第一篇讲 APDL。你提的这个问题用 APDL 很容易解决。 没看明白。。。 楼主的意思是热源模式如何加载? 7# sd9366
对 ! 实现热源的动态加载!不知道用什么方法实现,自己的ANSYS基础太薄弱! 本帖最后由 njweiwei2 于 2009-9-13 00:14 编辑
csys,0 !激活零坐标
nsel,s,loc,y,0 !选取xz平面的节点
nsel,r,loc,z,0 !选取x轴上的节点
*get,n_num,node,,count !得到x轴上节点的数目
*dim,o,array,n_num,1,1 !定义数组,用于储存x轴上节点号,即不同局部坐标的原点
*do,n,1,n_num,1
*set,o(n),node((n-1)*nd,0,0) !将节点号附给数组o,其中,nd为节点之间的距离,因为距离相等,所以只需要线性增加
*enddo
wpcsys,-1,0 !初始化工作平面,使其和0坐标系一样
wprota,,-90 !转动工作平面,为作局部坐标作准备
*do,n,1,n_num,1
nwpave,o(n) !将工作平面移动到节点o(n)
cswpla,n+100,1,1,1 !建立局部柱坐标,坐标号为+100
*enddo
*dim,radius,array,19,1,1 !定义数组,记录截面半径
*dim,height,array,19,1,1 !定义数组,记录轴向高度
*do,n,1,19,1
height(n)=(n-1)*0.005 !设置高度值
radius(n)=sqrt(log(height(n)/H)/(-Cs))!设置半径值,其中H和Cs为常量,运行时需要改成数
*enddo
*dim,sec,array,19,1,1 !定义数组,以保存每个截面的节点,以component的形式
*get,k,parm,o,0,dim,1 !得到数组o的维数,即x方向的节点数目
*dim,heater,array,k,1,1 !定义数组heater,以储存每时刻热源所包含的节点
*do,n,1,k,1
csys,n+100 !激活局部坐标n+100
*do,L,1,19,1
nsel,s,loc,z,height(L) !选择高度为height(l)的节点
nsel,r,loc,x,radius(L) !在上述节点中再次选择半径为radius(l)中的节点,以完成了一个截面的节点选择
cm,sec(L),node
*enddo
cmsel,s,sec(1) !选择第一个截面的节点
*do,L,2,19,1
cmsel,a,sec(L) !同时选择,2到19截面的节点
*enddo
cm,heater(n),node !将第一截面到第19截面的节点做成一个component,保存于heater(n)中,作为一个时刻的热源节点
*enddo
!建立了若干时刻的热源
然后再使用function功能,建立一个func文件,每个时刻都调用这个文件,施加到热源的节点上,就可以生成若干个载荷步文件,然后使用载荷步文件求解,就行了。值得注意的是,调用func文件的时候,插值坐标需要改变一下,所以最好用循环作
页:
[1]