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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

ANSYS二次开发 精华.docx

1、ANSYS二次开发 精华ansys具有多种实用的二次开发工具:ANSYS除了具有较为完善的分析功能外,同时还为用户进行二次开发提供了多种实用工具。如宏(Marco)、参数设计语言(APDL)、用户界面设计语言(UIDL)及用户编程特性(UPFs),其中APDL(ANSYS Parametric Design Language)是一种非常类似于Fortran77的参数化设计解释性语言,其核心内容为宏、参数、循环命令和条件语句,可以通过建立参数化模型来自动完成一些通用性强的任务;UIDL(User Interface Design Language)是ANSYS为用户提供专门进行程序界面设计的语言

2、,允许用户改变ANSYS的图形用户界面(GUI)中的一些组项,提供了一种允许用户灵活使用、按个人喜好来组织设计ANSYS图形用户界面的强有力工具;UPFs(User Programmable Features)提供了一套Fortran77函数和例程以扩展或修改程序的功能,该项技术充分显示了ANSYS的开放体系,用户不仅可以采用它将ANSYS程序剪裁成符合自己所需的任何组织形式(如可以定义一种新的材料,一个新的单元或者给出一种新的屈服准则),而且还可以编写自己的优化算法,通过将整个ANSYS作为一个子程序调用的方式实现。 程序设计的主要原则和功能如下: (1)方便原则,即程序模块应具有良好的用户

3、界面和易用性。程序前台设计采用Windows提供的标准图形用户界面(GUI),用户无须接受专门训练即可使用。同时,程序应具有良好的容错和纠错能力,避免用户操作不当造成损失。 (2)程序系统能够提供用户以下功能: 允许用户可以根据实际计算工况,输入特定的计算参数,包括地震波选择、计算时间步长、地震波调幅与否等。 用户在输入各种参数以后、进行计算之前可以对输入的数据进行修改、添加和删除操作,以保证输入正确的参数。 用户通过界面调用后台的ANSYS命令流进行计算,能够得到最后的计算结果文件,供用户进行后处理和结果分析。 用户可以添加新的功能或新的二次开发以实现程序升级。 (3)程序应具有良好的可移植

4、性,不依赖于特定的硬件设备,只要能安装ANSYS和VC6.0的硬件环境都能使用本系统,保证程序使用的广泛性。 (4)程序代码应具有开放性和可重用性。这样,在进一步的设计中,能保证设计者可以方便地对代码进行修改扩充;同时,提供一定的设计接口,新的设计者可以根据接口,无须对程序进行大幅度的修改,就可以进行新的开发,以适应新的特殊要求。 ANSYS二次开发培训练习题(转帖)UIDL E.使用UIDL在ANSYS主菜单中增加一个菜单项,点击后可以出现一个子菜单或激活一个对话框。 APDL E. 使用APDL编制一个可以读写有限元模型的小程序,要求读出所有节点号和单元号,节点坐标以及单元节点列表。 E.

5、 使用DNSOL,DESOL定义计算结果 UPF E. 使用ANSYS列表命令列出ANSYS某一结果文件的内容;编译并连接ANSYS二进制文件读写程序BINTST.F,读写二进制文件并与列表方式相比较。 E. 编译并连接ANSYS提供的示例程序USER01.F;在ANSYS命令行中使用/UCMD给用户命令赋新的名称,并运行。 E. 编译并连接ANSYS提供的示例程序USER03.F,使用动态数组保存有限元模型信息,如节点号、单元号、节点坐标、单元节点列表。使用UPF读写数据库子程序,读写模型中的有限元模型信息和载荷信息,并打印。 E. 使用ANSYS提供子程序试验矢量与矩阵的操作 E. 试验用

6、户自定义材料 E. 试验用户单元 E. 使用/DEBUG命令调试ANSYS单元矩阵及载荷矢量 练习题答案: 说明: 1.以下练习答案以ANSYS 5.5.1 UP199810001 Windows 95/98/NT的University Low版本(产品号为ansysul)为例,其它版本与此类似。 2.假定机器中已经安装了Digital Visual Fortran 5.0C以上的版本 假设ANSYS安装目录为C:ANSYS55 3.假设用户工作目录为D:user 4.约定 DOS提示D:user DOS输入copy c:ansys55docuUIFUNC2.GRN ANSYS输入框ET,1,

7、42 数据文件:N Men_Training UIDL E. 使用UIDL在ANSYS主菜单中增加一个菜单项,点击后可以出现一个子菜单或激活一个对话框。 A 1.拷贝文件 D:usercopy c:ansys55documenulist55.ans D:usercopy c:ansys55docuUIMENU.GRN D:usercopy c:ansys55docuUIFUNC1.GRN D:usercopy c:ansys55docuUIFUNC2.GRN 2.在主菜单中加入自定义菜单项 D:useredit UIMENU.GRN 在第4780应为 :A Main Menu 在第4803行插

8、入以下几行: Men_Training Sep_ 所得到的结果如下: Men_Aux12 Men_RunStat K_LN(BETA) Sep_ K_LN(BETA) Fnc_UNDO Sep_ Men_Training Sep_ Fnc_FINISH 将光标移至第4812行,插入以下一段 :! :N Men_Training :S 413, 76, 330 :T Menu :A Training Menu :D ANSYS Training MENU Fnc_Training :E END :! 删除该行 :X INDEX ADDED BY ANSYS 以后的全部行 存盘退出 3.编辑新的菜

9、单文件 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 Training Exercises :C )*GET,_z1,ACTIVE,TITLE,START,1 :C )*GET,_z2,ACTIVE,TITLE,

10、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

11、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.GRN d:userUIFUNC1.GRN d:userUIFUNC2.GRN d:usernewmenu.grn c:ansys55DOCUUICMDS.HLP c:ansys55DOCUUIELEM.H

12、LP c:ansys55DOCUUIGUID.HLP c:ansys55DOCUUITHRY.HLP c:ansys55DOCUUIOTHR.HLP 5.启动ANSYS的launcher 在Working Directory框中键入 d:user 按OK键,启动ANSYS界面 APDL E. 使用APDL编制一个可以读写有限元模型的小程序,要求读出所有节点号和单元号,节点坐标以及单元节点列表。 A 1.编辑文件a.dat D:useredit a.dat *Get,nnod,NODE,0,COUNT *Dim,xy,array,nnod,2 *Dim,nodes,array,nnod *Get

13、,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,根

14、据自己所熟悉的领域,建立一个有限元模型 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 或 Main Menu-General Postproc 3定义节点上的结果 手工定义 -Nodal

15、 Results按对话框提示输入各点的结果数据 程序自动定义 /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)

16、-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.建立一个自己所熟悉的有限元模型,单元数35即可,加载、设置边界条件并求解 6.使用ANSYS列表命令 Utility Menu-File-List-Binary File 7.在弹出的对话框中 DUMP Records

17、to be list中选ALL Records FORM Amt of output per record中选Entire Records FILEAUX2 binary file to list中选择要显示的.rst文件 按OK键确认后,可以得到.rst文件的列表窗口 使用列表窗口的菜单保存列表窗口中的输出结果到文件list.txt File-Save As 8.拷贝以下文件到工作目录 D:usercopy c:ansys55custommiscintelbintst.f D:usercopy c:ansys55custommiscintelbintrd.f D:usercopy c:ans

18、ys55custommiscintelbintwr.f D:usercopy c:ansys55custommiscintelCustom.bat D:usercopy c:ansys55custommiscintelMakefile D:usercopy c:ansys55custommiscintelbinlib.a 9.运行Custom.bat,编译并连接 D:usercustom 在工作目录中可生成一个运行程序bintst.exe 10.运行bintst.exe D:userbintst out.txt 将bintst的运行结果转存到文件out.txt中 比较out.txt 与list

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

20、ys55customuserintelAnscust.bat D:usercopy c:ansys55customuserintelMakefile 1.修改user01.F 修改以下几行 c c * userS CODE IS INSERTED HERE * write (iott,2000) 2000 format (/ * CALL TO ANSYS,INC DUMMY USER01 */) c c * do not return this result code in a real user routine user01 = -654321 c * instead return a z

21、ero * c user01 = 0 c 为 c c * userS CODE IS INSERTED HERE * write (iott,2000) 2000 format (/ wby* CALL TO ANSYS,INC DUMMY USER01 */) c c * do not return this result code in a real user c user01 = -654321 c * instead return a zero * user01 = 0 c 在format语句中增加的字符是为了在ANSYS运行时表明user01.F确实是自己修改过的版本 将user01

22、的值设成0,是为了使ANSYS给出正确信息,而不是警告 2.修改Makefile 修改ansys55_dir的值使其指向ANSYS主目录 ansys55_dir=C:ansys55 修改下面这一行 siappst.lib 为 $(ansys55_dir)customlibintelsiappst.lib 3.运行ANSCUST.BAT编译并连接 忽略掉如下WARNING提示信息 LINK : warning LNK4049: locally defined symbol _free imported LINK : warning LNK4049: locally defined symbol

23、_malloc imported LINK : warning LNK4049: locally defined symbol _fflush imported LINK : warning LNK4049: locally defined symbol _fread imported LINK : warning LNK4049: locally defined symbol _fwrite imported LINK : warning LNK4049: locally defined symbol _ftell imported LINK : warning LNK4049: local

24、ly defined symbol _fseek imported 当出现goto end时表明编译、连接完成,这时应该在用户工作目录下出现一个可执行程序ansys.exe,约为34MB 4.运行编译连接生成的ANSYS 在用户工作目录下 D:useransys -p ansysul 或 D:useransys55cust -custom .ansys.exe -p ansysul 如果在其它目录下运行 D:otherdirset path=c:ansys55binintel D:otherdiransys55cust -custom d:useransys.exe -p ansysul 或

25、D:otherdirset path=d:user D:otherdiransys -p ansysul 5.执行用户命令 执行用户命令可以在字符界面下,也可在图形界面下 在出现 BEGIN: 提示信息后,键入以下命令 usr1 或者输入以下命令进行到图形用户界面 /show,win32 /menu,on 在工作站上的用户可以选择 /show,x11 /show,x11c /show,3D 详细说明可以参见ANSYS命令手册中关于/show的说明 在输入框中,键入命令 usr1 6.用/UCMD命令自定义用户命令名 在ANSYS BEGIN提示信息后 /UCMD,aaa,1 aaa E. 编译

26、并连接ANSYS提供的示例程序USER03.F,使用动态数组保存有限元模型信息,如节点号、单元号、节点坐标、单元节点列表。使用UPF读写数据库子程序,读写模型中的有限元模型信息和载荷信息,并打印。 以下是一个完整的程序,可由user03.F修改得到 *deck,user03 user ANSYS,INC c 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,ndin

27、qr,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 double precision dpin(12),xyz(3), xmean, ymean, zmean, stdxyz(3), x sodx, sody,

28、sodz character*4 ch4in(12) character*8 ch8in(12) #include ansysdef.inc #include stack.inc c c Get nodal xyz locations and calculate standard deviation of c x coordinates, y coordinates, & z coordinates c c get number of currently selected nodes numnp = ndinqr (0,DB_NUMSELECTED) if (numnp .le. 0) go

29、to 999 c allocate memory for x, y, & z coordinates of nodes xcptr = HeapAllocPtr(numnp,XCoords ,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(node) if (node .gt

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

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