ANSYS基础教程APDL基础Word文档下载推荐.docx

上传人:b****4 文档编号:16389765 上传时间:2022-11-23 格式:DOCX 页数:17 大小:345.44KB
下载 相关 举报
ANSYS基础教程APDL基础Word文档下载推荐.docx_第1页
第1页 / 共17页
ANSYS基础教程APDL基础Word文档下载推荐.docx_第2页
第2页 / 共17页
ANSYS基础教程APDL基础Word文档下载推荐.docx_第3页
第3页 / 共17页
ANSYS基础教程APDL基础Word文档下载推荐.docx_第4页
第4页 / 共17页
ANSYS基础教程APDL基础Word文档下载推荐.docx_第5页
第5页 / 共17页
点击查看更多>>
下载资源
资源描述

ANSYS基础教程APDL基础Word文档下载推荐.docx

《ANSYS基础教程APDL基础Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《ANSYS基础教程APDL基础Word文档下载推荐.docx(17页珍藏版)》请在冰豆网上搜索。

ANSYS基础教程APDL基础Word文档下载推荐.docx

bb=cos(30) 

theta=atan(slope)

pi=acos(-1) 

jobname=‘proj1’

用*SET看有用参数列表

以上例子是关于标量参数的,它只有一个值—数字或者字符。

ANSYS也提供数组参数,它有若干个值。

数字数组和字符数组都是有效的。

字符数组在本教程中不讨论。

一些命名规则:

参数名不超过8个字符,并以字母开头。

参数名中只能出现字母,数字和下划线。

避免以下划线开头,这在ANSYS中另有它用。

参数名不分大小写,如“RAD”和“Rad”是一样的。

所有的参数都以大写形式存储。

避免使用ANSYS标识,如STAT,DEFA,和ALL。

B.使用参数

使用参数时,只需在对话框中或通过命令输入参数名就行了。

例如,利用参数定义一个w=10,h=5的矩形,

–您可以使用以下菜单:

Preprocessor>

Create>

Rectangle>

By2Corners+

–或命令:

/prep7

blc4,,,w,h

注意:

当使用参数时,ANSYS将立刻把参数名换为它的值。

上一个例子中的矩形将被存为10x5,而不是wxh。

也就是说,如果你在生成矩形后再改变w或h的值,矩形将不被修改。

其它一些关于参数用法的例子:

/filnam,jobname 

!

作业名

youngs=30e6

mp,ex,1,youngs 

杨氏模量

force=500

fk,2,fy,-force 

2号关键点的力

fk,6,fx,force/2 

6号关键点的力

C.从数据库中获取信息

从数据库中获取信息并给参数赋值,使用*GET命令或UtilityMenu>

GetScalarData...

对获取大量信息是很有用的,包括模型和结果数据,请参看*GET命令的详细资料。

*get,x1,node,1,loc,x 

x1=节点1的x坐标[CSYS]*

/post1

*get,sx25,node,25,s,x 

sx25=节点25的x方向应力[RSYS]*

*get,uz44,node,44,u,z 

uz44=节点44的UZ方向的位移[RSYS]*

nsort,s,eqv 

对节点的vonMises应力排序

*get,smax,sort,,max 

smax=排序的最大值

etable,vol,volu 

用vol存储单元体积

ssum 

对单元表的列求和

*get,totvol,ssum,,vol 

totvol=对vol的列求和

*CSYS=激活坐标系(CSYS)

RSYS=激活的结果坐标系(RSYS)

一些数据可以通过函数获取。

例如:

x1=nx

(1) 

x1=节点1的x坐标[CSYS]*

nn=node(2.5,3,0) 

nn=在(2.5,3,0)处的节点[CSYS]*

ux25=ux(25) 

ux25=25号节点的UX值[RSYS]*

temp93=temp(93) 

temp93=节点93的温度值

width=distnd(23,88) 

width=23号节点和88号节点间的距离

RSYS=激或的结果坐标系(RSYS)

在一些地方您可以直接取函数值,就象用一个参数一样。

例如:

k,10,kx

(1),ky(3) 

10号关键点x坐标取1号关键点的x坐标,y坐标取!

3号关键点的y坐标

k,11,kx

(1)*2,ky(3) 

[CSYS]*

f,node(2,2,0),fx,100 

在节点(2,2,0)施加力FX[CSYS]*

APDL基础

1概要:

利用格式Name=Value定义参数.

参数值可以是一个数值,一个以前定义过的参数,一个函数,一个参数表达式,或者一个字符串。

利用*GET命令或函数从ANSYS数据库中获取信息。

ANSYS存储的是参数的实际值(数字或字符串),而不是参数名。

2.数组参数

数组参数是能够容纳多个值的参数

数组参数可以是1-D,2-D,or3-D.

–1-D:

m行x1列

–2-D:

m行xn列

–3-D:

m行xn列xk面

本章主要讨论怎样定义和使用数组参数.

主要内容:

A.数组参数的类型

B.怎样定义数组

C.获取数据库信息

D.数组操作

A.数组参数的类型

有三种数组参数类型:

–数值数组

–表

–字符数组

数值数组是标准的1-D,2-D,或3-D数值矩阵,如下面的BB

–BB(2,3)=704

–BB(3,1)=1033

–等.

数据表除了行、列、面可以是实数外与数值数组类似。

–第零行、零列、零面必须填充数字。

–对定义随时间变化的载荷和类似情况非常有用

–例如,表FORCE可以表示力随时间的变化关系,第零行表示时间值。

FORCE(0.4)=279.9996

FORCE(6.5)=560.0

FORCE(8.9)=119.25

一个字符型数组是1-D,2-D,或3-D的字符串矩阵

–可用来存放文件名,自由度标识等

–每个字符串不超过8个字符。

B.怎样定义数组

定义数组的步骤:

1.指定类型和维数

–UtilityMenu>

ArrayParameters>

Define/Edit>

Add

–或使用*DIM命令.例如:

*dim,aa,array,4!

4x1x1array

*dim,force,table,5!

5x1x1table

*dim,bb,array,5,3!

5x3x1array

*dim,dofs,char,6!

6x1x1characterarray

2.给数组赋值

Edit

–或使用*VEDIT命令

–或使用“=”命令.例如:

bb(1,1)=11,21,31,41,51

bb(1,2)=12,22,32,42,52

bb(1,3)=13,23,33,43,53

对于表型数组,必须定义第0位置。

否则,取缺省值7.8886E-31.

–例如:

force(1,1)=0,560,560,238.5,0

force(1,0)=1E-6,0.8,7.2,8.5,9.3

force(0,1)=0

·

对字符数组,不能以图形方式填充字符串

–使用“=”命令键入值,接着用*STAT显示字符串

–每个字符串必须用单引号括起来

dofs

(1)=‘ux’,‘uy’,‘uz’,‘rotx’,‘roty’,‘rotz’

*stat,dofs

给数组赋值的其他方法:

–用*VFILL命令或(UtilityMenu>

Fill)预定义函数赋值

跃阶函数

随机函数

–从一个文件读入数据:

*VREAD用于数值数组

*TREAD用于数据表

或UtilityMenu>

ReadfromFile

–从数据库获取(下一步讨论).

C.获取数据库信息

正如*GET从数据库获取标量数据,可以用*VGET获取数组信息.

–或UtilityMenu>

GetArrayData

先定义数组,然后获取数据.

例如:

*dim,dispval,array,20,3 

20x3array

*vget,dispval(1,1),node,1,u,x 

UXofnodes1-20incolumn1

*vget,dispval(1,2),node,1,u,y 

UYincolumn2

*vget,dispval(1,3),node,1,u,z 

UZincolumn3

其他可获取的数组信息类型:

–节点和关键点坐标(当前坐标系)

–单元属性,体,面等.

–实体的选择状态(1选上,0未选上)

–节点应力,应变,温度梯度,热通量等

–单元表数据

–等…

D.数组操作

一旦定义了数组参数,就可以对它们进行各种操作

ArrayOperations

–或使用*VFUN,*VOPER,*VSCFUN,*VWRITE等命令

*VFUN对单个数组操作

–*vfun,b

(1),sin,a

(1)等价于b(j)=sin(a(j))

–其他操作包括:

自然对数,常用对数,指数

平方根,排序,复制

局部坐标系与整体坐标系的相互转换关系

路径的切线和法线矢量

*VOPER对两个数组参数操作。

–*voper,c

(1),a

(1),sub,b

(1)等价于c(k)=a(k)-b(k)

–其它操作包括:

加,减,乘,除

最小值,最大值,逻辑运算

微分,积分

点积和叉积

*VSCFUN定义数组参数的属性。

–*vscfun,maxval,max,a

(1)等价于一个标量maxval=max(a(i))

求数组的所有元素的和

诸如标准偏差,中值,平均数等统计量

最小值/最大值,最小值/最大值的位置

第一个和最后一个非零记录的位置

*VWRITE把数据按格式写进文件

*cfopen,wing,dat

*vwrite

(/,3x,’NodeNumber’,4x,’Temperature’,/)

*vwrite,nnum

(1),tval

(1)

(5x,f6.0,6x,e14.8)

*cfclose

将会创建一个名为wing.dat的文件,包含指定格式的nnum和tval数组

3宏基础

APDL(ANSYS参数设计语言)最强有力的特征之一是创建宏的能力。

宏就是一系列贮存在一个文件中的ANSYS命令,并且能象一个ANSYS命令一样来运行。

常用宏功能:

–它可以如同ANSYS命令一样具有变量。

–分支和循环用来控制一系列命令。

–交互式特征如图形拾取,提示,以及对话框。

–宏可以嵌套――一个宏引用第二个宏,第二个宏引用第三个宏,等等―一直可嵌套20级。

宏基础

本文给出创建宏的基本步骤:

A.创建一个宏

B.带参数的宏

C.分支

D.循环

E.总的指导方针

更多的细节,请参考APDL程序指南等

A.创建宏

创建一个宏,在文本编辑器中,创建一系列命令,并以文件名name.mac保存它们.

–name以一个字母开始,可以达32个字符。

在文件名中空格不允许。

避免特殊字符。

确保name不是一个有效的ANSYS命令。

可以在开始或所有处理器(PREP7,POST1,等等)中进行检验。

如果得到这种信息...不是有效的命令或宏…那么这个名字是“安全的”。

–扩展名.mac允许你运行宏如同运行一个命令一样:

只需敲入name。

例子:

–宏totvolume.mac用来计算所有单元的整个体积:

esel,all!

选择所有单元

etable,volume,volu!

将所有单元体积建立单元表

ssum!

求解单元表选项总和

*get,totvol,ssum,,item,volume!

totvol=体积总和

*stat,totvol!

列totvol值

–-在Post1(在求解之后)中发出totvolume来计算整个体积。

搜索路径:

-ANSYS首先在下列搜索路径中寻找文件name.mac并运行它:

1./ansys57/docu

2.在ANSYS_MACROLIB环境变量路径中。

3.在WINDOWS系统中的注册路径。

4.当前工作路径。

-如果在上级路径和下级路径同时寻找到同样的文件名,则采用上级路径。

B.带参数的宏

通过特殊的字符名,你可以创建多达20个参数的宏:

-NAME,arg1,arg2,arg3,…,ar10,ar11,ar12,…,ar20

参数如同标准的ANSYS命令中的参数,可以为:

–数字

–字符(被包括在单引号中)

–参数(标量或数组)

–参数表达式

参数的意义由所定义的宏来决定。

例如,我们可以定义宏totvolume.mac来计算指定类型的所有单元体积和:

-TOTVOLUME,TYPE

宏具体如下:

esel,s,type,,arg1

etable,volume,volu

ssum

*get,totvol,ssum,,item,volume

*vwrite,arg1,totvol

(‘Totalvolumefortype’,f4.0,’elements=’,f8.2)

求解之后在通用后处理器中发出totvolume,1将得出下列结果:

注意:

–-特殊的字符名ARG1-ARG9和AR10-AR99仅仅是局部参数,仅仅在该宏中有效。

一旦宏运行结束后并返回ANSYS主程序,它们将无意义。

避免在模型的其它地方应用这些名称。

–-无论何时应用参数时,一定通过在宏中包含注释来描述它们的意义。

例如,下面在宏totvolume.mac的开始处的注释是非常有用的。

MacroTOTVOLUME.MACtocalculatetotalvolumeofelements

Usage:

TOTVOLUME,TYPE.validonlyinPOST1afterasolve

TYPE=validelementtypenumber

esel,stype,,arg1

C.分支

通过应用IF-THEN-ELSE结构,在只有一定的条件满足的情况下,你可以运行一个命令或命令块。

在*IF和*ELSEIF命令中,可以运用AND,OR,或XOR比较符。

–IF,A,EQ,B,AND,C,GT,D,THEN

分枝以*IF开始和*ENDIF结束。

*ELSEIF和*ELSE在它们中也可以使用:

*if,x,eq,y,then

,,,,,

*elseif,x,eq,z,then

*else

*endif

例如,你可以在宏totvolume.mac中增加if-test来测试输入的变量是的有效性:

*if,arg1,lt,1,then!

如果ARG1小于1

*msg,warn!

发出一个警告

Elementtypenumbermustbe1orgreater!

退出宏

/eof

esel,s,type,,arg1!

选择所有确定类型的单元

建立单元表

求解单元表数据总和

发出totvolume,-1将得出下列结果:

D.循环

DO循环允许执行一个命令块数次。

实际上在DO循环中对其中包含什么内容没有限制。

你可以包含任何ANSYS命令――包括前处理,求解和处理――这是在条件允许的情况下。

*DO开始循环,*ENDDO结束循环。

-你可以用*EXIT(退出循环)和*CYCLE(跳到DO循环末)控制循环。

-EXITT和CYCLE也可以根据if-test的结果来执行。

作为一个例子,我们通过加入DO循环来扩展宏totvolume.mac,计算所有单元类型并将它们各的体积保存在数组参数中。

--MacroTOTVOLUME.MACtocalculatetotalelementvolume.

--Usage:

IssueTOTVOLUMEinPOST1afterasolution.

--Result:

--a)evolume(i)=totalvolumeforelementtypei

--b)totvol=grandtotalvolume

*get,numtypes,etype,,num,count!

Getnumberofelementtypes

*dim,evolume,array,numtypes!

Openanumtypesx1array

*do,i,1,numtypes!

Fori=1-numtypes...

esel,s,type,,i!

Selectelementsoftypei

etable,volume,volu!

Storevolumeinelementtable

ssum!

Sumelementtableitems

*get,totvol,ssum,,item,volume!

totvol=sumof‘volume’

evolume(i)=totvol!

Storetotvolinevolume(i)

*enddo!

Endofdo-loop

*vscfun,totvol,sum,evolume(i)!

totvol=grandtotalvolume

esel,all!

Activatefullsetofelements

E.一般注意事项

建立短小且简单的宏。

当创建宏的时候,可以在ANSYS命令窗口中剪切并粘贴命令来检测这些命令的顺序是否正确。

运用注释来描述意图或期望的执行结果。

在自己的目录中保存你自己的宏。

在ANSYS_MACROLIB环境变量目录中保存那些任何人都可以进入的宏。

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

当前位置:首页 > 初中教育 > 英语

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

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