- 技术邻 >
- CAE仿真 >
- HyperWorks
Hypermesh变厚度板的实现问题
浏览:63710 回答:1
这个问题困扰了小弟好久,盼有人能予以解答~
(关于 Hypermesh的问题在下面,不过由于下面的问题和Ansys的有承接性,我就顺带把Ansys的写在上面了)
小弟一直想做一个变厚度钢管,在网上看了好多Ansys变厚度板的代码,也就是这个:
“FINISH
/clear
/prep7
et,1,63
rect,,10,,10
eshape,2
esize,,20
amesh,1
eplot
mxnode=ndinqr(0,14)
*dim,thick,,mxnode
*do,node,1,mxnode
*if,ndinqr(node,1),eq,1,then
thick(node)=0.5+0.2*nx(node)+0.02*ny(node)**2
*else
thick(node)=0
*endif
*enddo
node=
mxnode=
rthick,thick(1),1,2,3,4“
但是我在用Ansys/lsdyna做的时候遇到了极大的问题!!!问题如下:
1. 代码中的单元是Shell 63号单元,此单元在Ansys/lsdyna下是没有的,Ansys/lsdyna是Explicit的,所以只能用Shell 163号单元来做。不过使用相同的代码,我在用Ansys/Lsdyna下已经用163号单元划好网格后,将代码相应代入命令流中(从mxnode=ndinqr(0,14)开始代入),完全实现不了Shell 163号单元的命令使用。这样赋值之后,Ansys里面模型的每个单元仍旧是等厚度的。我只是想做一个长600的空心方管,同一个x轴坐标的节点是一个厚度,譬如x=1的节点都为0.5,x=2的节点都为0.7厚度,但是这样用上面的代码实现不了。这个让小弟非常不知道如何解决。
2. 另外,这样赋值之后,不仅每个单元是等厚度的,而且每个单元的独立成一个Part,这样在我做比较细的模型的时候(我的管一共13000多个单元),每一个单元独立成为一个Part,这样计算的时候,也不是很稳定的。因为我的模型等X值的单元其实属性是完全相同的,所以能否设定每一个X值的单元是一个Part呢?
关于Hypermesh方面:有一次给小弟逼急了,我拿Hypermesh画个管,一层一层的赋值t1 t2 t3 t4,但是这样之后又有一个问题,就是同一个X值的单元虽然属于一个Component,但是由于是按照Component赋 t1 t2 t3 t4的,并不能保证每个单元上的节点方向都是一样的,也就是说,有的 t1=t2>t3=t4,但是有的t2=t3>t1=t4,这样一层一层赋,也不能是变厚度板,那么:
1. Hypermesh能像Ansys那样通过提取节点的横坐标值来赋厚度吗?(貌似Hypermesh的参数化不太好用是吧……)
2. 若只能一层一层调节,能不能定义一个component(我的component是一排X值相等的四边形单元3*3的)时,使每个单元的走向固定,如按右下角、左下角、左上角、左下角的顺序,依次定义为t1 t2 t3 t4呢?free画网格的时候是不能实现的。
(关于 Hypermesh的问题在下面,不过由于下面的问题和Ansys的有承接性,我就顺带把Ansys的写在上面了)
小弟一直想做一个变厚度钢管,在网上看了好多Ansys变厚度板的代码,也就是这个:
“FINISH
/clear
/prep7
et,1,63
rect,,10,,10
eshape,2
esize,,20
amesh,1
eplot
mxnode=ndinqr(0,14)
*dim,thick,,mxnode
*do,node,1,mxnode
*if,ndinqr(node,1),eq,1,then
thick(node)=0.5+0.2*nx(node)+0.02*ny(node)**2
*else
thick(node)=0
*endif
*enddo
node=
mxnode=
rthick,thick(1),1,2,3,4“
但是我在用Ansys/lsdyna做的时候遇到了极大的问题!!!问题如下:
1. 代码中的单元是Shell 63号单元,此单元在Ansys/lsdyna下是没有的,Ansys/lsdyna是Explicit的,所以只能用Shell 163号单元来做。不过使用相同的代码,我在用Ansys/Lsdyna下已经用163号单元划好网格后,将代码相应代入命令流中(从mxnode=ndinqr(0,14)开始代入),完全实现不了Shell 163号单元的命令使用。这样赋值之后,Ansys里面模型的每个单元仍旧是等厚度的。我只是想做一个长600的空心方管,同一个x轴坐标的节点是一个厚度,譬如x=1的节点都为0.5,x=2的节点都为0.7厚度,但是这样用上面的代码实现不了。这个让小弟非常不知道如何解决。
2. 另外,这样赋值之后,不仅每个单元是等厚度的,而且每个单元的独立成一个Part,这样在我做比较细的模型的时候(我的管一共13000多个单元),每一个单元独立成为一个Part,这样计算的时候,也不是很稳定的。因为我的模型等X值的单元其实属性是完全相同的,所以能否设定每一个X值的单元是一个Part呢?
关于Hypermesh方面:有一次给小弟逼急了,我拿Hypermesh画个管,一层一层的赋值t1 t2 t3 t4,但是这样之后又有一个问题,就是同一个X值的单元虽然属于一个Component,但是由于是按照Component赋 t1 t2 t3 t4的,并不能保证每个单元上的节点方向都是一样的,也就是说,有的 t1=t2>t3=t4,但是有的t2=t3>t1=t4,这样一层一层赋,也不能是变厚度板,那么:
1. Hypermesh能像Ansys那样通过提取节点的横坐标值来赋厚度吗?(貌似Hypermesh的参数化不太好用是吧……)
2. 若只能一层一层调节,能不能定义一个component(我的component是一排X值相等的四边形单元3*3的)时,使每个单元的走向固定,如按右下角、左下角、左上角、左下角的顺序,依次定义为t1 t2 t3 t4呢?free画网格的时候是不能实现的。
这个是可以实现的 你在操作的时候 注意在我的文档里面有个commed。cmf的文件 里面记录了hypermesh的操作,你可以把操作进行修改 复制后 输入到hypermesh最下面的命令框中 需要拖动才能出现命令框啊,然后把命令中的()何,用空格代替 输进去就可以了。。。。。