ANSYS模型导入ABAQUS.docx

上传人:b****6 文档编号:8917420 上传时间:2023-02-02 格式:DOCX 页数:19 大小:17.66KB
下载 相关 举报
ANSYS模型导入ABAQUS.docx_第1页
第1页 / 共19页
ANSYS模型导入ABAQUS.docx_第2页
第2页 / 共19页
ANSYS模型导入ABAQUS.docx_第3页
第3页 / 共19页
ANSYS模型导入ABAQUS.docx_第4页
第4页 / 共19页
ANSYS模型导入ABAQUS.docx_第5页
第5页 / 共19页
点击查看更多>>
下载资源
资源描述

ANSYS模型导入ABAQUS.docx

《ANSYS模型导入ABAQUS.docx》由会员分享,可在线阅读,更多相关《ANSYS模型导入ABAQUS.docx(19页珍藏版)》请在冰豆网上搜索。

ANSYS模型导入ABAQUS.docx

ANSYS模型导入ABAQUS

ANSYS模型导入ABAQUS

SYS软件的参数化建模(APDL)极其方便,而ABAQUS卓越的非线性计算功能使其成为有限元软件中的贵族,如果能整合两者的优势,有限元模拟计算就会相当高效。

下面就将ANSYS模型如何导入ABAQUS简单交流一下。

(其中部分内容参考了SIMWE上的精华贴)

      首先在ANSYS编写APDL语言输出模型的节点和单元数据文件。

如果直接用ANSYS中的WRITENODEFILE和WRITEELEMFILE得到的节点和单元数据文件,数据之间只有空格,没有逗号,不符合ABAQUS的INPUT文件格式要求。

输出节点信息的APDL如下:

Allsel,all !

选中所有

!

输出节点

*GET,NNode,NODE,,COUNT,,,,  !

得到当前模型中的总节点数

*CFOPEN,ansystoabaqus,inp

*DO,I,0,NNode

*VWRITE,Chrval(i),',',NX(I),',',NY(I),',',NZ(I)

(A8,A1,F10.5,A1,F10.5,A1,F10.5)

*ENDDO

Allsel,all

       输出单元信息时要弄清楚单元类型,编写APDL对每种类型的每个单元输出单元编号,各节点的编号。

常见的SOLID65和SOLID45、SOLID95单元的APDL输出命令如下:

*GET,NumberofNode,NODE,,COUNT,,,,

ESEL,S,ENAME,,65 

*GET,NElem,ELEM,,COUNT,,,,  !

得到当前模型中的总单元数

!

对单元集进行循环

*GET,nd,ELEM,,NUM,MIN,,,,

*DO,I,1,NElem

!

得到当前单元的类型

*GET,ENAME,ELEM,nd,ATTR,ENAM 

!

如果是65号(65号单元)

*IF,ENAME,EQ,65,THEN

!

得到该单元的节点编号

*GET,EN1,ELEM,nd,NODE,1 

*GET,EN2,ELEM,nd,NODE,2 

*GET,EN3,ELEM,nd,NODE,3 

*GET,EN4,ELEM,nd,NODE,4 

*GET,EN5,ELEM,nd,NODE,5 

*GET,EN6,ELEM,nd,NODE,6 

*GET,EN7,ELEM,nd,NODE,7 

*GET,EN8,ELEM,nd,NODE,8 

*VWRITE,Chrval(nd),',',Chrval(EN1),',',Chrval(EN2),',',Chrval(EN3),',',Chrval(EN4),',',Chrval(EN5),',',Chrval(EN6),',',Chrval(EN7),',',Chrval(EN8)

(A8,8(A1,A8))

nd=ELnext(nd) 

*ENDIF

*ENDDO

Allsel,all

*GET,NumberofNode,NODE,,COUNT,,,,

ESEL,S,ENAME,,45                  !

solid45单元8节点六面体

*GET,NElem,ELEM,,COUNT,,,,  !

得到当前模型中的总单元数

!

对单元集进行循环

*GET,nd,ELEM,,NUM,MIN,,,,

*DO,I,1,NElem

*GET,ENAME,ELEM,nd,ATTR,ENAM       !

得到当前单元的类型

*IF,ENAME,EQ,45,THEN               !

如果是45号(45号单元)

!

得到该单元的节点编号

*GET,EN1,ELEM,nd,NODE,1 

*GET,EN2,ELEM,nd,NODE,2 

*GET,EN3,ELEM,nd,NODE,3 

*GET,EN4,ELEM,nd,NODE,4 

*GET,EN5,ELEM,nd,NODE,5 

*GET,EN6,ELEM,nd,NODE,6 

*GET,EN7,ELEM,nd,NODE,7

*GET,EN8,ELEM,nd,NODE,8

*VWRITE,Chrval(nd),',',Chrval(EN1),',',Chrval(EN2),',',Chrval(EN3),',',Chrval(EN4),',',Chrval(EN5),',',Chrval(EN6),',',Chrval(EN7),',',Chrval(EN8)

(A8,8(A1,A8))

nd=ELnext(nd) 

*ENDIF

*ENDDO

*VWRITE

('*ELEMENT,TYPE=C3D15,ELSET=Esolid2')

Allsel,all

*GET,NumberofNode,NODE,,COUNT,,,,

ESEL,S,ENAME,,95                   !

solid95单元20节点六面体

*GET,NElem,ELEM,,COUNT,,,,    !

得到当前模型中的总单元数

!

对单元集进行循环

*GET,nd,ELEM,,NUM,MIN,,,,      !

得到当前模型中的最小单元号

*DO,I,1,NElem                       

*GET,ENAME,ELEM,nd,ATTR,ENAM        !

得到当前单元的类型

*IF,ENAME,EQ,95,THEN              !

如果是95号(95号单元)

!

得到该单元的节点编号

*GET,EN1,ELEM,nd,NODE,1 

*GET,EN2,ELEM,nd,NODE,2 

*GET,EN3,ELEM,nd,NODE,3 

*GET,EN4,ELEM,nd,NODE,4 

*GET,EN5,ELEM,nd,NODE,5 

*GET,EN6,ELEM,nd,NODE,6 

*GET,EN7,ELEM,nd,NODE,7 

*GET,EN8,ELEM,nd,NODE,8 

*GET,EN9,ELEM,nd,NODE,9 

*GET,EN10,ELEM,nd,NODE,10

*GET,EN11,ELEM,nd,NODE,11 

*GET,EN12,ELEM,nd,NODE,12 

*GET,EN13,ELEM,nd,NODE,13 

*GET,EN14,ELEM,nd,NODE,14

*GET,EN15,ELEM,nd,NODE,15 

*GET,EN16,ELEM,nd,NODE,16

*GET,EN17,ELEM,nd,NODE,17 

*GET,EN18,ELEM,nd,NODE,18 

*GET,EN19,ELEM,nd,NODE,19 

*GET,EN20,ELEM,nd,NODE,20 

ENN1=EN1

ENN2=EN2

ENN3=EN3

ENN4=EN5

ENN5=EN6

ENN6=EN7

x1=Nx(EN1) 

y1=Ny(EN1) 

Z1=Nz(EN1)

x2=Nx(EN2) 

y2=Ny(EN2) 

Z2=Nz(EN2)

ENN7=NumberofNode+(I-1)*5+1

ENN8=EN10

ENN9=EN12

x5=Nx(EN5) 

y5=Ny(EN5) 

Z5=Nz(EN5)

x6=Nx(EN6) 

y6=Ny(EN6) 

Z6=Nz(EN6)

ENN10=NumberofNode+(I-1)*5+2

ENN11=EN14

ENN12=EN16

ENN13=NumberofNode+(I-1)*5+3

ENN14=NumberofNode+(I-1)*5+4

ENN15=NumberofNode+(I-1)*5+5

x3=Nx(EN3) 

y3=Ny(EN3) 

Z3=Nz(EN3)

x7=Nx(EN7) 

y7=Ny(EN7) 

Z7=Nz(EN7)

*VWRITE,Chrval(ENN7),',',(X1+X2)/2,',',(y1+y2)/2,',',(z1+z2)/2

(A8,3(A1,F10.5))

*VWRITE,Chrval(ENN10),',',(X5+X6)/2,',',(y5+y6)/2,',',(z5+z6)/2

(A8,3(A1,F10.5))

*VWRITE,Chrval(ENN13),',',(X5+X1)/2,',',(y5+y1)/2,',',(z5+z1)/2

(A8,3(A1,F10.5))

*VWRITE,Chrval(ENN14),',',(X6+X2)/2,',',(y6+y2)/2,',',(z6+z2)/2

(A8,3(A1,F10.5))

*VWRITE,Chrval(ENN15),',',(X3+X7)/2,',',(y3+y7)/2,',',(z3+z7)/2

(A8,3(A1,F10.5))

nd=ELnext(nd) 

*ENDIF

*ENDDO

!

输出实体单元

*VWRITE

('*ELEMENT,TYPE=C3D8,ELSET=Esolid1')

Allsel,all

       运行以上命令后会在ANSYS的工作目录下得到名为ansystoabaqus.inp的文件,里面包含了模型的节点和单元信息。

接下来就是编写ABAQUS的inp文件了。

格式如下

*Heading

**Jobname:

imput Modelname:

^^^^

**Generatedby:

Abaqus/CAE6.9-1

*Preprint,echo=NO,model=NO,history=NO,contact=NO

**

**PARTS

**

*Part,name=^^^^^^^

*EndPart

**  

**

**ASSEMBLY

**

*Assembly,name=Assembly

**  

*Instance,name=^^^^^,part=^^^^^^

*Node

ansystoabaqus.inp中的节点文件

*Element,type=^^^^^

ansystoabaqus.inp中的单元文件

        最后在ABAQUS中点主菜单FILE\IMPORT\MODEL,选择要导入的INP文件,在窗口顶部环境栏的MODEL下拉列表中,就会出现与此INP文件同名的模型。

ANSYS模型转到ABAQUS模型APDL

!

ANSYS命令流

!

将ANSYS模型文件转到ABAQUS模型文件

!

选中所有单元

Allsel,all

!

输出节点

*GET,NNode,NODE,,COUNT,,,,  !

得到当前模型中的总节点数

*CFOPEN,Toabaqus,inp

*VWRITE

('*HEADING')

*VWRITE

('FractureMechanicalAnalysisofmetalcrackwithFRP')

*VWRITE

('*NODE,SYSTEM=R')

*DO,I,1,NNode

*VWRITE,Chrval(i),',',NX(I),',',NY(I),',',NZ(I)

(A8,A1,F10.5,A1,F10.5,A1,F10.5)

*ENDDO

Allsel,all

*GET,NumberofNode,NODE,,COUNT,,,,

ESEL,S,ENAME,,95

*GET,NElem,ELEM,,COUNT,,,,  !

得到当前模型中的总单元数

!

对单元集进行循环

*GET,nd,ELEM,,NUM,MIN,,,,  !

得到当前模型中的最小单元号

*DO,I,1,NElem

!

得到当前单元的类型

*GET,ENAME,ELEM,nd,ATTR,ENAM

!

如果是95号(95号单元)

*IF,ENAME,EQ,95,THEN

!

得到该单元的节点编号

*GET,EN1,ELEM,nd,NODE,1

*GET,EN2,ELEM,nd,NODE,2

*GET,EN3,ELEM,nd,NODE,3

*GET,EN4,ELEM,nd,NODE,4

*GET,EN5,ELEM,nd,NODE,5

*GET,EN6,ELEM,nd,NODE,6

*GET,EN7,ELEM,nd,NODE,7

*GET,EN8,ELEM,nd,NODE,8

*GET,EN9,ELEM,nd,NODE,9

*GET,EN10,ELEM,nd,NODE,10

*GET,EN11,ELEM,nd,NODE,11

*GET,EN12,ELEM,nd,NODE,12

*GET,EN13,ELEM,nd,NODE,13

*GET,EN14,ELEM,nd,NODE,14

*GET,EN15,ELEM,nd,NODE,15

*GET,EN16,ELEM,nd,NODE,16

*GET,EN17,ELEM,nd,NODE,17

*GET,EN18,ELEM,nd,NODE,18

*GET,EN19,ELEM,nd,NODE,19

*GET,EN20,ELEM,nd,NODE,20

ENN1=EN1

ENN2=EN2

ENN3=EN3

ENN4=EN5

ENN5=EN6

ENN6=EN7

x1=Nx(EN1)

y1=Ny(EN1)

Z1=Nz(EN1)

x2=Nx(EN2)

y2=Ny(EN2)

Z2=Nz(EN2)

ENN7=NumberofNode+(I-1)*5+1

ENN8=EN10

ENN9=EN12

x5=Nx(EN5)

y5=Ny(EN5)

Z5=Nz(EN5)

x6=Nx(EN6)

y6=Ny(EN6)

Z6=Nz(EN6)

ENN10=NumberofNode+(I-1)*5+2

ENN11=EN14

ENN12=EN16

ENN13=NumberofNode+(I-1)*5+3

ENN14=NumberofNode+(I-1)*5+4

ENN15=NumberofNode+(I-1)*5+5

x3=Nx(EN3)

y3=Ny(EN3)

Z3=Nz(EN3)

x7=Nx(EN7)

y7=Ny(EN7)

Z7=Nz(EN7)

*VWRITE,Chrval(ENN7),',',(X1+X2)/2,',',(y1+y2)/2,',',(z1+z2)/2

(A8,3(A1,F10.5))

*VWRITE,Chrval(ENN10),',',(X5+X6)/2,',',(y5+y6)/2,',',(z5+z6)/2

(A8,3(A1,F10.5))

*VWRITE,Chrval(ENN13),',',(X5+X1)/2,',',(y5+y1)/2,',',(z5+z1)/2

(A8,3(A1,F10.5))

*VWRITE,Chrval(ENN14),',',(X6+X2)/2,',',(y6+y2)/2,',',(z6+z2)/2

(A8,3(A1,F10.5))

*VWRITE,Chrval(ENN15),',',(X3+X7)/2,',',(y3+y7)/2,',',(z3+z7)/2

(A8,3(A1,F10.5))

nd=ELnext(nd)

*ENDIF

*ENDDO

!

输出实体单元

*VWRITE

('*ELEMENT,TYPE=C3D8,ELSET=Esolid1')

Allsel,all

ESEL,S,ENAME,,45

*GET,NElem,ELEM,,COUNT,,,,  !

得到当前模型中的总单元数

!

对单元集进行循环

*GET,nd,ELEM,,NUM,MIN,,,,

*DO,I,1,NElem

!

得到当前单元的类型

*GET,ENAME,ELEM,nd,ATTR,ENAM

!

如果是45号(45号单元)

*IF,ENAME,EQ,45,THEN

!

得到该单元的节点编号

*GET,EN1,ELEM,nd,NODE,1

*GET,EN2,ELEM,nd,NODE,2

*GET,EN3,ELEM,nd,NODE,3

*GET,EN4,ELEM,nd,NODE,4

*GET,EN5,ELEM,nd,NODE,5

*GET,EN6,ELEM,nd,NODE,6

*GET,EN7,ELEM,nd,NODE,7

*GET,EN8,ELEM,nd,NODE,8

*VWRITE,Chrval(nd),',',Chrval(EN1),',',Chrval(EN2),',',Chrval(EN3),',',Chrval(EN4),',',Chrval(EN5),',',Chrval(EN6),',',Chrval(EN7),',',Chrval(EN8)

(A8,8(A1,A8))

nd=ELnext(nd)

*ENDIF

*ENDDO

 

*VWRITE

('*ELEMENT,TYPE=C3D15,ELSET=Esolid2')

Allsel,all

*GET,NumberofNode,NODE,,COUNT,,,,

ESEL,S,ENAME,,95

*GET,NElem,ELEM,,COUNT,,,,  !

得到当前模型中的总单元数

!

对单元集进行循环

*GET,nd,ELEM,,NUM,MIN,,,,

*DO,I,1,NElem

!

得到当前单元的类型

*GET,ENAME,ELEM,nd,ATTR,ENAM

!

如果是95号(95号单元)

*IF,ENAME,EQ,95,THEN

!

得到该单元的节点编号

*GET,EN1,ELEM,nd,NODE,1

*GET,EN2,ELEM,nd,NODE,2

*GET,EN3,ELEM,nd,NODE,3

*GET,EN4,ELEM,nd,NODE,4

*GET,EN5,ELEM,nd,NODE,5

*GET,EN6,ELEM,nd,NODE,6

*GET,EN7,ELEM,nd,NODE,7

*GET,EN8,ELEM,nd,NODE,8

*GET,EN9,ELEM,nd,NODE,9

*GET,EN10,ELEM,nd,NODE,10

*GET,EN11,ELEM,nd,NODE,11

*GET,EN12,ELEM,nd,NODE,12

*GET,EN13,ELEM,nd,NODE,13

*GET,EN14,ELEM,nd,NODE,14

*GET,EN15,ELEM,nd,NODE,15

*GET,EN16,ELEM,nd,NODE,16

*GET,EN17,ELEM,nd,NODE,17

*GET,EN18,ELEM,nd,NODE,18

*GET,EN19,ELEM,nd,NODE,19

*GET,EN20,ELEM,nd,NODE,20

ENN1=EN1

ENN2=EN2

ENN3=EN3

ENN4=EN5

ENN5=EN6

ENN6=EN7

x1=Nx(EN1)

y1=Ny(EN1)

Z1=Nz(EN1)

x2=Nx(EN2)

y2=Ny(EN2)

Z2=Nz(EN2)

ENN7=NumberofNode+(I-1)*5+1

ENN8=EN10

ENN9=EN12

x5=Nx(EN5)

y5=Ny(EN5)

Z5=Nz(EN5)

x6=Nx(EN6)

y6=Ny(EN6)

Z6=Nz(EN6)

ENN10=NumberofNode+(I-1)*5+2

ENN11=EN14

ENN12=EN16

ENN13=NumberofNode+(I-1)*5+3

ENN14=NumberofNode+(I-1)*5+4

ENN15=NumberofNode+(I-1)*5+5

x3=Nx(EN3)

y3=Ny(EN3)

Z3=Nz(EN3)

x7=Nx(EN7)

y7=Ny(EN7)

Z7=Nz(EN7)

*VWRITE,Chrval(nd),',',Chrval(ENN1),',',Chrval(ENN2),',',Chrval(ENN3),',',Chrval(ENN4),',',Chrval(ENN5),',',Chrval(ENN6),',',Chrval(ENN7),','

(A8,A1,7(A8,A1))

*VWRITE,Chrval(ENN8),',',Chrval(ENN9),',',Chrval(ENN10),',',Chrval(ENN11),',',Chrval(ENN12),',',Chrval(ENN13),',',Chrval(ENN14),',',Chrval(ENN15)

(7(A8,A1),A8)

nd=ELnext(nd)

*ENDIF

*ENDDO

Allsel,all

*VWRITE

('*SOLIDSECTION,MATERIAL=Steel,ELSET=Esolid1')

*VWRITE

('1.,')

*VWRITE

('*SOLIDSECTION,MATERIAL=Steel,ELSET=Esolid2')

*VWRITE

('1.,')

*VWRITE

('*MATERIAL,NAME=Steel')

*VWRITE

('*ELASTIC')

*VWRITE,Esteel,',',Vsteel

(E9.1,A1,F5.1)

!

输出单元壳单元

*VWRITE

('*ELEMENT,TYPE=S4,ELSET=EShell')

Allsel,all

ESEL,S,ENAME,,63

*GET,NElem,ELEM,,COUNT,,,,  !

得到当前模型中的总单元数

!

对单元集进行循环

*GET,nd,ELEM,,NUM,MIN,,,,

*DO,I,1,NElem

!

得到当前单元的类型

*GET,ENAME,ELEM,nd,ATTR,ENAM

!

如果是63号(63号单元)

*IF,ENAME,EQ,63,THEN

!

得到该单元的节点编号

*GET,EN1,ELEM,nd,NODE,1

*GET,EN2,ELEM,nd,NODE,2

*GET,EN3,ELEM,nd,NODE,3

*GET,EN4,ELEM,nd,NODE,4

*VWRITE,Chrval(nd),',',Chrval(EN1),',',Chrval(EN2),',',Chrval(EN3),',',Chrval(EN4)

(A8,4(A1,A8))

nd=ELnext(nd)

*ENDIF

*ENDDO

Allsel,all

*VWRITE

('*ShellSECTION,MATERIAL=FRP,ELSET=EShell')

*VWRITE,Chrval(tpatch),',','5'

(A8,A1,A1)

*VWRITE

('*Material,name=FRP')

*VWRITE

('*Elastic')

*VWR

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 党团工作 > 入党转正申请

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1