关于 acad-cuix-builder
acad-cuix-builder 是一个对话式技能,用于生成 AutoCAD 插件的完整 .bundle 文件夹,包含 CUIX 功能区、工具提示、LISP 文件和插件清单。适合配置 AutoCAD 插件界面与按钮的用户。
主要功能
- 01生成 CUIX 功能区、面板和按钮
- 02创建带动画的扩展工具提示
- 03复制 LISP 命令文件
- 04生成 PackageContents.xml 清单
- 05支持图标匹配与 F1 CHM 帮助
适用场景
- 01为 AutoCAD 插件创建功能区界面
- 02批量配置面板中的命令按钮
- 03为按钮添加图标和动画工具提示
- 04生成含 F1 帮助配置的插件包
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ autodesk-platform-services/ skills --skill acad-cuix-builder安装后在 Claude Code 中输入/acad-cuix-builder确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
install.ps1README.mdreferences/cuix-architecture.md详细介绍
AutoCAD CUIX 生成器
通过对话生成完整的 AutoCAD .bundle 文件夹:
- 功能区选项卡 + 面板 + 按钮(CUIX)
- 带 GIF 动画的扩展工具提示(XAML)
- LISP 命令文件(从
lispPath复制) PackageContents.xml— AutoCAD 插件清单
将该 bundle 放入 %APPDATA%\Autodesk\ApplicationPlugins\,AutoCAD 会在下次启动时自动加载。
架构参考:请参阅 references/cuix-architecture.md。
步骤 0 — 确认生成器可用
$exe = "$env:USERPROFILE\.cuixbuilder\CuixBuilder.exe"
if (Test-Path $exe) {
& $exe --help # shows all config fields
} elseif (Get-Command dotnet -ErrorAction SilentlyContinue) {
dotnet --version
} else {
Write-Host "Neither found — run install.ps1 first"
}
- 找到 exe → 在步骤 5 中使用
& $exe <config.json> - 找到 dotnet SDK → 在步骤 5 中使用
dotnet run --project <src-path> -c Release -- <config.json> - 两者都没有 → 告诉用户先运行
install.ps1(会下载 exe,无需 SDK)
步骤 1 — 收集插件身份信息
询问:
- 插件显示名称 — 显示为功能区选项卡和组标签(例如
Drafting Tools) - 内部名称 — 根据显示名称生成,不含空格(例如
DraftingTools)
步骤 2 — 收集面板信息
询问:
- 需要多少个功能区面板?
- 每个面板的名称(例如
Annotation、View)
步骤 3 — 收集按钮信息(按面板)
自动扫描图标文件夹(用户提供文件夹路径时)
如果用户说“使用 <folder> 中的图标”,列出该文件夹,并按按钮名称自动匹配文件:
Get-ChildItem "D:\SkillDemo\demo\icons\" | Select-Object Name
匹配规则(不区分大小写,空格→空):
{buttonname}.bmp→imagePath(16×16 功能区图标){buttonname}.gif→tooltipImage(展开工具提示动画){buttonname}.png→tooltipImage(没有 GIF 时的后备选项)
示例:按钮标签 Zoom Selection,内部名称 zoomsel:
zoomsel.bmp→ imagePathzoomsel.gif→ tooltipImage
根据标签生成内部名称:转为小写,去掉空格和特殊字符(例如 Zoom Selection → zoomsel,Isolate Layer → layiso)。如果没有找到匹配项,则使用彩色占位图。
每个按钮的字段
对于每个面板中的每个按钮,询问:
- 标签 — 按钮上显示的文字(例如
Quick Leader) - 命令 — 以下其中一种:
- 裸 AutoCAD 命令:
QLEADER→ 生成器会自动添加^C^C - LISP 表达式:
(c:ZOOMSEL)→ 生成器会自动添加^C^C - 已格式化:
^C^CMYCOMMAND→ 原样使用
- 裸 AutoCAD 命令:
- 图像 — 从图标文件夹自动匹配,或提供
.bmp文件路径,或跳过 → 使用彩色占位图 - 工具提示 — 简短的悬停文本(默认使用标签)
- 工具提示说明 — 可选的扩展正文,在展开的工具提示中显示
- 工具提示 GIF — 从图标文件夹自动匹配,或提供
.gif/.png路径(建议:300×187px,<30KB) - 帮助主题 — F1 帮助的锚点名称(例如
zoomsel);如果未提供,则根据内部名称生成
CHM / F1 帮助
如果用户没有提及 CHM 文件,务必询问:
“你有用于 F1 支持的 CHM 帮助文件吗?如果有,请提供路径。”
如果用户提供了文件,则在配置中设置 chmPath。如果跳过,则省略 chmPath(F1 会打开 AutoCAD 自带的帮助)。
每个按钮的帮助主题 = 根据按钮内部名称生成的锚点名称(例如 zoomsel)。
步骤 4 — 输出路径
询问将 .cuix 文件保存到何处。
默认值:当前目录 + <PluginName>.cuix
步骤 5 — 确认、构建 JSON 并生成
显示摘要表格:
Plugin : <DisplayName> Tab : <Tab> Output : <path>
Panel: <name>
[1] <label> → <command> image: <file or "placeholder blue">
[2] ...
与用户确认后,构建 JSON 配置:
{
"pluginName": "DraftingTools",
"displayName": "Drafting Tools",
"tab": "Drafting Tools",
"outputPath": "C:\\full\\path\\DraftingTools.cuix",
"acadDir": "C:\\Program Files\\Autodesk\\AutoCAD 2027",
"lispPath": "C:\\full\\path\\DraftingTools.lsp",
"panels": [
{
"name": "Panel Name",
"buttons": [
{
"label": "Zoom Selection",
"command": "(c:ZOOMSEL)",
"imagePath": "C:\\icons\\zoomsel.bmp",
"tooltip": "Zoom to selected objects",
"tooltipDescription": "Zooms viewport to fit current selection set.",
"tooltipImage": "C:\\icons\\zoomsel.gif"
}
]
}
]
}
acadDir— AutoCAD 安装目录,用于检测 R 系列版本(R26.0 = 2027,R25.1 = 2026,R25.0 = 2025)lispPath— 复制到 bundle 中;旁边的.Help.html和.chm也会自动复制tooltipImage— 在展开的工具提示中显示的 GIF/PNG;建议 300×187px,<30KBimagePath— 功能区按钮图标的 16×16 BMP;省略时会自动生成彩色占位图
使用明确的时间戳将配置写入 $env:TEMP,然后运行:
$configPath = "$env:TEMP\cuix_$(Get-Date -Format 'yyyyMMdd_HHmmss').json"
# ... write config to $configPath ...
# With exe (preferred)
& "$env:USERPROFILE\.cuixbuilder\CuixBuilder.exe" $configPath
# With SDK fallback — clone source from GitHub
$src = "$env:TEMP\acad-cuix-builder-src"
if (-not (Test-Path $src)) {
git clone https://github.com/ADN-DevTech/acad-cuix-builder $src
}
dotnet run --project $src -c Release -- $configPath
步骤 6 — 报告结果
成功时:
Done: <outputPath>
In AutoCAD: CUILOAD → browse to <outputPath>
失败时:显示 stderr 并进行诊断(常见原因:缺少 exe、路径错误、JSON 无效)。
命令规范化
| 用户输入 | 转换为 |
|---|---|
QLEADER | ^C^CQLEADER |
zoom e | ^C^CZOOM E |
(alert "Hi") | ^C^C(alert "Hi") |
^C^CMYCOMMAND | ^C^CMYCOMMAND(保持不变) |
占位图标颜色(未提供图像时自动生成)
索引会在 CUIX 中的所有按钮之间按 0→7 循环。
| 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 |
|---|---|---|---|---|---|---|---|
| 蓝色 | 绿色 | 橙色 | 紫色 | 青绿色 | 红色 | 琥珀色 | 青色 |
F1 帮助 — 通过 PackageContents 使用 CHM
F1 帮助通过 CHM + PackageContents.xml 实现。已在 AutoCAD 2027 中测试并确认可用。
工作原理
- 在
<ApplicationPackage>上设置HelpFile="./Contents/Win64/Plugin.chm" <Command Local="ZOOMSEL" HelpTopic="zoomsel" />— 仅使用锚点名称(不带.htm)- CUIX
<ToolTip HelpTopic="zoomsel" HelpSource="C:\absolute\path\Plugin.chm" />
配置
为每个按钮设置 chmPath 和 helpTopic(锚点名称,而非文件名):
{
"chmPath": "C:\\path\\to\\DraftingTools.chm",
"panels": [{
"buttons": [{
"helpTopic": "zoomsel"
}]
}]
}
如果用户提供文件名,CuixBuilder 会自动移除 .htm/.html 扩展名,并且始终只输出锚点名称。
要求
- CuixBuilder.exe — 通过
install.ps1安装(从 GitHub Releases 下载,约 200KB) - .NET 10 runtime — 随 AutoCAD 2027 提供;也可从 https://dot.net 安装
- 仅限 Windows — AutoCAD 插件包格式仅适用于 Windows