我目前正在打开Rhino并在外部python脚本中使用subprocess.call()运行Rhino命令行。

rhinoPath = "C:\\Program Files (x86)\\Rhinoceros 5\\System\\Rhino4.exe"
rhinoCommandFilePath = "Z:\\Arkangus\\2019\\RhinoCommand.txt"
scriptCall = "_-ReadCommandFile {0}".format(rhinoCommandFilePath)
callScript = '"{0}" /nosplash /runscript="{1}" /runscript="_-Exit"'.format(rhinoPath, scriptCall)
subprocess.call(callScript)


但是,这意味着每次我运行脚本时都要打开Rhino,然后再关闭它。

有没有办法检查Rhino是否已经打开,并且可以直接将RhinoCommand文件运行到Rhino中?

我不是在Rhino和Python之间寻找管道。

谢谢!

最佳答案

要检查Rhino是否已经打开(注意:这只是我的问题的部分答案):

Checking if program is running programatically

import psutil

def is_rhino_open():
    for pid in psutil.pids():
        p = psutil.Process(pid)
        if p.name() == "Rhino5.exe":
            print ("Rhino5 is running!")


另一种方法:通过CPython3.x模块rhino3dmcompute_rhino3d在Python内部直接使用Rhino的计算功能(无需打开Rhino)。

https://discourse.mcneel.com/t/run-script-from-windows-command-prompt-with-open-rhino/80736/2?u=gabriel.taquet

关于python - 如何使用Python脚本与打开的Rhino3D应用程序进行交互,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/55238627/

10-16 22:21