天晴动作工具组文档 天晴动作工具组文档
首页
内网站 (opens new window)
天晴盒子
下载中心 (opens new window)
脚本文档
开源项目
  • MAXScript2020 Help (opens new window)
  • 3dsmax-2023-MAXScript Help (opens new window)
  • 3dsmax-2023-Max-Python Help (opens new window)
  • DeveloperSDK2023 Help (opens new window)
教程
更新
关于/赞助
登录/注册 (opens new window)
  • 动画重定向
  • 3ds Max 文件降版本 (opens new window)
  • FBX-Take工具 (opens new window)
  • GIF播放器
  • 表情绑定助手
  • MAXtoUnrealTools
  • MMD4Max
  • AnimFiltersMax2021
  • SpriteMerge序列帧工具 (opens new window)
  • 分类
  • 标签
  • 归档
首页
内网站 (opens new window)
天晴盒子
下载中心 (opens new window)
脚本文档
开源项目
  • MAXScript2020 Help (opens new window)
  • 3dsmax-2023-MAXScript Help (opens new window)
  • 3dsmax-2023-Max-Python Help (opens new window)
  • DeveloperSDK2023 Help (opens new window)
教程
更新
关于/赞助
登录/注册 (opens new window)
  • 动画重定向
  • 3ds Max 文件降版本 (opens new window)
  • FBX-Take工具 (opens new window)
  • GIF播放器
  • 表情绑定助手
  • MAXtoUnrealTools
  • MMD4Max
  • AnimFiltersMax2021
  • SpriteMerge序列帧工具 (opens new window)
  • 分类
  • 标签
  • 归档
  • MaxScript开发公约
  • NDToolsBox 插件客户端
    • 环境
    • 打开工程
    • 批量编译
    • ToolbarsV 用户配置
    • 相关
    • Bug 修复记录(2026-09)
      • 高优先级
      • 中优先级
    • Git 仓库
    • 开源组织
    • 开源协议
  • NDDownload 安装器源码
  • NDanim_Pack 资源包
  • Joe_Anim_Picker 动画重定向工具
  • ND_Anim_Filter 动画曲线过滤工具
  • 开源
Joe
2026-09-01
目录

NDToolsBox 插件客户端

3ds Max 插件盒子(NDToolsBox / 天晴盒子)客户端源码,从 Git_CSharp 单体仓库拆分为独立项目。

# 环境

  • Visual Studio 2017+(建议 2022)
  • .NET Framework(Max 2015–2025 工程)
  • Max 2026 工程为 SDK 风格,目标框架 net8.0-windows(需已安装 .NET 8 SDK)
  • 需安装对应版本的 Autodesk 3ds Max SDK / 程序集引用

# 打开工程

打开根目录 NDToolsBox.sln。

还原 NuGet 包后编译目标 Max 版本工程(Max 2026 首次请先 dotnet restore Max2026\Max2026.csproj)。

# 批量编译

各 Max 年版需分别输出同名 NDToolsBox.dll(依赖该年 Autodesk.Max)。可用根目录脚本按本机已安装版本一键编译:

.\build-all.ps1
.\build-all.ps1 -Configuration Release
.\build-all.ps1 -Years 2022,2023,2024,2025,2026
1
2
3
  • 默认 Debug + x64;探测 %ProgramFiles%\Autodesk\3ds Max {年}\ 与 D:\Program Files\Autodesk\3ds Max {年}\ 下是否存在 Autodesk.Max.dll。
  • 未安装的年份会 Skip,不算失败;仅编译失败才返回非 0。
  • -Force:即使未检测到 Max 也尝试编译(CI / 自定义 SDK 路径)。
  • -MsBuild:可指定 MSBuild.exe 路径。
  • -NoPause:结束后不暂停(CI);默认会 Press Enter,避免窗口一闪关闭。
  • 不编译杂糅工程 TreeViewWithViewModelDemo\NDToolsBox.csproj 及测试辅助工程。

输出复制到 dist\{年份}\assemblies\NDToolsBox.dll(若存在则一并复制 .pdb)。工程目录下的 bin\ 仍会保留中间产物。各 Max20xx 工程的 PostBuild 拷贝到 Max 安装目录已清空,避免 Max 占用 DLL 或旧路径导致 MSB3073。

重要(调试时必看): 3ds Max 加载的是安装目录里的程序集,例如:

D:\Program Files\Autodesk\3ds Max 2022\bin\assemblies\NDToolsBox.dll

VS 编到 Max2022\bin\Debug\ 或 bin\x64\Debug\ 不会自动覆盖上述路径。Max 开着时该文件会被锁定。请:

  1. 完全退出 3dsmax.exe
  2. 复制最新 DLL,例如:
Copy-Item -Force "G:\ND_openSource\NDToolsBox-3dsMax\Max2022\bin\Debug\NDToolsBox.dll" `
  "D:\Program Files\Autodesk\3ds Max 2022\bin\assemblies\NDToolsBox.dll"
1
2
  1. 再启动 Max 验证(自定义 Tab 右键应出现「新建列表组」)

编译日志:

  • 总日志:dist\logs\build-all-yyyyMMdd-HHmmss.log
  • 各年版:dist\{年份}\build.log、dist\{年份}\build.msbuild.log(含完整错误信息)

# ToolbarsV 用户配置

侧边工具栏(ToolbarsV)的用户数据写在插件安装目录,代码里对应 WebAddress.apppath:

C:\ProgramData\Autodesk\ApplicationPlugins\NDToolsBox

文件 内容
ToolBar.xml 「动画」页按钮列表(常用工具、时间段等)
ToolBarTabs.xml 用户自定义 Tab:Id、标题、ListId(该 Tab 唯一列表配置名)
{控件名}.xml 「绑定」页三列列表,对应 XAML 中 NDListBox 的 Name:MyListBox_Rig.xml、MyListBox_Rig_2.xml、MyListBox_Rig_3.xml
CustomTab_{Id}.xml 自定义 Tab 整页配置:CustomTabListsViewModle,Items 中每一项是一组 Expander+ListBox

说明:

  • 点击左侧 + 会新建 Tab,并写入 ToolBarTabs.xml;该 Tab 的列表首次保存或改动后生成对应 CustomTab_*.xml(默认一段 Expander)。
  • 任意 Tab 标题或 + 右键 →「导入 Tab XML…」:选择 CustomTabListsViewModle / NDListBoxViewModle 的 xml(例如 D:\Download\ndtools_bind.xml),按文件名注册为新 Tab 并复制到安装目录。也可把该 xml 拖到侧边工具栏上导入。
  • 任意 Tab 标题右键 →「栏宽」可按 Tab 单独切换三档:默认 最小 96;1 列宽 最小 144 / 按钮至 120;2 列 最小 168。自定义 Tab 写入 ToolBarTabs.xml 的 WidthTier;动画/绑定写入 ToolBarWidthTier.txt(anim= / rig=)。上限 280,停靠后仍可用分隔条拉宽。
  • 自定义 Tab 标题右键:「重命名」「删除」「导出 CustomTab…」「栏宽」。
  • 自定义 Tab 空白区域与按钮均可拖入脚本(.ms / .mse / .py)或 NDBox 文本;空白区追加到当前 Tab 最后一段列表。
  • 自定义 Tab 右键「重命名」只改 ToolBarTabs.xml 中的标题;「删除」会从该文件移除条目,并删除该 Tab 的列表 xml。
  • 列表内按钮改名、增删、复制粘贴、设置上下间距、刷新,都作用在整份 CustomTab_*.xml 上。
  • 旧版单列表 NDListBoxViewModle xml 加载时自动包成一段;旧版三列 ListIds 仍迁到单个 ListId。
  • 备份或迁移用户工具条时,复制上述目录中的这些 xml 即可。

外部程序若要批量创建 / 更新自定义 Tab,见仓库内 docs/external-tool-custom-tabs.md(多段 Items、合并写回与刷新生效方式)。

# 相关

  • 资源打包工具:NDToolsResourcesPack
  • 安装/下载入口:https://sundaybox.cc/ndtooldata/ (opens new window)

# Bug 修复记录(2026-09)

以下缺陷已修复(未改 ResetMaxCUI,该工具仍仅覆盖 2015–2018 且假定 ENU/CHS 路径)。

# 高优先级

问题 修复说明
Max 2021+ InstallMenus 访问 actionTable[1] 越界 按版本分别绑定:2015–2020 为 Float + SelectSet;2021+ 仅 SelectSet 在 [0]
GUP Stop() 未注销 SystemPostNew Stop() 中对称 UnRegisterNotification
选择集浮动条 DPI 坐标重复换算 WPF 统一使用 DIP;移除 Graphics.FromHwnd 错误除法,消除 GDI 泄漏
侧边工具栏 TimerangeChange 未注销 ToolbarsV 在 Unloaded 中反注册
GetRootPathTree XML 缺失时空引用 rootnode == null 时直接返回空树

# 中优先级

问题 修复说明
空命名选择集无法添加节点 AddNodeToSeleSet 仅在移除且列表为空时提前返回
XML 节点缺字段崩溃 NewXmlNodePerson / SetPath 安全取值与空判断
Path.Combine 参数为 null CfgHelpPersonXml / CfgHelpPerson 使用 ?? ""
版本号 Parse 无防护 改为 TryParse;异步拉取远程版本后再比较更新提示
搜索「下一项」逻辑错误 / 空集合越界 使用 enumerator Current 并选中;访问前检查 Count
PersonViewModel.StartupFolder / SubPath 错误递归 改为读取 _person 字段
NDBoxToolbarItem 图标路径为 null 创建 Uri 前判空
TcpClient 失败路径泄漏 using + EndConnect
Ini.endWithCRLF 空串越界 Length < 2 直接返回 false
GetSeteNames 吞异常 输出 Listener 错误信息
TreeView 取消选中 NRE as 判空后再更新
MaxScript 路径含引号 导入/导出选择集前校验路径
GetDir(20) 魔法数字 提取为命名常量 MaxSysRootDirIndex 并注释
主题色字符串尾随空格 去掉 colorTheme_light 中多余空格
打开帮助失败无反馈 help_Click 捕获异常后提示用户

涉及主要文件:GlobalUtility.cs、Database.cs、SelectSetCuiDock.cs、SelectSetToolBar.xaml.cs、ToolbarsV.xaml.cs、ScriptsUtilities.cs(含 Max2022 副本)、FamilyTreeViewModel.cs、TextSearchDemoControl.xaml.cs、PersonViewModel.cs、WebAddress.cs、Ini.cs、NDBoxToolbarItem.cs、CfgHelpPersonXml.cs 等。

# Git 仓库

  • GitHub:https://github.com/4698to/NDToolsBox (opens new window)
  • Gitee:https://gitee.com/to4698_admin/NDToolsBox (opens new window)

# 开源组织

本项目由以下组织开源:

  • 网龙网络公司
  • 福建天晴数码有限公司

# 开源协议

本项目采用 Apache License 2.0 (opens new window) 开源协议。

你可以自由使用、修改和分发本软件,包括用于商业用途,但须遵守该协议的要求,例如保留版权与许可声明,并在修改时注明变更。软件按「原样」提供,不附带任何明示或暗示的担保。

#NDToolsBox#3ds Max#C#
上次更新: 2026/09/29, 23:56:45
MaxScript开发公约
NDDownload 安装器源码

← MaxScript开发公约 NDDownload 安装器源码→

最近更新
01
NDDownload 安装器源码
09-01
02
NDanim_Pack 资源包
09-01
03
JoeAnimPicker 动画重定向工具
09-01
更多文章>
Theme by Vdoing | Copyright © 2019-2026 ND|99u:199505| 鄂ICP备2022012500号 | 鄂公网安备 42022202000122号

共产主义:是对生产资料的共享,不是对生活资料财产的均分

  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式