katherien 发表于 2006-6-30 16:02

求助:如何用vc来封装ansys

请教大家,有用vc来封装ansys的方法和资料吗?拜托大家帮帮忙啊.急求.

AaronSpark 发表于 2006-7-2 02:04

回复:(katherien)求助:如何用vc来封装ansys

本帖最后由 wdhd 于 2016-3-2 14:32 编辑

  不知道你说得是否是下面的意思

  首先定义变量:

  PROCESS_INFORMATION pi; //记录进程初始状态

  DWORD dwExitCode; //退出代码

  CString m_strInputFile; //命令流输入文件名

  CString m_strOutFile; //结果输出文件名

  之后是调用和终止ANSYS的代码:

  void CZTDlg::OnOK()

  {

  // TOD Add extra validation here

  CDialog::OnOK();

  m_strInputFile = "E:\\parameterAnalysis\\GantryCrane\\zt.mac";

  m_strOutFile = "E:\\parameterAnalysis\\GantryCrane\\zt.out";

  //存储ANSYS路径的变量

  CString sCommandLine;

  char cCommandLine;

  //初始化变量si

  //设置变量si的字节大小

  STARTUPINFO si = {sizeof(si)};

  //设置ANSYS批处理程序以窗口方式运行

  si.dwFlags=STARTF_USESHOWWINDOW;

  //设置ANSYS批处理程序以最大化方式运行

  si.wShowWindow=SW_SHOWMAXIMIZED;

  //获得ANSYS的路径及批处理时所带的参数

  sCommandLine ="d:\\Program Files\\Ansys Inc\\v80\\ANSYS\\bin\\intel\\ ansys80.exe -b -i "+m_strInputFile+"-o "+m_strOutFile;

  ::strcpy(cCommandLine, sCommandLine);

  //创建"ANSYS"子进程

  BOOL ret = CreateProcess(NULL, cCommandLine, NULL, NULL, FALSE, 0, NULL, NULL, &si, &pi);

  if (ret) {

  //释放程序控制权

  return; }

  else //创建子进程出错

  {

  AfxMessageBox( "CreateProcess错误:"+GetLastError() );

  return;

  }

  }

  void CZTDlg::TerminateAnsys()

  {

  //获取子进程的退出码

  if(GetExitCodeProcess(pi.hProcess,&dwExitCode))

  {

  //如果子进程还未结束

  if (dwExitCode==STILL_ACTIVE)

  {

  //终结该进程

  if (TerminateProcess(pi.hProcess,dwExitCode)) // 关闭子进程句柄

  CloseHandle(pi.hProcess);

  }

  }

  }

AaronSpark 发表于 2006-7-2 02:05

另外你还可以参考下面的帖子

http://forum.vibunion.com/forum/viewthread.php?tid=2510
http://forum.vibunion.com/forum/viewthread.php?tid=2563
http://forum.vibunion.com/forum/viewthread.php?tid=9349
http://forum.vibunion.com/forum/viewthread.php?tid=6696

[ 本帖最后由 VibInfo 于 2006-8-3 06:28 编辑 ]

katherien 发表于 2006-7-4 16:49

:)太感谢了:'(

liuxurong 发表于 2006-8-14 17:25

我怎么还是进不去啊

mark98306 发表于 2006-8-14 21:52

学习了
页: [1]
查看完整版本: 求助:如何用vc来封装ansys