声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 6076|回复: 2

[综合讨论] [原创]用delphi以批处理(batch)方式调用ansys后台运行,并读取命令流文件计算

[复制链接]
发表于 2008-5-29 13:35 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?我要加入

x
我们的想法是用delphi做的窗口界面,以批处理(batch)方式调用ansys在后台读取命令流进行计算。本文的第一部分实现后客户能够看到调用ansysGUI界面,第二部分才能真正实现ansys的后台运行。

Part1

目标:把ansys程序调起到GUI模式下,读入命令流。
方法:使用WinExec()函数,并修改ansys修改初始化文件。
步骤:
第一步
delphi中建立一个button1后在命令窗口中添加如下语句
begin
WinExec('C:\Program Files\Ansys Inc\v90\ANSYS\bin\intel\ANSYS90.exe',0);
end;
单引号是必须的,单引号内是调用的程序。如果单引号内文件完整路径名不用双引号再扩起来,那么在路径与单引号之间不要有空格,否则调不起来;如果单引号内文件完整路径名用双引号再扩起来,单引号和双引号之间有无空个无所谓。

第二步
将命令流文件command0.mac放在这个路径下C:\Program Files\Ansys Inc\v90\ANSYS\apdl,并在同一文件夹下找到start90.ans,在最下面添加宏文件所在路径command0.mac,以初始化的方式调用宏文件。

第三步
编译运行delphi程序,会调起ansys,能看到其画图过程。


Part2

目标:有的时候需要用delphi做用户界面,以批处理(batch)方式调用ansys在后台做计算。
方法:使用winexec(pchar(...),sw_hide)函数
批处理方式涉及到参数问题,工作路径、输入文件名是必不可少的参数,以上述方式不能解决这一问题。这时要在winexec里加putchar,在delphi中使用winexec(pchar(...),sw_hide)执行一个DOS命令,pchar内即为dos命令流,SW_SHOW表示要显示窗体,SW_HIDE表示不显示窗体。命令如下:
Winexec(pchar('C:\Program Files\Ansys Inc\v90\ANSYS\bin\intel\ANSYS90.exe -b
-dir "D:\shi xiao dong" -j sxd -s read -l en-us -i "C:\Program Files\Ansys Inc\v90\ANSYS\apdl\command0.bat" -o file.out'),sw_show);

ANSYS90.exe后面每一个参数的意义看一看ansys中这一节“Chapter 3. Running the ANSYS Program”。
如果是要自己填单引号内的参数要注意一下几点:
(1)-i-o两个参数不要少,否则delphi出错:“invalid I/O redirection, specify I inputfile o outputfile.”;
(2)HELP中没有说调用的命令流文件路径的问题。-i-dir后面这个被调用的命令流文件名要有完整的路径,要双引号;
(3)建议在给客户安装好ansys后,将调用的命令流文件放在capdl文件夹下,这样编delphi时就已经把命令流文件路径编进去。

如果不想自己填写单引号里的内容,我提供一种获得它简便方法:


第一步

simulation environment选择batch模式。

在simulation environment选择batch模式.JPG


第二步

file management中选择好工作路径、工作名、读取的命令流文件地址



在file management中选择好工作路径、工作名、读取的命令流文件地址.JPG

第三步
在上方的菜单栏里选中tools->display command line
在上方的菜单栏里选中tools-display command line.JPG

第四步
选中显示的命令,将其粘贴进单引号内
选中显示的命令,将其粘贴到单引号内.JPG

[ 本帖最后由 Denzel 于 2008-5-29 13:38 编辑 ]

评分

1

查看全部评分

回复
分享到:

使用道具 举报

发表于 2011-10-12 20:07 | 显示全部楼层
您好,有一个问题想向您请教一下。(本人刚接触ANSYS,希望您能给予帮助)
在 Part2 中的第 8 行有这么一句内容“ANSYS90.exe后面每一个参数的意义看一看ansys中这一节“Chapter 3. Running the ANSYS Program”。”,请问 “Chapter 3. Running the ANSYS Program” 是哪里的内容啊?
您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

QQ|小黑屋|Archiver|手机版|联系我们|声振论坛

GMT+8, 2024-6-4 00:58 , Processed in 0.117045 second(s), 27 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表