ImageVerifierCode 换一换
格式:DOCX , 页数:19 ,大小:26.41KB ,
资源ID:8554623      下载积分:12 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/8554623.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(ANSYS二次开发培训练习题.docx)为本站会员(b****6)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

ANSYS二次开发培训练习题.docx

1、ANSYS二次开发培训练习题ANSYS二次开发培训练习题UIDLE.使用UIDL在ANSYS主菜单中增加一个菜单项,点击后可以出现一个子菜单或激活一个对话框。APDLE. 使用APDL编制一个可以读写有限元模型的小程序,要求读出所有节点号和单元号,节点坐标以及单元节点列表。E. 使用DNSOL,DESOL定义计算结果UPFE. 使用ANSYS列表命令列出ANSYS某一结果文件的内容;编译并连接ANSYS二进制文件读写程序BINTST.F,读写二进制文件并与列表方式相比较。E. 编译并连接ANSYS提供的示例程序USER01.F;在ANSYS命令行中使用/UCMD给用户命令赋新的名称,并运行。E

2、. 编译并连接ANSYS提供的示例程序USER03.F,使用动态数组保存有限元模型信息,如节点号、单元号、节点坐标、单元节点列表。使用UPF读写数据库子程序,读写模型中的有限元模型信息和载荷信息,并打印。E. 使用ANSYS提供子程序试验矢量与矩阵的操作E. 试验用户自定义材料E. 试验用户单元E. 使用/DEBUG命令调试ANSYS单元矩阵及载荷矢量练习题答案:说明:1. 以下练习答案以ANSYS 5.5.1 UP199810001 Windows 95/98/NT的University Low版本(产品号为ansysul)为例,其它版本与此类似。2. 假定机器中已经安装了Digital V

3、isual Fortran 5.0C以上的版本假设ANSYS安装目录为C:ANSYS553. 假设用户工作目录为D:user4. 约定DOS提示D:userDOS输入copy c:ansys55docuUIFUNC2.GRNANSYS输入框ET,1,42数据文件:N Men_TrainingUIDLE. 使用UIDL在ANSYS主菜单中增加一个菜单项,点击后可以出现一个子菜单或激活一个对话框。A1. 拷贝文件D:usercopy c:ansys55documenulist55.ansD:usercopy c:ansys55docuUIMENU.GRND:usercopy c:ansys55do

4、cuUIFUNC1.GRND:usercopy c:ansys55docuUIFUNC2.GRN2. 在主菜单中加入自定义菜单项D:useredit UIMENU.GRN在第4780应为:A Main Menu在第4803行插入以下几行:Men_TrainingSep_所得到的结果如下:Men_Aux12Men_RunStatK_LN(BETA)Sep_K_LN(BETA)Fnc_UNDOSep_Men_TrainingSep_Fnc_FINISH将光标移至第4812行,插入以下一段:!:N Men_Training:S 413, 76, 330:T Menu:A Training Menu:

5、D ANSYS Training MENUFnc_Training:E END:!删除该行:X INDEX ADDED BY ANSYS以后的全部行存盘退出3. 编辑新的菜单文件D:useredit newmenu.grn键入以下文字:F UIMENU.GRN:D Modified on 98/10/01, Revision (SID) = 5.181.1.68 - For use with ANSYS 5.5:I 1, 759, 809:! :N Fnc_Training:S 627, 449, 170:T Command:A ANSYS Customizing Training :D Tr

6、aining Exercises: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,A

7、CTIVE,TITLE,START,65Fmt_HInp_NoApplyCmd_)/NOPRCmd_)/TITLEFld_2 Prm_/TITLE Welcome to ANSYS Training Typ_Char,72,72 Prm_/TITLE Welcome to ANSYS Training Cmd_)/Go:E END:!存盘退出4. 修改menulist55.ans文件D:useredit menulist55.ans修改文件的前三行,使其指向用户工作目录下的文件d:userUIMENU.GRNd:userUIFUNC1.GRNd:userUIFUNC2.GRNd:usernew

8、menu.grnc:ansys55DOCUUICMDS.HLPc:ansys55DOCUUIELEM.HLPc:ansys55DOCUUIGUID.HLPc:ansys55DOCUUITHRY.HLPc:ansys55DOCUUIOTHR.HLP5. 启动ANSYS的launcher在Working Directory框中键入d:user按OK键,启动ANSYS界面APDLE. 使用APDL编制一个可以读写有限元模型的小程序,要求读出所有节点号和单元号,节点坐标以及单元节点列表。A1. 编辑文件a.datD:useredit a.dat*Get,nnod,NODE,0,COUNT*Dim,xy

9、,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

10、= Elnext(nd)*Enddo2. 启动ANSYS,根据自己所熟悉的领域,建立一个有限元模型3. 输入文件a.dat/input,a,dat4. 检查分别列出节点数,节点号列表,坐标,单元数,单元号列表,单元节点列表,与nlist,elist等对比。*status,nnod*status,nodes*status,xy*status,nelm*status,elems*status,ndlstE. 使用DNSOL,DESOL定义计算结果1 利用前面所建立或新建一个有限元模型2 进入Post-processor/post26或Main Menu-General Postproc3定义节点上

11、的结果手工定义-Nodal Results按对话框提示输入各点的结果数据程序自动定义/PREP7 BLC4,0,0,4,2et,1,42 esize,.5amesh,1 /POST1dof,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

12、)-2)*(xy(i,1)-2)+(xy(i,2)-1)*(xy(i,2)-1) tmp = dist*100 Dnsol,nodes(i),temp,tmp*Enddonsel,allplnsol,tempUPFE. 使用ANSYS列表命令列出ANSYS某一结果文件的内容;编译并连接ANSYS二进制文件读写程序BINTST.F,读写二进制文件并与列表方式相比较。1. 建立一个自己所熟悉的有限元模型,单元数35即可,加载、设置边界条件并求解6. 使用ANSYS列表命令Utility Menu-File-List-Binary File7. 在弹出的对话框中DUMP Records to be

13、list中选ALL RecordsFORM Amt of output per record中选Entire RecordsFILEAUX2 binary file to list中选择要显示的.rst文件按OK键确认后,可以得到.rst文件的列表窗口使用列表窗口的菜单保存列表窗口中的输出结果到文件list.txtFile-Save As8. 拷贝以下文件到工作目录D:usercopy c:ansys55custommiscintelbintst.fD:usercopy c:ansys55custommiscintelbintrd.fD:usercopy c:ansys55custommisc

14、intelbintwr.fD:usercopy c:ansys55custommiscintelCustom.batD:usercopy c:ansys55custommiscintelMakefileD:usercopy c:ansys55custommiscintelbinlib.a9. 运行Custom.bat,编译并连接D:usercustom在工作目录中可生成一个运行程序bintst.exe10. 运行bintst.exeD:userbintst out.txt将bintst的运行结果转存到文件out.txt中比较out.txt 与list.txt文件中的结果,并参考手册Guide

15、to interfacing to ANSYS中Format of Binary Data Files的Format of the Results File分析文件结构。E. 用户命令:编译并连接ANSYS提供的示例程序USER01.F;在ANSYS命令行中使用/UCMD给用户命令赋新的名称,并运行。2. 清理用户工作目录下的文件如果在用户工作目录下存在ANSYS二进制文件读取等程序,请全部删除3. 拷贝以下文件到用户工作目录D:usercopy c:ansys55customuserinteluser01.FD:usercopy c:ansys55customuserintelAnscust

16、.batD:usercopy c:ansys55customuserintelMakefile11. 修改user01.F修改以下几行cc * userS CODE IS INSERTED HERE * write (iott,2000) 2000 format (/ * CALL TO ANSYS,INC DUMMY USER01 */)cc * do not return this result code in a real user routine user01 = -654321c * instead return a zero *c user01 = 0c为cc * userS CO

17、DE IS INSERTED HERE * write (iott,2000) 2000 format (/ wby* CALL TO ANSYS,INC DUMMY USER01 */)cc * do not return this result code in a real user c user01 = -654321c * instead return a zero * user01 = 0c在format语句中增加的字符是为了在ANSYS运行时表明user01.F确实是自己修改过的版本将user01的值设成0,是为了使ANSYS给出正确信息,而不是警告12. 修改Makefile修改

18、ansys55_dir的值使其指向ANSYS主目录ansys55_dir=C:ansys55修改下面这一行 siappst.lib 为$(ansys55_dir)customlibintelsiappst.lib 13. 运行ANSCUST.BAT编译并连接忽略掉如下WARNING提示信息LINK : warning LNK4049: locally defined symbol _free importedLINK : warning LNK4049: locally defined symbol _malloc importedLINK : warning LNK4049: locally

19、 defined symbol _fflush importedLINK : warning LNK4049: locally defined symbol _fread importedLINK : warning LNK4049: locally defined symbol _fwrite importedLINK : warning LNK4049: locally defined symbol _ftell importedLINK : warning LNK4049: locally defined symbol _fseek imported当出现goto end时表明编译、连接

20、完成,这时应该在用户工作目录下出现一个可执行程序ansys.exe,约为34MB14. 运行编译连接生成的ANSYS在用户工作目录下D:useransys -p ansysul或D:useransys55cust -custom .ansys.exe -p ansysul如果在其它目录下运行D:otherdirset path=c:ansys55binintelD:otherdiransys55cust -custom d:useransys.exe -p ansysul或D:otherdirset path=d:userD:otherdiransys -p ansysul15. 执行用户命令

21、执行用户命令可以在字符界面下,也可在图形界面下在出现BEGIN:提示信息后,键入以下命令usr1或者输入以下命令进行到图形用户界面/show,win32/menu,on在工作站上的用户可以选择/show,x11/show,x11c/show,3D详细说明可以参见ANSYS命令手册中关于/show的说明在输入框中,键入命令usr116. 用/UCMD命令自定义用户命令名在ANSYS BEGIN提示信息后/UCMD,aaa,1aaaE. 编译并连接ANSYS提供的示例程序USER03.F,使用动态数组保存有限元模型信息,如节点号、单元号、节点坐标、单元节点列表。使用UPF读写数据库子程序,读写模型

22、中的有限元模型信息和载荷信息,并打印。以下是一个完整的程序,可由user03.F修改得到*deck,user03 user ANSYS,INCc sid 5.1 copy of file s.user03.F last changed by jtm on 98/03/09 function user03 (intin,dpin,ch4in,ch8in)#include impcom.inc external wrinqr,ndinqr,ndgxyz,ndnext,HeapAllocPtr, x HeapDealloc,erhandler integer wrinqr,ndinqr,ndgxyz

23、,ndnext,HeapAllocPtr integer user03, intin(12), iott, i, ksel, xcptr, hXcptr, ycptr, x hYcptr, zcptr, hZcptr, ndptr, hNdptr, numnp, node double precision 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

24、.inccc Get nodal xyz locations and calculate standard deviation ofc x coordinates, y coordinates, & z coordinatescc get number of currently selected nodes numnp = ndinqr (0,DB_NUMSELECTED) if (numnp .le. 0) go to 999c allocate memory for x, y, & z coordinates of nodes xcptr = HeapAllocPtr(numnp,XCoo

25、rds ,HEAP_DOUBLE,hXcptr) ycptr = HeapAllocPtr(numnp,YCoords ,HEAP_DOUBLE,hYcptr) zcptr = HeapAllocPtr(numnp,ZCoords ,HEAP_DOUBLE,hZcptr) ndptr = HEapAllocPtr(numnp,Nodes ,HEAP_INTEGER,hNdptr)c loop through all selected nodes i=1 node = 0 xmean = 0.0d0 ymean = 0.0d0 zmean = 0.0d0 10 node = ndnext(nod

26、e) if (node .gt. 0) thenc get xyz coordinates ksel = ndgxyz (node,xyz(1)c store this nodes xyz coordinates dstack(xcptr + i) = xyz(1) dstack(ycptr + i) = xyz(2) dstack(zcptr + i) = xyz(3) istack(ndptr + i) = nodec while were looping, accumulate sums to calculate means xmean = xmean + xyz(1) ymean =

27、ymean + xyz(2) zmean = zmean + xyz(3)c increment index i = i + 1c loop back up for next selected node goto 10 endif call wrdisp (numnp, istack(ndptr+1)c node = 0, at the end of node listc calculate mean of xyz coordinates xmean = xmean / numnp ymean = ymean / numnp zmean = zmean / numnpc calculate s

28、tandard deviation for xyz coordinates sodx = 0 sody = 0 sodz = 0 do i=1, numnp sodx = sodx + (dstack(xcptr+i) - xmean)*2 sody = sody + (dstack(ycptr+i) - ymean)*2 sodz = sodz + (dstack(zcptr+i) - zmean)*2 enddo stdxyz(1) = sqrt(sodx / (numnp-1) stdxyz(2) = sqrt(sody / (numnp-1) stdxyz(3) = sqrt(sodz

29、 / (numnp-1)c * write to output file * iott = wrinqr(WR_OUTPUT) write (iott,2000) stdxyz(1),stdxyz(2),stdxyz(3) 2000 format (/ STD FOR X COORDINATES:,G12.5,/, X STD FOR Y COORDINATES:,G12.5,/, X STD FOR Z COORDINATES:,G12.5)c * write to GUI window * call erhandler (user03,5000,2, x STD FOR X COORDINATES: %G %/ STD FOR Y x COORDINATES: %G %/ STD FOR Z COORDINATES: %G,stdxyz(1), )c release dynamically allocated memory call HeapDealloc(hXcptr) call HeapDealloc(hYcptr) call HeapDealloc(hZcptr) call HeapDealloc(hNdptr)c * required return value * 999 user03 = 0

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

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