Denzel 发表于 2008-5-29 20:02

表操作疑问:table的元素在某些函数里是不是不能做参数

实验的目的
想将所有节点号及相应x坐标填入表中,节点号作为第一列,再按照节点号提取节点的x作为第0列,其他值放在其他列,这样其他值就可以按照x坐标画曲线了。

实验1
用*get,e_table(1,1,1),node, ,num,min 给(1,1,1)附最小节点号,在给第1列的下一行附节点号时发现不能调用此列第一行的值,下面的程序段出现错误,执行后发现第二行及第二行以下都被附了相同的值。所以怀疑刚刚给表附值时不能用ndnext()函数调用它上面一行的值

*get,e_table(1,1,1),node, ,num,min
*DO,i,2,nnode

e_table(i,1,1)=ndnext(e_table(i-1,1,1))

!*get,e_table(i,1,1),node,e_table(i-1,1,1),nxth,
!j=e_table(i-1,1,1)

!e_table(i,1,1)=ndnext(j)
*ENDDO
循环体内任选其一都得到错误结果,如下:






于是猜想是不是应该把整个列附值完才能用*get调用,于是进行实验2

实验2
将所有节点号通过一维数组,先付给一个表的第1列,然后表的这一列做*get命令的参数提取数据付给其他列。结果出错,*get命令要寻找node 0
下面是命令流
*get,nnode,node, ,count
*DIM,e_table,TABLE,nnode,9,1
*dim,node_num,array,nnode,1,1
!一维数组用来存节点号
*get,node_num(1,1,1),node, ,num,min
*do,i,2,nnode

node_num(i,1,1)=ndnext(node_num(i-1,1,1))

e_table(i,1,1)=node_num(i,1,1)
*enddo
*DO,i,1,nnode

*get,E_TABLE(I,2,1),node,e_table(i,1,1),loc,x,

*get,E_TABLE(I,0,1),node,e_table(i,1,1),loc,y,

*get,E_TABLE(I,4,1),node,e_table(i,1,1),loc,z,
*ENDDO
Error信息
Node 0 of *GET command is undefined.


Line= *get,E_TABLE(I,0,1),node,e_table(i,1,1),loc,y,


The *GET command is ignored.


找到的解决办法
而只能将所有节点号先付给一个一维数组,然后按照这个数组中的编号,*get命令中的参数用这个一维数组的元素,提取x坐标放在第0列,其他值放在其他列

*DIM,e_table,TABLE,nnode,9,1
*dim,node_num,array,nnode,1,1
!一维数组用来存节点号
*get,node_num(1,1,1),node, ,num,min
*do,i,2,nnode

node_num(i,1,1)=ndnext(node_num(i-1,1,1))
*enddo
*DO,i,1,nnode

e_table(i,1,1)=node_num(i,1,1)


*get,E_TABLE(I,2,1),node, node_num(i,1,1),loc,x,

*get,E_TABLE(I,0,1),node, node_num(i,1,1),loc,y,

*get,E_TABLE(I,4,1),node, node_num(i,1,1),loc,z,
*ENDDO


产生的疑问,table的元素在某些函数里是不是不能做参数,例如ndnext(),*get?




cdh840102 发表于 2008-5-31 14:07

想请教LZ关于TABLE表

求助:如何看TABLE表数据是三角函数呢帮助文件中定义的位移函数怎么理解
/BATCH
MAXDISP = 0.85
*DEL,_FNCNAME
*DEL,_FNCMTID
*DEL,_FNC_C1
*DEL,_FNC_C2
*SET,_FNCNAME,'uxdsp'
*DIM,_FNC_C1,,1
*DIM,_FNC_C2,,1
*SET,_FNC_C1(1),MAXDISP
*SET,_FNC_C2(1),2.5
! /INPUT,time.func
*DIM,%_FNCNAME%,TABLE,6,4,1
! Begin of equation: a*sin(omega*{TIME})
%_FNCNAME%(0,0,1)= 0.0, -999
%_FNCNAME%(2,0,1)= 0.0
%_FNCNAME%(3,0,1)= %_FNC_C1(1)%
%_FNCNAME%(4,0,1)= %_FNC_C2(1)%
%_FNCNAME%(5,0,1)= 0.0
%_FNCNAME%(6,0,1)= 0.0
%_FNCNAME%(0,1,1)= 1.0, -1, 0, 1, 18, 3, 1
%_FNCNAME%(0,2,1)= 0.0, -1, 9, 1, -1, 0, 0
%_FNCNAME%(0,3,1)=   0, -2, 0, 1, 17, 3, -1
%_FNCNAME%(0,4,1)= 0.0, 99, 0, 1, -2, 0, 0
! End of equation: a*sin(omega*{TIME})
!-->
位移定义成三角函数,但对TABLE认识不深,得到这样的数组,但是不了解怎么看出它是三角函数呢,调用的时候又是怎么调用的。是一列接着一列的吗,0行和0列的行,列值又表示什么呢

Denzel 发表于 2008-6-1 14:34

ansys可以加载分布且周期变化的力吗?

这个帖子看看有没有用。

http://www.baisi.net/thread-733758-1-1.html
页: [1]
查看完整版本: 表操作疑问:table的元素在某些函数里是不是不能做参数