文章 / AI编程与办公自动化
第 27 套 Skill:3ds Max 双引擎,装完即见菜单——像商业插件一样好用的工具,说句话就给你做出来
原创 李伟坚 Excel催化剂(附件请在原始资料库或公众号中获取)) 2026年9月17日 还记得上篇文章结尾我提前透的底吗?"3ds Max、Blender、SolidWorks 都在排了。"今天,第一个兑现的来了—— 第 27 套 Skill:3ds Max 脚本开发,正式发布。 而且这一套,跟
原创 李伟坚 Excel催化剂(附件请在原始资料库或公众号中获取))
2026年9月17日
还记得上篇文章结尾我提前透的底吗?“3ds Max、Blender、SolidWorks 都在排了。“今天,第一个兑现的来了——第 27 套 Skill:3ds Max 脚本开发,正式发布。 而且这一套,跟以往不太一样:它是双引擎驱动,并且我下决心做到了**“装完即见菜单”**——像商业插件一样好用。
一、上篇文章预告的,第一个落地了
熟悉我的老朋友都知道,昨天我刚发布第 26 套 Skill——SketchUp,一脚踏进了三维建模的世界。
在文章结尾我跟大家透了底:3ds Max、Blender、SolidWorks,这些三维设计里响当当的名字,后续都会陆续安排上。
结果今天,第一个就落地了——3ds Max。
为什么是它?因为如果说出“三维设计最出圈的那几个软件”,3ds Max 一定排在最前面——影视、游戏、室内设计、建筑可视化、产品动画……几乎所有你见过的炫酷三维画面,背后都有它的身影。
而且这一套 Skill,我给自己立了一个更高的标准。它不再只是“能交出脚本”,而是要交出“零基础用户装完就会用、体验接近商业插件”的工具。
二、为什么是 3ds Max?它的用户,恰恰最需要“说句话就有工具”
先说 3ds Max 是什么:一款在三维建模、动画、渲染领域叱咤风云几十年的老牌软件。用它做出来的东西,你可能天天都在看——游戏里的场景、电影里的特效、楼盘宣传片的动画、装修效果图,很多都出自它之手。
但 3ds Max 有一个绕不开的现实:它的“重复劳动”特别多。
- 模型导入进来,命名乱成一团,
Box001 Fuel tank (3)这种名字满天飞,要一个个手动改成规范格式; - 一个文件夹里 30 个
.max场景,每个都得打开、导出成 FBX,才能交给下一个环节; - 材质贴图路径断了、场景里有几百个没用上的材质、灯光要重新搭三点布光……
这些活,不是做不来,是又慢又无聊,还极容易出错。
过去想让这些活自动化,你得会 3ds Max 的脚本——可它的用户里,编剧、导演、室内设计师、游戏美术、建筑动画师,绝大多数都不是程序员。
而这,正是我这套 Skill 最想解决的事。 而且我要解决到位——不能是“给你一堆代码你自己折腾”,而是“装完就在菜单里,点一下就能用”。
三、最大的亮点:双引擎驱动,MAXScript 和 Python 都能写
这是我做这么多套 Skill 以来,很少见的一种配置。这套 3ds Max Skill,内置了两套引擎,AI 会根据你的需求自动选。
引擎一:MAXScript(3ds Max 原生语言)
MAXScript 是 3ds Max 自带的脚本语言,零依赖、无需编译——AI 直接把脚本写成文本,是贴合 3ds Max 本体的语言,写场景操作、模型批处理,又轻又直接。
引擎二:Python(pymxs)
你可能想不到——3ds Max 从 2022 版本起,官方内置了 Python 3 环境。 这意味着,你可以用地球上最强大的脚本语言之一,去操控 3ds Max 的场景。
Python 带来的,是几乎无限的扩展空间:复杂的数据处理、算法逻辑、写报告、对接其他工具生态……只要会用 Python(或者让 AI 帮你写),3ds Max 的能力边界就被彻底打开了。
两个引擎加起来,是什么概念?
需要贴合本体、轻巧直接?走 MAXScript。需要强大灵活、复杂逻辑、数据驱动?走 Python。AI 拿到你的需求,自动选最合适的那条路。
这就是我说它”双引擎驱动、无限扩展“的意思——你不必在两种语言里纠结,AI 替你选,你只管把需求说清楚。
四、这次迭代,我死磕的一件事:让零基础用户“装完即见菜单”
说句实话,这套 Skill 我第一版其实做得不够好。
第一版做完后我发现一个问题:功能是有了,但零基础用户根本找不到入口。 菜单挂不上去,只能靠输入命令来操作——可让一个室内设计师去记命令?要求太高了,也完全不符合我做这套 Skill 的初衷。
所以这次迭代,我下决心死磕一件事:让交付出去的工具,装完就在菜单里,点一下就能用,体验向商业插件看齐。
这背后是真刀真枪的技术攻坚,我简单讲两句:
3ds Max 的脚本分发格式 .mzp,有个天生缺陷——它没法声明菜单。菜单其实属于用户自己电脑里一份叫 MaxStartUI.mnux 的个人配置文件。换句话说,想真正把菜单“挂”到用户界面里,得跟这份格式冷门的 mnux 文件打交道。
我干了几件事:
- 逆向破译了 MNUX 的格式——包括那个最容易翻车的“主菜单栏”机制:菜单定义了还不够,还得在主菜单栏里补一条引用,否则 3ds Max 会把它当成“未使用定义”,定义了也不显示。这是我反复实测才定位到的关键。
- 写了个自动注入器:用户双击一个安装器,它就会自动把脚本功能合并进用户的
MaxStartUI.mnux,先备份、幂等防重复,同名菜单不冲突。 - 双保险兜底:除了安装时注入菜单,启动脚本里还留了 menuMan 兜底注册。就算菜单万一没挂上,打开软件也会自动补上。
结果是:用户双击安装器 → 重启 3ds Max → 菜单里出现“批量工具”→ 点一下就能用。 全程不用记一条命令、不用拖任何设置。
我把全套 12 个蓝图,都补齐了“图形界面 + 菜单项”——这是这次迭代最让我满意的地方。
五、部署方便,交付容易
配套这次“装完即见菜单”,交付形态我也彻底理顺了:
- 双击安装器:一个
.bat安装器,双击就能装,不需要管理员权限,装在用户自己的启动目录里。装完即见菜单,和商业插件一个体验。 - 一键卸载:配套卸载器,只删除本工具自己的副本,不会误伤你其他工具。
- 随启动生效:装好之后,功能随 3ds Max 启动就出现在菜单里。
部署零门槛,交付就能用。 这始终是我做 Skill 的铁律:交付到用户手上那一刻,就该是“能用”的状态,而不是“还得自己折腾”。
六、最难的一环:3ds Max 没有无头接口,我怎么让 AI 自证代码是对的
做这类 Skill,我从来最较劲的不是“写不写得出来”,而是”怎么证明写出来的能跑“。
3ds Max 和 SketchUp 一样,脚本只能在软件内部运行,没有无头接口,也没有 COM。过去在 3ds Max 上做脚本开发,验证基本靠人肉——改一句、进软件、点一下、再改。
但 3ds Max 给了我们一个宝贝:3dsmaxbatch.exe。
这是官方提供的批处理入口,可以让 3ds Max 在完全不打开界面的情况下,自动执行一段脚本。我把它变成了整套 Skill 的验证基石:
3dsmaxbatch.exe 启动 → 无界面自动跑断言脚本 → 抓取 [SMOKE-PASS] / [SMOKE-FAIL] 标记 → 输出结果
AI 写完代码,会在命令行里自动跑一遍真机测试,通过才敢交给你。 全程无人值守。而且每个蓝图我都跑了“纯函数级 + 场景级”两级断言,实测全部通过(本套 Skill 已在 3ds Max 2022 实机验证)。
让 AI 帮你写 3D 软件的工具,最怕“写出来是一堆跑不起来的代码”。这一环,我替你先跑通了。
七、12 个场景化蓝图,MAXScript 和 Python 各 6 个,全部带界面
口说无凭。这套 Skill 内置了 12 个场景化示例项目蓝图,全部是“能直接跑通”的完整代码,而且这次迭代后每一个都带图形界面和菜单入口。AI 照着最接近的改一改,就是你的专用工具。
MAXScript 引擎 6 个:
- 场景清理工作台——清理未用材质、批量重命名、层级扁平化、输出 CSV 报告
- 批量重命名工具——前缀后缀、正则、序号,一套解决命名混乱
- 批量导出工具——按根节点逐个导出 FBX / OBJ
- 材质修复工具——贴图路径修复、材质批量替换
- 关键帧批处理工具——关键帧批量偏移、缩放、删除
- 灯光架工具——三点布光 / 摄影棚灯光一键搭建
Python 引擎 6 个:
- 程序化资产工厂——用 Python 程序化批量生成楼房、配件等资产
- 场景审计报告——面数统计、缺失贴图检测、生成 JSON 报告
- 批渲染工具——多相机多帧批量渲染
- 修改器批处理——批量增删改修改器栈
- 资产库导入器——外部 .max/.fbx 合并导入、按清单批量放置
- UVW 与材质批处理——UVW 贴图坐标批量调整、材质替换
这就是“双引擎”的底气:MAXScript 管轻巧直接的场景操作,Python 管数据驱动、复杂逻辑、程序化生成。 你想做的事,总能找到一个能跑通的起点——而且装完就在菜单里等着你。
八、两个真实的例子,你感受一下“说句话就有工具”
例子一:批量重命名(MAXScript 引擎)
模型导入进来,命名乱成一团。你只需要对 AI 说一句:
“帮我做个工具,把模型名字统一改成 Prop_Tank_01 这种格式,加前缀加三位编号。”
AI 就会:匹配到批量重命名蓝图 → 用 MAXScript 实现前缀 + 编号逻辑 → 打出双击安装器 → 自动跑一遍测试。你双击安装,重启后菜单 工具 > 批量工具 里就有它。命名乱象,一键解决。
例子二:整个文件夹批量导出 FBX(Python 引擎)
再比如你有个文件夹装了 30 个场景,想全部导出成 FBX。对 AI 说一句:
“我文件夹里有 30 个 .max 文件,能批量全导出成 FBX 吗?我不想一个个打开导。”
AI 就会:判断是“批量场景”类任务 → 用 Python + pymxs 写一个循环,逐个加载、逐个导出 → 打包成带界面的工具交付。30 个文件,它帮你自动跑完,你去喝杯茶就行。
九、那些 Python 坑,我全部实机踩平了
做这套 Skill,我还特意把 Python 操控 3ds Max 的那些“暗坑”一条条踩平、写进了知识库:
rt命名空间:pymxs 里所有 MAXScript API 都要走rt别名,用错就是一堆报错。numMods/getMod不存在:改修改器栈,得用迭代node.modifiers的方式,不能想当然照搬 MAXScript 的写法。getPropNames的坑:它拿不到贴图槽位,修贴图要改用rt.getClassInstances(Bitmaptexture)。mergeMaxFile参数坑:合并外部文件要用quiet=True关键字,位置传参会直接抛异常。pymxs.undo吞异常:撤销包裹里出问题会被静默吞掉,得格外小心。
这些坑,全是我在真实 3ds Max 2022 里一行行试出来的。我踩完了,你就不必再踩。 AI 写任何 Python 脚本前,都会先过一遍这些反模式清单。
写在最后
写这篇推文前,我其实犹豫了很久,最后决定跟你们说几句心里话。
这套 Skill,我做出来,就是为了让零基础用户也能开发出插件功能,而且使用体验要接近商业插件,能真正交付给其他人去用。 这次迭代我死磕菜单、死磕体验,就是这个初衷。
但我必须坦白一件事:这么小众的 Skill,开发出来如果没有人使用,不仅是极大的浪费,也浪费了我的一腔激情。
我有一个很美好的愿景——希望所有办公用户群体,都能把 AI 编程这个技能真正用起来,借助我做的这些 Skill,让门槛一降再降。 就像大家会用 Office 一样,用 AI 来解放自己的双手。
但如果一个 Skill 开发出来,最终没有用户去用,这样的模式是转不动的。这也会让我很难再有动力,去为其他小众商业软件开发插件 Skill,去帮大家更低门槛地利用 AI 开发插件。
所以今天,我真诚地请大家帮个忙:
如果你身边有做 3ds Max、做三维动画、做建筑可视化、做室内设计、做游戏美术的朋友,麻烦把这篇文章转给 TA。 也许正是他们需要的东西。
我不奢求流量爆炸,只希望这套花了很多心血的 Skill,能被真正需要它的人用上。能被一个人真正用上,替 TA 省下一晚上加班,就值了。
三维世界的重复劳动,这次终于有人管了。但能不能管到你的朋友那里,需要你的那一次转发。
第 27 套 Skill。设计群体的自动化,还在继续。
想体验全套免费 Skill?欢迎加好友进入免费社群,关注公众号,后台回复「Skill」,不要理会AI自动回复,等我发联系方式,加好友进群自助获取。
公众号:Excel催化剂 | 微信:190262897 | 承接数据咨询解决方案、软件功能定制、AI编程培训服务