ANSYS宏命令.docx

上传人:b****6 文档编号:4696023 上传时间:2022-12-07 格式:DOCX 页数:14 大小:24.85KB
下载 相关 举报
ANSYS宏命令.docx_第1页
第1页 / 共14页
ANSYS宏命令.docx_第2页
第2页 / 共14页
ANSYS宏命令.docx_第3页
第3页 / 共14页
ANSYS宏命令.docx_第4页
第4页 / 共14页
ANSYS宏命令.docx_第5页
第5页 / 共14页
点击查看更多>>
下载资源
资源描述

ANSYS宏命令.docx

《ANSYS宏命令.docx》由会员分享,可在线阅读,更多相关《ANSYS宏命令.docx(14页珍藏版)》请在冰豆网上搜索。

ANSYS宏命令.docx

ANSYS宏命令

ANSYS宏命令

4.1什么是APDL宏命令?

用户可以将一些经常使用的ANSYS命令记录在一个宏文件当中(有时也称为命令流文件)。

通过宏可以更加有效地定制用户自己的ANSYS命令。

例如,再磁场分析中,由于计算旋涡电流而产生的功率消耗需要一系列的ANSYS后处理命令,通过将这些命令记录在一个宏文件里,用户就能得到一个新的,单一的命令,当需要计算时只要执行这个命令即可。

除了执行一个系列的命令以外,宏也能够调用GUI函数,将赋值传给变量。

宏能够嵌套使用,即一个宏可以调用第二个宏,第二个宏可以调用第三个宏,以此类推,最多可嵌套二十个层,包括ANSYS命令“/INPUT”引起的任何文件转换。

在每个嵌套的宏执行完后,ANSYS软件将会返回到其上一层的位置。

下面是一个非常简单的宏文件例字,其内容是:

先生成一个4*3*2的块,然后再生成一个半径为一的球体,随后从块的一角减去球体。

其命令流文件为:

/PREP7

/VIEW,,-1,-2,-3

BLOCK,,4,,3,,2

SPHERE,1

VSVB,1,2

FINISH

如果这个宏名叫做“Mymacro.mac”,就可以使用下面的命令来执行这个宏文件。

*USE,mymacro

或者mymacro

尽管这并不是一个实际的宏,但它说明了一个原理。

下面将介绍使用各种不同的方法来生成、储存、执行宏,同时也会讨论在使用APDL作为一种语言生成宏时的基本知识。

4.2创建宏

可以使用ANSYS本身或文本编辑软件,如记事本等,来创建一个宏。

如果宏相对简单而且很短,则用ANSYS软件是非常方便的。

如果生成的宏较长,且很复杂,或者是要编辑已经存在的宏,那么最好采用文本编辑软件。

同时使用文本编辑软件可以使用类似的宏或ANSYS的LOG文件作为生成自己宏文件的参考。

对于一个复杂且长的宏来说,应该考虑是采用类似的宏作为参考的蓝本还是先用ANSYS的GUI模式交互执行任务,然后再将其LOG文件作为生成宏文件的基础。

上述两种方法都可以减少生成一个合适宏文件的时间和精力。

4.2.1宏文件的命名规则

宏文件就是将一系列的ANSYS命令贮存在一个文件里。

因此宏的名称不应该与ANSYS系统内已经存在的命令名相同。

否则ANSYS会执行其内部命令而不是宏。

下面是对宏命名的限制规则:

•宏名不能超过32个字符。

•宏名不能用数字作为开头。

•文件的扩展名不能超过8个字符,如果在执行宏,那么按照ANSYS命令,其扩展名应该是“.mac”。

•文件名和扩展名不能包括空格。

文件名和扩展名不能包含系统所禁止的任何字符。

为了保证没有使用与ANSYS命令相同的文件名,在生成宏之前,事先在ANSYS软件里运行一下这个文件名。

类似的,应该用这个名称在所有的处理器中都试一下,直到没有相同的ANSYS命令时,才可以使用这个名称作为宏名。

还有一种简便的方法是将该名称放在在线帮助文档中,进行搜索,可以查出是否与存在的ANSYS命令名相同。

但这种方法不能检查出没有帮助文档的ANSYS命令。

使用扩展名“.mac”,可以使ANSYS在执行该宏时,当作一个内部命令一样使用。

但最好避免使用这个扩展名,因为它被ANSYS内部宏所使用。

4.2.2宏的搜索路径

在缺省方式下,ANSYS通过下列路径搜索用户自定义的宏文件(其扩展名为.mac)。

⑴目录:

/AnsysInc/v70/ANSYS/apdl。

⑵在ANSYS_MACROLIB环境下指定的路径或者注册目录。

⑶由$HOME环境变量所指定的目录。

⑷工作目录。

可以将自己个人使用的宏放在用户主目录下。

对于经常要使用的宏应该放在/AnsysInc/v70/ANSYS/apdl或者某些经常进入的目录下,这样任何人通过ANSYS_MACROLIB环境变量都可以找到。

对于Windows用户,当前目录常常就是一个由管理员设置的缺省目录,对于这个位置,用户应该请教管理员,也可以使用环境变量生成一个局部的“主目录”。

4.2.3用ANSYS生成宏

在ANSYS系统内,可以用四种方法来定制一个宏:

•在命令输入中执行“*CREAT”命令,这时参数值将不重新求解,参数名被写入文件里。

•使用命令“*CFOPEN”、“CFWRITE”和“CFCLOS”,参数将重新求解,并得到他们的当前值,这些值将被写入到宏文件中。

•在命令输入行中执行“/TEE”命令,这个命令在执行输入命令的同时,也把这些命令列出一个清单,并写入到一个文件里。

命令在当前ANSYS的对话框中执行时,参数名会重新求解并得到它们的当前值。

然而在生成的文件中,参数值没有求解,仅仅写入了参数名。

•选择GUI模式:

UtilityMenu>Marco>CreatMacro,这种方法将打开一个对话框,对生成宏来说,可作为一个简单多行编辑器,参数值将不会被求解,参数名将被写入到文件中。

4.2.3.1使用命令“*CREAT”

执行命令“*CREAT”后,将会使在命令输入行中执行的ANSYS命令改向进入到由该命令指定的文件中,在执行命令“*END”之前,所有输入的命令都将会改向。

如果已经存在的文件名与用户指定的文件名相同,ANSYS会覆盖掉这个已经存在的文件。

假设要生成一个名叫“matprop.mac”的文件,这个文件能够自动定义材料的性能参数,为生成这个宏,在命令输入行中输入下列命令流即可。

*CREAT,matrop,mac,macros

MP,EX,1,2.07E11

MP,NUXY,1.27

MP,DENS,1.7835

MP,KXX,1.42

*END

命令“*CREAT”包含有文件名、扩展名和目录路径(大多数情况指定为“macros”)等变量。

当使用命令“*CREAT”时,在命令中使用的所有参数都将会写入到文件中,但并不会将值赋给参数。

但要注意,命令“*CEREAT”不能在DO-LOOP循环中使用。

4.2.3.2使用命令“*CFWRITE”

如果希望在生成一个宏的同时,参数能够被当前的值所取代,这时可以使用命令“*CFWRITE”。

与命令“*CREAT”不相同的是,命令“*CFWRITE”并不能指定一个文件名,必须先由“CFOPEN”指定一个宏文件,然后只有那些在命令输入行中输入的且用“*CFWRITE”作为前缀的命令才能够写入到指定的文件名、扩展名和工作目录。

下列的一个例子就是将一个“BLOCK”命令写入到当时打开的宏文件里。

*CFWRITE,BLOCK,,a,,b,,c

对于“BLOCK”命令来说,由于这些参数被作为变量使用,这些参数的当前值也要被写入到文件中,因此,对于这个例子来说,将要写入到宏文件里的这一行也可写成:

*CFWRITE,BLOCK,,4,,2.5,,2

要关闭这个打开的宏文件,可使用命令“*CFCLOS”。

4.2.3.3使用“/TEE”

执行“/TEE,NEW”或者“/TEE,APPEND”命令后,命令输入行中的命令会改向并进入到由命令指定的文件中,同时这些命令也会被执行。

除非执行了“/TEE,END”命令,否则输入的命令都将会被改向,并执行。

如果在执行命令“/TEE,NEW”后,已存在的文件名与指定的宏文件相同,ANSYS系统将会覆盖它,因此建议使用命令“/TEE,APPEND”。

另外,在命“/TEE”中除了label变量外,还可以指定文件名、扩展名和目录的路径。

命令在ANSYS对话框中执行时,所有的参数名都将会重新求解,并得到它们的当前值。

然而在生成的文件中,参数名被写入,当前对参数指定的值并不会取代。

如果感到当前的参数值非常重要,用户可用命令“PARSAV”将这些参数保留在一个文件里。

4.2.3.4使用操作路径

GUI:

UtilityMenu>Macro>CreatMacro

当执行这一操作后,系统会弹出一个对话框,在这个对话框中,用户可以输入命令并生成一个宏文件。

但不能利用这个特征去打开或编辑已经存在的宏文件,如果用户在“*CREAT”域内输入一个与已经存在的文件同名的宏名,则已经存在的文件将会被覆盖掉。

与命令“*CREAT”类似,参数并不去求解,而是全部写入到宏文件当中。

但最后一行要写上“*END”命令。

4.2.3.5使用文本编辑器

可以使用你最喜爱文本编辑器来生成或编辑一个宏文件。

任何ASCII文本编辑器均可。

同时ANSYS宏要求每行都有一个终止符(即回车符),以表示输入命令结束。

因此在某个平台上生成的宏文件可以在任何平台上工作。

使用这种方法生成的宏文件,其内容不要包含“*CREAT”和“*END”命令。

4.2.3.6使用宏库文件

为了方便起见,ANSYS系统也允许将一系列的宏放在一个文件里。

这个文件就称之为宏库文件。

可以采用文本编辑器或命令“*CREAT”来生成这个宏库文件,由于宏库文件的命令行数肯定要比单个宏命令要多,也许使用文本编辑器是一种最好的方式。

宏库文件没有确定的文件扩展名,其文件名的命名规则与宏文件类似,宏库文件有如下的结构:

MACRONAME1

……

/EOF

MACRONAME2

……

/EOF

MACRONAME3

……

/EOF

如下的宏库文件里包含着两个简单的宏:

mybloc

/PREP7

/VIEW,,-1,-2,-3

BLOCK,,4,,3,,2

FINISH

/EOF

mysphere

/PREP7

/VIEW,,-1,-2,-3

SPHERE,1

FINISH

/EOF

从上述例子可以看出,在宏库文件里,每个宏都以宏名作为起始位置,再用“/EOF”命令作为结束的标志。

宏库文件能够放在系统的任何位置,尽管这样,最好还是将其放在宏搜索的路径里。

与宏文件不同之处是,宏库文件的扩展名可以使用8个字符。

4.3执行宏文件和宏库文件

用户可以通过使用“/*USE”命令来执行任何宏文件,如果要执行一个放在宏搜索路径中叫“mymacro”的宏时,可以使用:

*use,mymacro

在这种情况下,宏没有变量。

如果要执行一个保存在“/myaccount/macro”中且名称为“mymacro.macro”的宏时,执行语句为:

*use,/myaccount/macros/mymacro.macro

由于“*USE”命令能够自动进入路径并搜索到文件名,因此没有必要指定分离的变量。

如果一个宏有一个“.mac”的扩展名,并且保存在搜索路径里。

这时就可以象执行ANSYS内部命令一样在命令输入行中执行这个宏。

如果要调用mymacro.mac这个宏时,只要在命令输入行中简单的输入:

“mymacro”,并回车即可。

当然,也可以利用下拉菜单执行这个以“.mac”作为扩展名的宏。

其中执行路径为:

GUI:

UTILITYMenu>Macro>ExecuteMacro

如果一个宏有许多变量,那么可以直接在命令行中输入。

如:

mymacro,4,3,2,1.5

或者*use,mymacro.mac,4,3,2,1.5

而用下拉菜单即操作路径“UTILITYMenu>Macro>ExecuteMacro”时,会弹出一个对话框,其变量则在对话框中输入即可。

执行一个包含在宏库文件里的宏,其过程与执行宏文件是相似的。

首先必须用命令“*ULIB”来指定一个文件,如指定宏是在“mymacros.mlib”库文件里,且保存在“/myaccount/macros”目录里,这时要执行下列操作:

*ulib,mymacros,mlib,/myaccount/macros/

在选择了一个宏文件后,就可以使用命令“*USE”来执行包含在这个宏库文件中的任何宏。

就像包含在单个文件里一样,在使用“/*USE”时可以指定变量作为参数。

但要注意,在执行“*ULIB”命令后不能使用“*USE”命令去执行没有包含在指定宏库文件中的宏名。

4.4局部变量

APDL提供了两组特定命名的标量参数,他们被利用来作为局部变量使用。

即:

•一组标量参数,为命令行中的变量传递给宏提供了一条通道。

•一组能够在宏里面使用的标量参数,它提供了能够定义值的一组局部变量,并且只在定义的那个宏里有效。

.4.1将变量传递给宏

可以使用19个标量参数将执行命令行中宏的变量传递给宏,这些标量参数能够在多个宏中重复使用,也就是说,它们的值对于宏来说是局部的。

这些参数名是:

ARG1-AR19,并且它们能够在下列范围内使用:

•数值。

•字符型字符串(用单引号括起来且不超过8个字符)。

•数值或字符参数。

•参数表达式。

但要注意,当使用命令“*USE”时只能将ARG1-AR19的参数值作为变量传递给宏。

但如果生成的宏可以作为一个ANSYS命令使用,即它有一个扩展名“.mac”时,这时可以将ARG1-AR19的参数值传递给宏。

如下所示的宏需要4个变量:

ARG1、ARG2、ARG3和ARG4。

/PREP7

/VIEW,,-1,-2,-3

BLOCK,,ARG1,,ARG2,,ARG3

SPHERE,ARG4

VSBV,1,2

FINISH

为了执行这个宏,用户应该输入:

mymacro,4,3,2.2,1

4.4.2宏里面的局部变量

每个宏最多可以使用79个标量作为局部变量(AR20-AR99),这些参数对宏来说是完全局部的,多重宏也都有他们自己唯一的赋值给这些参数。

这些参数并不传递给由宏调用的嵌套宏。

它们被传递给由“/INPUT”命令输入的任何文件,或者是在宏里面进行的“DO-LOOP”。

4.4.3宏外面的局部变量

ANSYS也有一组类似的ARG1-AR99的标量参数,它们对于输入文件来说是局部的,它们并不传递给由输入文件所调用的任何宏。

因此一旦宏执行完成,系统又返回到输入文件时,ARG1-ARG99的值又恢复到当前输入文件里所定义的值。

4.4.4在元件和部件中使用宏

为了使大的实体模型便于管理,可以根据不同类型的实体,如节点、单元关键点、线、面和体等,将一个模型分成离散的元件,每个元件可以容纳一种类型的实体,这样做的目的是可以根据分离的实体;来完成施加载荷或者生成图象等任务。

也可以生成部件,它们是成组的,是由两个或者多个元件甚至是多个部件组成的。

一个部件最多可以嵌套5层,如可以建立一个由stator、permmag、rotor和windings等元件生成的名叫“motor”的部件。

Chapter4.APDLasaMacroLanguage

4.1.WhatisanAPDLMacro?

YoucanrecordafrequentlyusedsequenceofANSYScommandsinamacrofile(thesearesometimescalledcommandfiles).Creatingamacroenablesyouto,ineffect,createyourowncustomANSYScommand.Forexample,calculatingpowerlossduetoeddycurrentsinamagneticanalysiswouldrequireaseriesofANSYScommandsinthepostprocessor.Byrecordingthissetofcommandsinamacro,youhaveanew,singlecommandthatexecutesallofthecommandsrequiredforthatcalculation.InadditiontoexecutingaseriesofANSYScommands,amacrocancallGUIfunctionsorpassvaluesintoarguments.

Youcanalsonestmacros.Thatis,onemacrocancallasecondmacro,thesecondmacrocancallathirdmacro,andsoon.Youcanuseupto20nestinglevels,includinganyfileswitchescausedbytheANSYS/INPUTcommand.Aftereachnestedmacroexecutes,theANSYSprogramreturnscontroltothepreviousmacrolevel.

Thefollowingisaverysimpleexamplemacrofile.Inthisexample,themacrocreatesablockwithdimensions4,3,and,2andaspherewitharadiusof1.Itthensubtractsthespherefromonecorneroftheblock.

/prep7

/view,,-1,-2,-3

block,,4,,3,,2

sphere,1

vsbv,1,2

finish

Ifthismacrowerecalledmymacro.mac,youcouldexecutethissequenceofcommandswiththefollowingsingleANSYScommand

*use,mymacro

or(becausetheextensionis.mac)

mymacro

Althoughthisisnotarealisticmacro,itdoesillustratetheprinciple.

Thischapterprovidesinformationonthevariouswaysyoucancreate,store,andexecutemacros.ItalsodiscussesthebasicinformationyouneedtouseAPDLasascriptinglanguageincreatingmacros.

4.2.CreatingaMacro

YoucancreatemacroseitherwithinANSYSitselforusingyourtexteditorofchoice(suchasemacs,vi,orwordpad).Ifyourmacroisfairlysimpleandshort,creatingitinANSYScanbeveryconvenient.Ifyouarecreatingalonger,morecomplexmacrooreditinganexistingmacrothenyouwillneedatexteditor.Also,usingatexteditorallowsyoutouseasimilarmacroorANSYSlogfileasthesourceforyourmacro.

Foranylong,complexmacroyoushouldalwaysconsidereitherusingasimilarmacroasastartingpointorrunningthetaskinteractivelyinANSYSandusingtheresultinglogfileasthebasisofyourmacro.Eithermethodcangreatlyreducethetimeandeffortrequiredtocreateasuitablemacro.

4.2.1.MacroFileNamingConventions

MacrosareasequenceofANSYScommandsstoredinafile.MacrosshouldnothavethesamenameasanexistingANSYScommand;ANSYSwillexecutetheinternalcommandinsteadofthemacro.Thefollowingnamingrestrictionsapplytomacrofiles:

·Thefilenamecannotexceed32characters.

·Thefilenamecannotbeginwithanumeral.

·Thefileextensioncannotcontainmorethaneightcharacters(ifyouareexecutingthemacroasifitwereanANSYScommanditshouldhavetheextension.mac.)

·Thefilenameorextensioncannotcontainspaces.

·ThefilenameorextensioncannotcontainanycharactersprohibitedbyyourfilesystemandforportabilityshouldnotcontainanycharactersprohibitedbyeitherUNIXorWindowsfilesystems.

ToensurethatyouarenotusingthenameofanANSYScommand,beforecreatingamacrotryrunningthefilenamethatyouwishtouseasanANSYScommand.IfANSYSreturnsthemessageshownbelow,youwillknowthatthecommandisnotusedinthecurrentprocessor.Youshouldcheckthemacrofilenameineachprocessorinwhichyouplantousethemacro.(Youcouldalsocheckifthemacrofilenamematchesanycommandlistedintheonlinedocumentation;however,thismethodcannotlocatethenamesofundocumentedcommands.)

Usingthe.macextensionallowsANSYStoexecutethemacroasitwouldanyinternalcommand.Youshouldavoidusingtheexte

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

当前位置:首页 > 高中教育 > 理化生

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

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