У меня есть приложение C#, которое связывается с Autodesk Maya с использованием TCP-соединения. Майя действует как сервер, и мое приложение действует как хост.Отправка данных от Autodesk Maya во внешнее приложение с использованием commandPort (скрипты python)
Сценарий питон, который выполняется в майя -
import socket
import maya.cmds as cmds
flag = None
cmds.commandPort(name = "localhost:7777", stp = "python")
def start():
global flag
flag = True
def stop():
global flag
flag = False
def close():
cmds.commandPort(name = "localhost:7777", close = True)
windowZ = cmds.window(title="Object Navigate", w= 350)
cmds.columnLayout(adjustableColumn = True)
startbtn= cmds.button(label = "Start", c = "start()")
stopbtn= cmds.button(label = "Stop", c = "stop()")
closebtn= cmds.button(label = "close", c = "close()")
cmds.showWindow(windowZ)
Я написал # приложение TCPClient C (который работает прекрасно). Данные, отправляемые приложением, выглядят следующим образом.
Connection.sendData(String.Format("if flag:\n" + "\tcmds.dolly(10,20,30)"));
Проблема с этим утверждением - это переменная флага, которая была объявлена в скрипте python, здесь не распознается. Когда я просто говорю cmds.dolly (10,20,30), эта команда выполняется отлично.
Теперь, мой вопрос заключается в том, как сделать переменную flag видимой для моего приложения C# или есть способ отправить значение флага из Maya в приложение C# через commandPort?
Любые идеи были бы оценены!