学海无涯机电社区

 找回密码
 立即注册
搜索

ansys实体单元导入sap2000---个人浅见

查看数: 654 | 评论数: 9 | 收藏 0
关灯 | 提示:支持键盘翻页<-左 右->
    组图打开中,请稍候......
发布时间: 2021-2-9 18:23

正文摘要:

新手可以看看,共同探讨,高手请忽略。 sap2000 对框架结构很强大,但是有时候也不得不需要建一些实体单元。可是其中实体单元建模功能很差。ansys众所周知,建模功能很强大。本人就考虑在使用sap2000的时候如果需要 ...

回复

野客 发表于 2021-2-9 18:28:34
之前有人问 ansys 面单元能导入吗 。不好意思一不小心删掉那一楼了。
现在回答。也能导入。方法和实体单元导入步骤一模一样。只不过把那一段语言换成下面这一段。实测好用。
*get,nodenum,node,,num,max ! 获得节点的数目
*dim,nodepos,array,nodenum,3 ! nodepos存放节点的坐标
*do,i,1,nodenum,1
*get,nodepos(i,1),node,i,loc,x !获得节点的X坐标
*get,nodepos(i,2),node,i,loc,y
*get,nodepos(i,3),node,i,loc,z
*enddo




*get,elemnum,elem,,num,max !得到单元的总数目
*dim,elemlist,array,elemnum,4 !单元包含的节点列表,指定每个单元包含4个节点,根据情况修改
*do,i,1,elemnum,1
*do,ii,1,4,1
*get,elemlist(i,ii),elem,i,node,ii !获得节点编号
*enddo
*enddo




*cfopen,miancad,txt !打开文件,写入数据




*do,i,1,elemnum,1
*vwrite,
('3dface')
n1=elemlist(i,1)
n2=elemlist(i,2)
n3=elemlist(i,3)
n4=elemlist(i,4)


a11=nodepos(n1,1)
a12=nodepos(n1,2)
a13=nodepos(n1,3)
a21=nodepos(n2,1)
a22=nodepos(n2,2)
a23=nodepos(n2,3)
a31=nodepos(n3,1)
a32=nodepos(n3,2)
a33=nodepos(n3,3)
a41=nodepos(n4,1)
a42=nodepos(n4,2)
a43=nodepos(n4,3)


*vwrite,a11,a12,a13
(f16.6','f16.6','f16.6)
*vwrite,a21,a22,a23
(f16.6','f16.6','f16.6)
*vwrite,a31,a32,a33
(f16.6','f16.6','f16.6)
*vwrite,a41,a42,a43
(f16.6','f16.6','f16.6)


*vwrite,
(' ')


*enddo
*cfclos
打赏
野客 发表于 2021-2-9 18:27:56
说一说我的思路,一开始我考虑直接在cad里建一个实体然后保存为dxf然后往sap2000里导 发现 如果是线段导入sap2000框架可以,实体这样导就不行。于是我现在sap2000里建一个立方体小模型,先把它导出到dxf里 然后把dxf打开 发现这个立方体在cad里是多边形网格,于是我用list命令打开多边形网格,发现他是一个6X3的多边形网格(此处我也很无语,为啥sap2000导出来偏要用多边形网格而不是3d网格,大家可以有兴趣的打开看看节点编号方式我觉得挺奇葩的)然后根据多边形网格的节点编号规则 再和ansys里的节点编号规则一比较,写出上述apdl。
思路就是在autocad里把单元一个一个画出来,只不过命令是由ansys生成的。
打赏
野客 发表于 2021-2-9 18:25:52
3.把删掉空格后的geomfile.txt所有内容 全选 复制 。然后打开autocad新建图层在命令行里粘贴,等命令完成后 将autocad保存为dxf文件。
4.在sap2000里导入dxf,实体那一栏里就选你刚才在cad里建的图层。OK
打赏
野客 发表于 2021-2-9 18:25:26
3.把删掉空格后的geomfile.txt所有内容 全选 复制 。然后打开autocad新建图层在命令行里粘贴,等命令完成后 将autocad保存为dxf文件。
4.在sap2000里导入dxf,实体那一栏里就选你刚才在cad里建的图层。OK
打赏
野客 发表于 2021-2-9 18:25:11
如此一来只要你在ansys 里建好六面体实体模型 可以很快导入到sap2000里,很方便。
实测可行!!!
打赏
野客 发表于 2021-2-9 18:25:00
2.在ansys file菜单里 read input from 把刚才的txt文件打开,运行会生成一个geomfile.txt的文件。打开这个文件 把里面所有空格全去掉(方法很简单 替换功能 查找里空格 替换里啥也不写)
打赏
野客 发表于 2021-2-9 18:24:47
使用方法是这样
1.把刚才的代码保存为txt文件。然后在ansys里建好单元,注意必须都是是六面体单元因为sap2000好像只支持六面体单元,建完后注意把单元编号 压缩下 numcmp,element 其目的是让ansys的单元编号从1开始连续下去
打赏
野客 发表于 2021-2-9 18:24:06
本人ansys初学,抄抄改改写了如下一点命令,代码很罗嗦 原因是我对apdl语言也很不熟悉。
*get,nodenum,node,,num,max ! 获得节点的数目
*dim,nodepos,array,nodenum,3 ! nodepos存放节点的坐标
*do,i,1,nodenum,1
*get,nodepos(i,1),node,i,loc,x !获得节点的X坐标
*get,nodepos(i,2),node,i,loc,y
*get,nodepos(i,3),node,i,loc,z
*enddo


*get,elemnum,elem,,num,max !得到单元的总数目
*dim,elemlist,array,elemnum,8 !单元包含的节点列表,指定每个单元包含8个节点,根据情况修改
*do,i,1,elemnum,1
*do,ii,1,8,1
*get,elemlist(i,ii),elem,i,node,ii !获得节点编号
*enddo
*enddo


*cfopen,geomfile,txt !打开文件,写入数据


*do,i,1,elemnum,1
*vwrite,
('3dmesh')
*vwrite,
('6')
*vwrite,
('3')
n1=elemlist(i,1)
n2=elemlist(i,2)
n3=elemlist(i,3)
n4=elemlist(i,4)
n5=elemlist(i,5)
n6=elemlist(i,6)
n7=elemlist(i,7)
n8=elemlist(i,8)
a11=nodepos(n1,1)
a12=nodepos(n1,2)
a13=nodepos(n1,3)
a21=nodepos(n2,1)
a22=nodepos(n2,2)
a23=nodepos(n2,3)
a31=nodepos(n3,1)
a32=nodepos(n3,2)
a33=nodepos(n3,3)
a41=nodepos(n4,1)
a42=nodepos(n4,2)
a43=nodepos(n4,3)
a51=nodepos(n5,1)
a52=nodepos(n5,2)
a53=nodepos(n5,3)
a61=nodepos(n6,1)
a62=nodepos(n6,2)
a63=nodepos(n6,3)
a71=nodepos(n7,1)
a72=nodepos(n7,2)
a73=nodepos(n7,3)
a81=nodepos(n8,1)
a82=nodepos(n8,2)
a83=nodepos(n8,3)
*vwrite,a61,a62,a63
(f16.6','f16.6','f16.6)
*vwrite,a21,a22,a23
(f16.6','f16.6','f16.6)
*vwrite,a21,a22,a23
(f16.6','f16.6','f16.6)


*vwrite,a51,a52,a53
(f16.6','f16.6','f16.6)
*vwrite,a11,a12,a13
(f16.6','f16.6','f16.6)
*vwrite,a11,a12,a13
(f16.6','f16.6','f16.6)


*vwrite,a81,a82,a83
(f16.6','f16.6','f16.6)
*vwrite,a41,a42,a43
(f16.6','f16.6','f16.6)
*vwrite,a11,a12,a13
(f16.6','f16.6','f16.6)


*vwrite,a71,a72,a73
(f16.6','f16.6','f16.6)
*vwrite,a31,a32,a33
(f16.6','f16.6','f16.6)
*vwrite,a21,a22,a23
(f16.6','f16.6','f16.6)


*vwrite,a71,a72,a73
(f16.6','f16.6','f16.6)
*vwrite,a71,a72,a73
(f16.6','f16.6','f16.6)
*vwrite,a61,a62,a63
(f16.6','f16.6','f16.6)


*vwrite,a81,a82,a83
(f16.6','f16.6','f16.6)
*vwrite,a81,a82,a83
(f16.6','f16.6','f16.6)
*vwrite,a51,a52,a53
(f16.6','f16.6','f16.6)
*enddo
*cfclos
打赏

手机版|小黑屋| 学海无涯机电社区  

GMT+8, 2024-5-4 03:20 , Processed in 0.099294 second(s), 39 queries .

Powered by Discuz!

© Comsenz Inc.

快速回复 返回顶部 返回列表