如何将代码发送到3ds Max脚本侦听器

问题描述

我想将代码发送到3ds max脚本侦听器以使其运行。我以为可以通过套接字编程来完成,但是线程化python模块在3ds max中不起作用。因此,当我尝试不使用线程而以“ while true”收听收到的消息时,程序将冻结。我该怎么办?


我正在为3ds max开发一个插件。但是我希望将我开发的程序的某些代码保密。另外,我想将程序用作exe文件。但是,不可能或不容易从外部干扰3ds max。即使我们可以干涉,3ds max也会使用其自己的python库。其中之一是“ pymxs”。但是无法使用“ pip install pymxs”命令进行安装。如果要使用此库,则必须运行3ds max脚本菜单中的每个代码。我想做的是在自己的程序中指定要在3ds max中运行的代码,并将其发送给我为3ds max制作的客户端。在客户端中,我想运行exec(received code)代码。简而言之,我想发送3ds max的代码以由其脚本侦听器运行。

enter image description here


3ds Max在Python中不支持线程模块。这意味着我一次只能运行1个进程,而在套接字编程中,我必须不断地收听服务器以查看消息是否到来。我在“ while true”循环中执行此操作,但执行此操作时无法使用3ds max,因为我正在使用该1进程。这就是3ds max冻结的原因,但是我无法避免使用线程。每当需要在3ds max中时,我都需要从外部运行脚本。


解决方法

AnswerDrew Avis来自3ds max论坛:

您可以尝试本教程中的方法,该方法将Qt用于 服务器和ExecuteMAXScriptScript()运行脚本。

https://area.autodesk.com/tutorials/using-qt-in-3ds-max-utility-plug-ins/