我正在使用 VisualDoc 在有限元软件 (MSC MARC) 中迭代材料属性。我遇到的问题是 VisualDoc 一次执行 FEM 模拟的多个窗口,我需要 FEM 程序一次执行一个运行。
在可视文档中,MARC 程序的调用如下:调用一个 cmd 批处理文件,该文件打开一个 python 脚本,该脚本打开 MARC 模拟。(我尝试了多种从 VisualDOC 调用 MARC 的方法,这是唯一有效的方法)
首先,我尝试将 MARC 软件设置为非批处理模式,但我找不到执行此操作的设置。
目前我正在尝试编写一个使用 subprocess.Popen 及其附带的 wait() 函数的 python 脚本,但我手动要求 Python 在第一次 MARC 运行仍在执行时再次运行,它仍然打开了第二次 MARC 模拟。有没有办法强制 Python 在打开下一次运行之前等待程序完成执行?
p = subprocess.Popen(["procedure.proc"], shell = True)
p.wait()
我想尝试使用 cmd 来获得相同的效果,但是由于 python 打开了 MARC 程序,我认为将等待编码到 python 中可能会更好。我在这个假设中是对的还是通过 cmd 强制等待会更好?
当前的cmd代码如下:
CD C:\INTERFACEMARC\loop
openmarc.py
注意: 我无法使用 for 循环,因为 python 脚本应该只打开一次 MARC 程序才能使用我的 VisualDoc 优化代码。
目前,打开 MARC 的代码如下所示,但据我了解,这不会阻止 python 脚本在 MARC 仍在运行时第二次执行(基于我的手动测试)。