Как взаимодействовать с открытым приложением Rhino3D с помощью скрипта Python - PullRequest
2 голосов
/ 19 марта 2019

В настоящее время я открываю Rhino и запускаю командные строки Rhino, используя subprocess.call() во внешнем скрипте Python.

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, если это так?

Я не ищу каналмежду носорогом и питоном.

Спасибо!

1 Ответ

1 голос
/ 20 марта 2019

Чтобы проверить, открыт ли Rhino (Примечание: это только частичный ответ на мой вопрос):

Проверка программной работы программы

import psutil

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

Другой способ: использовать вычислительные функции Rhino непосредственно из Python (не нужно открывать Rhino) с модулями CPython3.x rhino3dm и compute_rhino3d.

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

...