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

Posted

技术标签:

【中文标题】如何将代码发送到 3ds Max 脚本侦听器【英文标题】:How to send code to the 3ds Max script listener 【发布时间】:2021-01-06 04:03:23 【问题描述】:

我想将代码发送到 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 的代码以由其脚本侦听器运行。


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


【问题讨论】:

提供更多关于 3dsmax 工作原理的信息,以及您使用的代码可能会帮助您获得更多(或一个)答案。 @Anunay 这够了吗还是..? 嗯,可能就够了,虽然我不知道 3dsmax 是如何工作的,也不知道您的具体用例,以及您面临的具体问题是什么? 【参考方案1】:

AnswerDrew Avis 来自 3ds max 论坛:

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

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

【讨论】:

以上是关于如何将代码发送到 3ds Max 脚本侦听器的主要内容,如果未能解决你的问题,请参考以下文章

如何将彩色网格从 meshlab 导入统一!(可能到 3ds max)

如何计算 3ds Max 材质到模型的映射

如何将结果数据从广播接收器发送到活动

[3ds max不会从形状制成的多边形焊接顶点

从 node-red 发送数据到本地网页

如何使用 pymxs 获得 3ds max 中的最小 XYZ 值?