【真的被Deepseek惊艳到啦!】在Deepseek中测试Maxscript代码竟然完全正确!
用Deepseek写Maxscript竟然完全正确!

今天刚刚想起前几天上线的Deepseek,注册了一个帐号想试试,其实真的没报什么太大希望,毕竟写程序这东西逻辑性太强,一个字母一个标点符号不正确,程序都会报错。
下面来看一下我测试的过程,因为最近用Maxscript比较多一些,所以,就用Maxscript脚本语言来做测试:
人类:用maxscript编写一个创建立方体的脚本
Deepseek:在 3ds Max 中,你可以使用 MaxScript 来创建立方体。以下是一个简单的脚本示例,用于在场景中创建立方体:
-- 创建立方体
cube = Box length:50 width:50 height:50
-- 设置立方体的位置
cube.pos = [0, 0, 0]
-- 设置立方体的名称
cube.name = "MyCube"
-- 打印创建信息
print ("立方体已创建,名称为: " + cube.name)
脚本说明:
-
Box length:50 width:50 height:50: 创建一个长、宽、高均为 50 个单位的立方体。 -
cube.pos = [0, 0, 0]: 将立方体的位置设置为世界坐标的原点(0, 0, 0)。 -
cube.name = "MyCube": 将立方体的名称设置为 "MyCube"。 -
print: 打印一条信息到 MaxScript 侦听器,确认立方体已创建。
使用方法:
-
打开 3ds Max。
-
按
F11打开 MaxScript 侦听器。 -
将上述脚本复制并粘贴到侦听器中。
-
按
Enter运行脚本。
运行脚本后,场景中将会出现一个名为 "MyCube" 的立方体,位置在原点 (0, 0, 0)。
你可以根据需要调整立方体的尺寸、位置和名称。
人类做法:将其放入3dmax执行结果:

人类想法:完全没有报错,有点出乎意料。这个有点儿简单再复杂一点儿试试。
人类:立方体上面再生成小一点的立方体,这个小立方体上面再生成更小一点的立方体,每次生成立方体的大小随机
Deepseek:以下是一个 MaxScript 脚本,它会在场景中创建一个立方体,然后在其顶部生成一个更小的立方体,重复这个过程,每次生成的立方体大小随机减小:
-- 创建立方体的函数
fn createStackedCubes baseSize iterations = (
local currentCube = Box length:baseSize width:baseSize height:baseSize
currentCube.pos = [0, 0, 0] -- 设置初始位置
currentCube.name = "BaseCube"
for i = 1 to iterations do (
-- 随机减小立方体的大小
local newSize = random (baseSize * 0.2) (baseSize * 0.8)
-- 创建新的立方体
local newCube = Box length:newSize width:newSize height:newSize
-- 设置新立方体的位置在当前立方体的顶部
newCube.pos = currentCube.pos + [0, 0, currentCube.height / 2 + newCube.height / 2]
-- 更新当前立方体为新创建的立方体
currentCube = newCube
-- 设置新立方体的名称
currentCube.name = "StackedCube_" + (i as string)
)
)
-- 调用函数,初始大小为 50,迭代 5 次
createStackedCubes 50 5
脚本说明:
-
createStackedCubes函数:-
baseSize: 初始立方体的大小。 -
iterations: 迭代次数,即生成多少个小立方体。
-
-
随机大小:
-
每次生成的新立方体大小是随机的,范围在
baseSize * 0.2到baseSize * 0.8之间。
-
-
位置计算:
-
新立方体的位置在当前立方体的顶部,通过
currentCube.pos + [0, 0, currentCube.height / 2 + newCube.height / 2]计算。
-
-
循环:
-
使用
for循环重复生成立方体,直到达到指定的迭代次数。
-
使用方法:
-
打开 3ds Max。
-
按
F11打开 MaxScript 侦听器。 -
将上述脚本复制并粘贴到侦听器中。
-
按
Enter运行脚本。
运行脚本后,你会看到一个初始大小为 50 的立方体,上面堆叠了 5 个逐渐变小的立方体,每个立方体的大小随机。你可以通过修改 createStackedCubes 50 5 中的参数来调整初始大小和迭代次数。
例如:
-
createStackedCubes 100 10:初始大小为 100,堆叠 10 个立方体。 -
createStackedCubes 30 3:初始大小为 30,堆叠 3 个立方体。
人类做法:将其放入3dmax执行结果:

人类想法:依然没有报错,有些期待了。进一步测试。
人类:不错!但是要做一点修改,后面迭代生成的立方体应该一个比一个小。
Deepseek:好的!我们可以调整脚本,确保每次生成的立方体都比前一个小。以下是修改后的脚本:
-- 创建立方体的函数
fn createStackedCubes baseSize iterations = (
local currentCube = Box length:baseSize width:baseSize height:baseSize
currentCube.pos = [0, 0, 0] -- 设置初始位置
currentCube.name = "BaseCube"
for i = 1 to iterations do (
-- 确保新立方体比当前立方体小
local newSize = random (baseSize * 0.2) (currentCube.length * 0.8)
-- 创建新的立方体
local newCube = Box length:newSize width:newSize height:newSize
-- 设置新立方体的位置在当前立方体的顶部
newCube.pos = currentCube.pos + [0, 0, currentCube.height / 2 + newCube.height / 2]
-- 更新当前立方体为新创建的立方体
currentCube = newCube
-- 设置新立方体的名称
currentCube.name = "StackedCube_" + (i as string)
)
)
-- 调用函数,初始大小为 50,迭代 5 次
createStackedCubes 50 5
修改点:
-
确保新立方体更小:
-
新立方体的大小范围是
random (baseSize * 0.2) (currentCube.length * 0.8)。 -
这里
currentCube.length * 0.8确保新立方体的大小不会超过当前立方体的 80%,从而保证每次生成的立方体都比前一个小。
-
-
逻辑调整:
-
每次生成的新立方体大小基于当前立方体的大小,而不是固定的
baseSize。
-
示例输出:
运行脚本后,你会看到一个初始大小为 50 的立方体,上面堆叠了 5 个逐渐变小的立方体,每个立方体都比前一个小。
参数调整:
-
你可以通过修改
createStackedCubes 50 5中的参数来控制初始大小和迭代次数:-
createStackedCubes 100 10:初始大小为 100,堆叠 10 个立方体。 -
createStackedCubes 30 3:初始大小为 30,堆叠 3 个立方体。
-
希望这次的修改能满足你的需求!如果还有其他问题,欢迎随时提出!
人类做法:将其放入3dmax执行结果:

人类:非常棒!
以下是聊天过程截图:

今天就暂时到这里,相当满意,下次更深入测试!
火山引擎开发者社区是火山引擎打造的AI技术生态平台,聚焦Agent与大模型开发,提供豆包系列模型(图像/视频/视觉)、智能分析与会话工具,并配套评测集、动手实验室及行业案例库。社区通过技术沙龙、挑战赛等活动促进开发者成长,新用户可领50万Tokens权益,助力构建智能应用。
更多推荐
所有评论(0)