ANSYS二次开发培训练习题.docx
- 文档编号:30129632
- 上传时间:2023-08-05
- 格式:DOCX
- 页数:19
- 大小:24.89KB
ANSYS二次开发培训练习题.docx
《ANSYS二次开发培训练习题.docx》由会员分享,可在线阅读,更多相关《ANSYS二次开发培训练习题.docx(19页珍藏版)》请在冰豆网上搜索。
ANSYS二次开发培训练习题
我从老板那里拿来的,好东西哦,给我加1分吧!
ANSYS二次开发培训练习题
UIDL
E.使用UIDL在ANSYS主菜单中增加一个菜单项,点击后可以出现一个子菜单或激活一个对话框。
APDL
E.使用APDL编制一个可以读写有限元模型的小程序,要求读出所有节点号和单元号,节点坐标以及单元节点列表。
E.使用DNSOL,DESOL定义计算结果
UPF
E.使用ANSYS列表命令列出ANSYS某一结果文件的内容;编译并连接ANSYS二进制文件读写程序BINTST.F,读写二进制文件并与列表方式相比较。
E.编译并连接ANSYS提供的示例程序USER01.F;在ANSYS命令行中使用/UCMD给用户命令赋新的名称,并运行。
E.编译并连接ANSYS提供的示例程序USER03.F,使用动态数组保存有限元模型信息,如节点号、单元号、节点坐标、单元节点列表。
使用UPF读写数据库子程序,读写模型中的有限元模型信息和载荷信息,并打印。
E.使用ANSYS提供子程序试验矢量与矩阵的操作
E.试验用户自定义材料
E.试验用户单元
E.使用/DEBUG命令调试ANSYS单元矩阵及载荷矢量
练习题答案:
说明:
1. 以下练习答案以ANSYS5.5.1UP199810001Windows95/98/NT的UniversityLow版本(产品号为ansysul)为例,其它版本与此类似。
2. 假定机器中已经安装了DigitalVisualFortran5.0C以上的版本
假设ANSYS安装目录为C:
\ANSYS55
3. 假设用户工作目录为D:
\user
4. 约定
DOS提示 D:
\user>
DOS输入 copyc:
\ansys55\docu\UIFUNC2.GRN
ANSYS输入框 ET,1,42
数据文件 :
NMen_Training
UIDL
E.使用UIDL在ANSYS主菜单中增加一个菜单项,点击后可以出现一个子菜单或激活一个对话框。
A.
1. 拷贝文件
D:
\user>copyc:
\ansys55\docu\menulist55.ans
D:
\user>copyc:
\ansys55\docu\UIMENU.GRN
D:
\user>copyc:
\ansys55\docu\UIFUNC1.GRN
D:
\user>copyc:
\ansys55\docu\UIFUNC2.GRN
2. 在主菜单中加入自定义菜单项
D:
\user>editUIMENU.GRN
在第4780应为
:
AMainMenu
在第4803行插入以下几行:
Menu_Training
Sep_
所得到的结果如下:
Men_Aux12
Men_RunStat
K_LN(BETA)
Sep_
K_LN(BETA)
Fnc_UNDO
Sep_
Men_Training
Sep_
Fnc_FINISH
将光标移至第4812行,插入以下一段
:
!
:
NMen_Training
:
S 413, 76, 330
:
TMenu
:
ATrainingMenu
ANSYSTrainingMENU
Fnc_Training
:
EEND
:
!
删除该行
:
XINDEXADDEDBYANSYS
以后的全部行
存盘退出
3. 编辑新的菜单文件
D:
\user>editnewmenu.grn
键入以下文字
:
FUIMENU.GRN
Modifiedon98/10/01,Revision(SID)=5.181.1.68-ForusewithANSYS5.5
:
I 1, 759, 809
:
!
:
NFnc_Training
:
S 627, 449, 170
:
TCommand
:
AANSYSCustomizingTraining
TrainingExercises
:
C)*GET,_z1,ACTIVE,,TITLE,,START,1
:
C)*GET,_z2,ACTIVE,,TITLE,,START,9
:
C)*GET,_z3,ACTIVE,,TITLE,,START,17
:
C)*GET,_z4,ACTIVE,,TITLE,,START,25
:
C)*GET,_z5,ACTIVE,,TITLE,,START,33
:
C)*GET,_z6,ACTIVE,,TITLE,,START,41
:
C)*GET,_z7,ACTIVE,,TITLE,,START,49
:
C)*GET,_z8,ACTIVE,,TITLE,,START,57
:
C)*GET,_z9,ACTIVE,,TITLE,,START,65
Fmt_H
Inp_NoApply
Cmd_)/NOPR
Cmd_)/TITLE
Fld_2
 
rm_[/TITLE]WelcometoANSYSTraining
Typ_Char,72,72
 
rm_[/TITLE]WelcometoANSYSTraining
Cmd_)/Go
:
EEND
:
!
存盘退出
4. 修改menulist55.ans文件
D:
\user>editmenulist55.ans
修改文件的前三行,使其指向用户工作目录下的文件
d:
\user\UIMENU.GRN
d:
\user\UIFUNC1.GRN
d:
\user\UIFUNC2.GRN
d:
\user\newmenu.grn
c:
\ansys55\DOCU\UICMDS.HLP
c:
\ansys55\DOCU\UIELEM.HLP
c:
\ansys55\DOCU\UIGUID.HLP
c:
\ansys55\DOCU\UITHRY.HLP
c:
\ansys55\DOCU\UIOTHR.HLP
5. 启动ANSYS的launcher
在WorkingDirectory框中键入
d:
\user
按OK键,启动ANSYS界面
APDL
E.使用APDL编制一个可以读写有限元模型的小程序,要求读出所有节点号和单元号,节点坐标以及单元节点列表。
A.
1. 编辑文件a.dat
D:
\user>edita.dat
*Get,nnod,NODE,0,COUNT
*Dim,xy,array,nnod,2
*Dim,nodes,array,nnod
*Get,nd,NODE,0,NUM,MIN
*Do,I,1,nnod,1
nodes(I)=nd
xy(I,1)=Nx(nd)
xy(I,2)=Ny(nd)
nd=Ndnext(nd)
*Enddo
*Get,nelm,ELEM,0,COUNT
*Dim,elems,array,nelm
*Dim,ndlst,array,nelm,4
*Get,el,ELEM,0,NUM,MIN
*Do,I,1,nelm,1
elems(I)=el
*Do,J,1,4
ndlst(I,J)=Nelem(el,J)
*Enddo
el=Elnext(nd)
*Enddo
2. 启动ANSYS,根据自己所熟悉的领域,建立一个有限元模型
3. 输入文件a.dat
/input,a,dat
4. 检查
分别列出节点数,节点号列表,坐标,单元数,单元号列表,单元节点列表,与nlist,elist等对比。
*status,nnod
*status,nodes
*status,xy
*status,nelm
*status,elems
*status,ndlst
E.使用DNSOL,DESOL定义计算结果
1.利用前面所建立或新建一个有限元模型
2.进入Post-processor
/post26
或
MainMenu->GeneralPostproc
3.定义节点上的结果
手工定义
->NodalResults按对话框提示输入各点的结果数据
程序自动定义
/PREP7
BLC4,0,0,4,2
et,1,42
esize,.5
amesh,1
/POST1
dof,temp
*Get,nnod,NODE,0,COUNT
*Dim,xy,array,nnod,2
*Dim,nodes,array,nnod
*Get,nd,NODE,0,NUM,MIN
*Do,I,1,nnod,1
nodes(I)=nd
xy(I,1)=Nx(nd)
xy(I,2)=Ny(nd)
nd=Ndnext(nd)
*Enddo
*Do,i,1,nnod,1
dist=sqrt((xy(i,1)-2)*(xy(i,1)-2)+(xy(i,2)-1)*(xy(i,2)-1))
tmp=dist*100
Dnsol,nodes(i),temp,,tmp
*Enddo
nsel,all
plnsol,temp
UPF
E.使用ANSYS列表命令列出ANSYS某一结果文件的内容;编译并连接ANSYS二进制文件读写程序BINTST.F,读写二进制文件并与列表方式相比较。
1. 建立一个自己所熟悉的有限元模型,单元数3~5即可,加载、设置边界条件并求解
6. 使用ANSYS列表命令
UtilityMenu->File->List->BinaryFile
7. 在弹出的对话框中
[DUMP]Recordstobelist中选ALLRecords
[FORM]Amtofoutputperrecord中选EntireRecords
[FILEAUX2]binaryfiletolist中选择要显示的.rst文件
按OK键确认后,可以得到.rst文件的列表窗口
使用列表窗口的菜单保存列表窗口中的输出结果到文件list.txt
File->SaveAs
8. 拷贝以下文件到工作目录
D:
\user>copyc:
\ansys55\custom\misc\intel\bintst.f
D:
\user>copyc:
\ansys55\custom\misc\intel\bintrd.f
D:
\user>copyc:
\ansys55\custom\misc\intel\bintwr.f
D:
\user>copyc:
\ansys55\custom\misc\intel\Custom.bat
D:
\user>copyc:
\ansys55\custom\misc\intel\Makefile
D:
\user>copyc:
\ansys55\custom\misc\intel\binlib.a
9. 运行Custom.bat,编译并连接
D:
\user>custom
在工作目录中可生成一个运行程序bintst.exe
10. 运行bintst.exe
D:
\user>bintst>out.txt
将bintst的运行结果转存到文件out.txt中
比较out.txt与list.txt文件中的结果,并参考手册GuidetointerfacingtoANSYS中FormatofBinaryDataFiles的FormatoftheResultsFile分析文件结构。
E.用户命令:
编译并连接ANSYS提供的示例程序USER01.F;在ANSYS命令行中使用/UCMD给用户命令赋新的名称,并运行。
1. 清理用户工作目录下的文件
如果在用户工作目录下存在ANSYS二进制文件读取等程序,请全部删除
2. 拷贝以下文件到用户工作目录
D:
\user>copyc:
\ansys55\custom\user\intel\user01.F
D:
\user>copyc:
\ansys55\custom\user\intel\Anscust.bat
D:
\user>copyc:
\ansys55\custom\user\intel\Makefile
1. 修改user01.F
修改以下几行
c
c ***** user'SCODEISINSERTEDHERE*****
write(iott,2000)
2000format(//'***** CALLTOANSYS,INCDUMMYUSER01 *****'//)
c
c ***** donotreturnthisresultcodeinarealuserroutine
user01=-654321
c ***** insteadreturnazero *****
c user01=0
c
为
c
c ***** user'SCODEISINSERTEDHERE*****
write(iott,2000)
2000format(//'wby*** CALLTOANSYS,INCDUMMYUSER01 *****'//)
c
c ***** donotreturnthisresultcodeinarealuser
c user01=-654321
c ***** insteadreturnazero *****
user01=0
c
在format语句中增加的字符是为了在ANSYS运行时表明user01.F确实是自己修改过的版本
将user01的值设成0,是为了使ANSYS给出正确信息,而不是警告
2. 修改Makefile
修改ansys55_dir的值使其指向ANSYS主目录
ansys55_dir=C:
\ansys55
修改下面这一行
siappst.lib \
为
$(ansys55_dir)\custom\lib\intel\siappst.lib \
3. 运行ANSCUST.BAT编译并连接
忽略掉如下WARNING提示信息
LINK:
warningLNK4049:
locallydefinedsymbol"_free"imported
LINK:
warningLNK4049:
locallydefinedsymbol"_malloc"imported
LINK:
warningLNK4049:
locallydefinedsymbol"_fflush"imported
LINK:
warningLNK4049:
locallydefinedsymbol"_fread"imported
LINK:
warningLNK4049:
locallydefinedsymbol"_fwrite"imported
LINK:
warningLNK4049:
locallydefinedsymbol"_ftell"imported
LINK:
warningLNK4049:
locallydefinedsymbol"_fseek"imported
当出现gotoend时表明编译、连接完成,这时应该在用户工作目录下出现一个可执行程序ansys.exe,约为34MB
4. 运行编译连接生成的ANSYS
在用户工作目录下
D:
\user>ansys-pansysul
或
D:
\user>ansys55cust-custom.\ansys.exe-pansysul
如果在其它目录下运行
D:
\otherdir>setpath=c:
\ansys55\bin\intel
D:
\otherdir>ansys55cust-customd:
\user\ansys.exe-pansysul
或
D:
\otherdir>setpath=d:
\user
D:
\otherdir>ansys-pansysul
5. 执行用户命令
执行用户命令可以在字符界面下,也可在图形界面下
在出现
BEGIN:
提示信息后,键入以下命令
usr1
或者输入以下命令进行到图形用户界面
/show,win32
/menu,on
在工作站上的用户可以选择
/show,x11
/show,x11c
/show,3D
详细说明可以参见ANSYS命令手册中关于/show的说明
在输入框中,键入命令
usr1
6. 用/UCMD命令自定义用户命令名
在ANSYSBEGIN提示信息后
/UCMD,aaa,1
aaa
E.编译并连接ANSYS提供的示例程序USER03.F,使用动态数组保存有限元模型信息,如节点号、单元号、节点坐标、单元节点列表。
使用UPF读写数据库子程序,读写模型中的有限元模型信息和载荷信息,并打印。
以下是一个完整的程序,可由user03.F修改得到
*deck,user03 user ANSYS,INC
csid5.1copyoffiles.user03.Flastchangedbyjtmon98/03/09
function user03(intin,dpin,ch4in,ch8in)
#include"impcom.inc"
external wrinqr,ndinqr,ndgxyz,ndnext,HeapAllocPtr,
x HeapDealloc,erhandler
integer wrinqr,ndinqr,ndgxyz,ndnext,HeapAllocPtr
integer user03,intin(12),iott,i,ksel,xcptr,hXcptr,ycptr,
x hYcptr,zcptr,hZcptr,ndptr,hNdptr,numnp,node
doubleprecision dpin(12),xyz(3),xmean,ymean,zmean,stdxyz(3),
x sodx,sody,sodz
character*4 ch4in(12)
character*8 ch8in(12)
#include"ansysdef.inc"
#include"stack.inc"
c
c Getnodalxyzlocationsandcalculatestandarddeviationof
c xcoordinates,ycoordinates,&zcoordinates
c
c getnumberofcurrentlyselectednodes
&nbs
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- ANSYS 二次开发 培训 练习题