功能定制ANSYS工具栏的一种方法_第1页
功能定制ANSYS工具栏的一种方法_第2页
功能定制ANSYS工具栏的一种方法_第3页
功能定制ANSYS工具栏的一种方法_第4页
已阅读5页,还剩8页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、标题 : 利用 宏功能定制 ANSYS工具栏的一种方法( In C/C+) 打印本页 作者 : Rainyboy 时间 : 2010-10-14 22:24 标题 : 利用 宏 功能定制 ANSYS工具栏的一种方法( In C/C+)本帖最后由Rainyboy 于 2010-10-14 22:35 编辑不知大家有没有这样的经验, 有些时候接了某研究所的课题, 要求分析某个结构的强度或者寿命, 或者再进一步形成这种结构的设计方法。 合同中要求我们提供一个【界面程序】,在这个【界面程序】中,设计者只需要输入最原始的【几何参数】、【材料参数】、【载荷参数】,由该【界面程序】直接调用 ANSYS 进行

2、计算和后处理。整个过程中不需要直接接触APDL代码,完全是由 “点鼠标 ”和“输入数据 ”完成。这样的【界面程序】有一个好处,就是使用者不必担心直接修改 APDL源程序带来的版本混乱、功能出错等风险,而且比较方便。0)先看一个【界面程序】的例子吧(为某单位开发的某结构计算软件,合同中有保密条款,所以作了些处理):attach46766/attach其他功能不提,当用户按下【开始计算】便会弹出如下对话框:attach46767/attach用户再次按下【确定】后,就会在程序当前运行的目录下生成一个与输入 JobName 相同的文件夹,并在此文件夹中载入 ANSYS,运行后,其工具栏上会出现一些定

3、制的功能按钮,点击这些按钮,就可以执行这些定制功能了 (比如 “建模 ”“分网 ”“求解 ”和“后处理 ”),而且还可以根据需要显示对话框:attach46768/attach这种【界面程序】的核心,在于外部程序中实现对 ANSYS的调用和定制,这正是我想在这里和大家分享和探讨的问题。1)定制 ANSYS工具栏的流程 (也许不是唯一的实现方法):a) 准备好 APDL(这一步通常希望由用户通过 【界面程序】 设置参数后完成, 其实就是在指定的目录按照用户输入的参数生成文件,不是本帖的重点 ),将后缀名改为 .MAC,存放在某个工作目录下。例如有建模代码和求解代码存放在目录d:/ansyswor

4、k 下b) 找到 ./ANSYS INC/V110/ANSYS/APDL中的文件,在文件的最后加入: /PSEARCH,*ABBR,MODEL,MODEL*ABBR,SOLU,SOLUc)启动 ANSYS11,设置工作目录为d:/ansyswork,那么 ANSYS11启动完毕之后,就会在工具栏上出现 MODEL和 SOLU的按钮了,点击相应的按钮就相当于执行了对应文件中的 APDL代码。d)将所增加的内容删除,避免对其它工作产生影响。2)编程过程中的几个关键:a)获得 ANSYS的安装目录1.char *pAnsysDir;AC1. ");AC.,希望能和你交流这方面的技术啊,能留

5、个联系方式吗作者 : Rainyboy时间 : 2010-10-20 18:31回复 有梦的人的帖子咱们论坛不就是联系方式么作者 : 有梦的人时间 : 2010-10-20 18:36可是即时交流不行啊,呵呵,坛子是会来的,要做的项目和你做得差不多,多多指教作者 : Rainyboy时间 : 2010-10-20 18:44回复 有梦的人的帖子那你可以先把代码存下来用用, 如果不能直接为你的场合所用的话, 再根据你的实际情形做一些修改。在使用中有涉及 ANSYS相关的问题你可以在这个分区发帖,如果纯粹是编码实现的问题可以到算法与编程语言区探讨。作者 : 有梦的人时间 : 2010-10-20

6、18:49已经 COPY了,不过想问个 ANSYS的,进行流固耦合分析时候,怎么找不到 FSI 相关命令的工具啊,看了帮助说是被其它的代替了,能不能支个招啊作者 : 16443时间 : 2010-10-20 19:54回复 Rainyboy 的帖子如果没有版权问题,可以把源程序也给分享了,好让别人参考你的程序。作者 : Rainyboy时间 : 2010-10-20 20:08回复 16443 的帖子整个界面程序是有版权的, 按合同不得向第三方转让。 但是这篇帖子所涉及的方法分享给大家没有问题,相应的源代码在文中都贴出来了。之所以不采用附件,是因为代码本身不长, 大家即时能看到的话可以提提意见

7、。 谢谢你对这部分工作的肯定作者 : bingo_1124时间 : 2010-11-6 21:38这个真的很厉害啊作者 : linderman时间 : 2010-11-9 21:49啧啧 作者 : 有梦的人时间 : 2010-11-15 18:01Rainyboy发表于2010-10-14 22:24不知大家有没有这样的经验, 有些时候接了某研究所的课题, 要求分析某个结构的强度或者寿命,或者再进一 .感觉你的这个程序是对 ANSYS的显式调用,为什么 不做成隐式的啊,那样不是更好吗不用直接在 ANSYS窗口界面,只需要对话框输入就行了啊,望赐教啊作者 : Rainyboy时间 : 2010-

8、11-15 19:23回复 11 # 有梦的人的帖子你说得对,后台调用有后台调用的好处, 这种情况下用户完全可以不知道他在使用 ANSYS进行计算(当然他得装 ANSYS,有点纠结哈 ),界面程序需要为用户提供非常全面的后处理, 满足所有的需求; 我贴出来的这个程序运行之后计算结果最终还是在 ANSYS里呈现,要说比后台调用好的话就在于用户可以爱怎么做后处理就怎么做后处理, 在使用定制化的按钮功能的同时也不妨碍使用 ANSYS 本身提供的功能, 当然,最大的好处就是界面程序不需要提供特别多的后处理功能了。实际上哪个更好我想得看使用场合吧,用户需要什么,咱们就做什么作者 : 有梦的人时间 : 2

9、010-11-15 20:07嗯,是这样的,不过你的程序有的地方我还是有些看不懂,呵呵 .,但很想请教你作者 : Rainyboy时间 : 2010-11-15 20:50回复 13 # 有梦的人的帖子恩,是流程的问题还是语言的问题作者 : 有梦的人时间 : 2010-11-15 21:11以前看一些介绍二次开发的, 都是用 CREATEPROCESS,或者是 WinExec 等函数实现,你的这个,以命令行, 也就是说可以显式的调用吗整个函数都要自己写的吗作者 : Rainyboy时间 : 2010-11-15 21:17回复 15 # 有梦的人的帖子我用的是 system()函数运行的命令行

10、而已, WinExec也可以啊,主要是调用之前要准备一些相关的工作, 比如得到当前路径、 写文件什么的; 调用之后吧又要把改回去。你从 LoadANSYSNamed()函数开始看,就能明白了。作者 : 有梦的人时间 : 2010-11-15 21:33LoadANSYSNamed()函数中的 Rainyboy 也就是你的计算机名吗作者 : Rainyboy时间 : 2010-11-15 21:41回复 17 # 有梦的人的帖子不是计算机名字, 是随便给的一个名字, 这个参数的作用是在当前目录下生成一个同名的文件夹,将这个文件夹作为 ANSYS的工作目录而已。作者 : 有梦的人时间 : 2010

11、-11-15 21:55Rainyboy发表于2010-11-15 21:17回复 15 # 有梦的人的帖子我用的是 system()函数运行的命令行而已, WinExec也可以啊,主要是调用之前要准 .谢谢你啊,主任,有不懂的地方,还会骚扰你的啊.作者 : 有梦的人时间 : 2010-11-16 20:10Rainyboy发表于2010-11-15 21:17回复 15 # 有梦的人的帖子我用的是 system()函数运行的命令行而已, WinExec也可以啊,主要是调用之前要准 .为什么当时想到用SYSTEM命令行调用,而不用其它的一些函数来调用啊作者 : Rainyboy时间 : 201

12、0-11-16 21:40回复 20 # 有梦的人的帖子给出的代码没有包含窗体,要做窗体的话在某个按钮的响应函数里调用LoadANSYSNamed就可以了作者 : 有梦的人时间 : 2010-11-24 15:21Rainyboy发表于2010-10-14 22:24不知大家有没有这样的经验, 有些时候接了某研究所的课题, 要求分析某个结构的强度或者寿命,或者再进一 .你入口函数里面的 string AdditionCmd(ANSYSName)函数怎么定义的啊, 怎么没有看到作者 : Rainyboy时间 : 2010-11-24 16:00回复 22 # 有梦的人的帖子string Addi

13、tionCmd(ANSYSName)这句话是实例化一个名字叫 AdditionCmd 的 string 对象,相当于调用的是 string:string(const char *)。说白了,不是 定义函数 ,是创建对象 。作者 : Rainyboy时间 : 2010-11-24 16:03回复 22 # 有梦的人的帖子system()调用中的参数意义在ANSYS帮助文档里面有:Operations Guide | Chapter 3. Running the ANSYS Program | . Starting an ANSYS Session from the Command Level-g

14、 是显示图形界面-j 是指定 jobname还有其他的,你查查看看吧作者 : 有梦的人时间 : 2010-11-24 16:40本帖最后由有梦的人于 2010-11-24 16:41 编辑Rainyboy发表于2010-11-24 16:00回复 22 # 有梦的人的帖子string AdditionCmd(ANSYSName)弱弱地问一下, string 不是一个数据类型吗,怎么能定义成一个类啊作者 : huxiaoqi时间 : 2010-12-6 17:37教研室主任太强大了,向你学习!作者 : 有梦的人时间 : 2010-12-7 10:20研究一下觉得文件代码里面56、57 两行代码可

15、以不要,不知道LZ怎么看的啊作者 : Rainyboy时间 : 2010-12-7 12:40回复 27 # 有梦的人的帖子呵呵, /PSEARCH命令指定宏的搜索范围,这里设置的是当前目录,当然 ANSYS 工作时也会搜索当前目录,所以可以不要。作者 : sd05041212时间 : 2011-3-9 16:53回复 1 # Rainyboy 的帖子学习作者 : chx_pj时间 : 2011-3-29 10:53你好,初来咋到,多多关照。我用 宏 功能定制 ANSYS工具栏时,点击任何一个新建按钮都提示“FRAME-MODEL is not a recognized begin comma

16、nd, abbreviation, or command will beignored ”书上,说建立宏文件后直接点击按钮就可以了, 不知道为什么不行, 可以帮忙解决一下吗,多谢多谢作者 : Rainyboy时间 : 2011-3-29 10:58回复 30 # chx_pj 的帖子你好,你是如何修改文件的呢 “FRAME-MODEL” 这样的字样是出现在你代码的什么位置作者 : chx_pj时间 : 2011-3-29 11:00/psearch,d:FrameAnalysis*abbr,model,Frame_model*abbr,pres,Frame_pres*abbr,USUM,Fra

17、me_PLOT_USUM*abbr,SEQV,Frame_PLOT_SEQV*ABBR,N,Frame_Axis_Force*abbr,Mx,Frame_Mx*abbr,My,Frame_My*abbr,Mz,Frame_Mz*abbr,AVI_SEQV,Frame_AVI_SEQV作者 : chx_pj时间 : 2011-3-29 11:02非常感谢师兄 OR师姐的帮忙,呵呵这个问题弄了好几天了,一直没有解决作者 : chx_pj时间 : 2011-3-29 11:04我是在文件的末尾添加的以上命令作者 : Rainyboy时间 : 2011-3-29 15:41回复 34 # chx_pj

18、 的帖子目前的这些操作应该都是对的, 你的 d:FrameAnalysis 都有这些 .MAC 文件吗,贴一个的开头几行我看看作者 : chx_pj时间 : 2011-3-29 17:20!第一步初始化 ANSYS环境finish/clear/filname,Demo_frame/view,1, ! 调整模型显示方位和角度/ang,1,66!第二步定义门字架的高度与宽度multipro,'start',2*cset,1,3,Height,'Height of Frame:',10*cset,4,6,Width,'Width of Frame:',

19、8multipro,'end'!第三步选择材料*ASK,N_mat,the Material Type of Frame(1/2),1!第四步选择门子架的截面形状*ASK,N_section,the Section Type of Frame(1/2),1!第五步根据参数创建有限元模型*dim,Lxyz,3,3*if,N_section,EQ,1,thenLxyz(1,1)=1,0,-1Lxyz(1,2)=0,0,0Lxyz(1,3)=0,1,0*elseLxyz(1,1)=0,0,0Lxyz(1,2)=1,1,-1Lxyz(1,3)=0,0,0*endif作者 : chx_p

20、j时间 : 2011-3-29 17:25FrameAnalysis文件夹中所有的宏文件都有,上面是建模宏文件的一部分作者 : Rainyboy时间 : 2011-3-29 18:03回复 37 # chx_pj 的帖子我感觉是你的 FrameAnalysis目录下那些文件名存错了吧按你的写法,应该存如下文件名:作者 : chx_pj时间 : 2011-3-29 22:00本帖最后由chx_pj 于 2011-3-29 22:02 编辑论坛开着忘刷新了,刚看到回复刚刚找到一部分解决办法了,在 FrameAnalysis文件中存的宏文件还有一个 txt 的后缀名,但被隐藏了,调了文件查看才发现。

21、在每个宏文件最开始的位置加入/PMACRO命令建模按钮可以调用宏文件了。多谢 rainboy 的帮助作者 : Rainyboy时间 : 2011-3-29 22:03回复 39 # chx_pj 的帖子客气,但是我试你的代码时, 没加 /PMACRO,也能通过 没有出现相应的错误奇怪作者 : chx_pj时间 : 2011-3-29 22:07那太奇怪了,为什么我的就不行,直接系统就是出错提示 “the log file will not reproduce the ansys session since the macro in use contains GUI commands which

22、 are not recorded on the log file. To remedy this, add /PMACRO to the beginning of the macro ”作者 : chx_pj时间 : 2011-3-29 22:09我用的 ANSYS是盗版的,是这个原因吗作者 : Rainyboy时间 : 2011-3-29 22:24回复 41 # chx_pj 的帖子the log file will not repr上面这个错误提示如果多复制几行你的代码的话 (包含 UGI 之后)我也当然会出现了,我是说加不加 /PMACRO不至于出现下面这个错误:FRAME-MODEL is not a recognized begin command, abbreviation, or command will be ignored最开始你不是说会出现这个错误么 后来怎

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论