今天刚刚想起前几天上线的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)

脚本说明:

  1. Box length:50 width:50 height:50: 创建一个长、宽、高均为 50 个单位的立方体。

  2. cube.pos = [0, 0, 0]: 将立方体的位置设置为世界坐标的原点 (0, 0, 0)

  3. cube.name = "MyCube": 将立方体的名称设置为 "MyCube"。

  4. print: 打印一条信息到 MaxScript 侦听器,确认立方体已创建。

使用方法:

  1. 打开 3ds Max。

  2. 按 F11 打开 MaxScript 侦听器。

  3. 将上述脚本复制并粘贴到侦听器中。

  4. 按 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

脚本说明:

  1. createStackedCubes 函数:

    • baseSize: 初始立方体的大小。

    • iterations: 迭代次数,即生成多少个小立方体。

  2. 随机大小:

    • 每次生成的新立方体大小是随机的,范围在 baseSize * 0.2 到 baseSize * 0.8 之间。

  3. 位置计算:

    • 新立方体的位置在当前立方体的顶部,通过 currentCube.pos + [0, 0, currentCube.height / 2 + newCube.height / 2] 计算。

  4. 循环:

    • 使用 for 循环重复生成立方体,直到达到指定的迭代次数。

使用方法:

  1. 打开 3ds Max。

  2. 按 F11 打开 MaxScript 侦听器。

  3. 将上述脚本复制并粘贴到侦听器中。

  4. 按 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

修改点:

  1. 确保新立方体更小:

    • 新立方体的大小范围是 random (baseSize * 0.2) (currentCube.length * 0.8)

    • 这里 currentCube.length * 0.8 确保新立方体的大小不会超过当前立方体的 80%,从而保证每次生成的立方体都比前一个小。

  2. 逻辑调整:

    • 每次生成的新立方体大小基于当前立方体的大小,而不是固定的 baseSize

示例输出:

运行脚本后,你会看到一个初始大小为 50 的立方体,上面堆叠了 5 个逐渐变小的立方体,每个立方体都比前一个小。

参数调整:

  • 你可以通过修改 createStackedCubes 50 5 中的参数来控制初始大小和迭代次数:

    • createStackedCubes 100 10:初始大小为 100,堆叠 10 个立方体。

    • createStackedCubes 30 3:初始大小为 30,堆叠 3 个立方体。

希望这次的修改能满足你的需求!如果还有其他问题,欢迎随时提出!

人类做法:将其放入3dmax执行结果:

人类:非常棒!

以下是聊天过程截图:

今天就暂时到这里,相当满意,下次更深入测试!

Logo

火山引擎开发者社区是火山引擎打造的AI技术生态平台,聚焦Agent与大模型开发,提供豆包系列模型(图像/视频/视觉)、智能分析与会话工具,并配套评测集、动手实验室及行业案例库。社区通过技术沙龙、挑战赛等活动促进开发者成长,新用户可领50万Tokens权益,助力构建智能应用。

更多推荐