【发布时间】:2016-09-10 04:30:19
【问题描述】:
我已经实现了一个 C# 应用程序,它使用 TCP 连接与 Autodesk Maya 进行通信。 Maya 充当服务器,我的应用程序充当主机。
在 Maya 中执行的 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# 应用程序可见,或者有没有办法通过 commandPort 将 flag 的值从 Maya 发送到 C# 应用程序?
任何想法将不胜感激!
【问题讨论】:
标签: c# python sockets tcpclient maya