acad-cuix-builder について
acad-cuix-builder は、CUIX のリボン要素、ツールチップ、LISP ファイル、プラグインマニフェストを含む AutoCAD 用 `.bundle` フォルダーを生成する対話型スキルです。AutoCAD プラグインの UI やコマンドを設定するユーザー向けです。
主な機能
- 01CUIX のリボン、パネル、ボタンを生成
- 02アニメーション付き拡張ツールチップを作成
- 03LISP コマンドファイルをコピー
- 04PackageContents.xml マニフェストを生成
- 05アイコン照合と F1 CHM ヘルプ設定
活用シーン
- 01AutoCAD プラグインのリボン UI を作成
- 02複数パネルのコマンドボタンを設定
- 03ボタンにアイコンとアニメーション付きツールチップを追加
- 04F1 ヘルプ設定を含むプラグインバンドルを作成
インストール
コマンドをコピーしてターミナルで実行します。
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 プラグインマニフェスト
バンドルを %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— バンドルにコピーされます。同じ場所にある.Help.htmlと.chmも自動でコピーされますtooltipImage— 展開されたツールチップに表示する GIF/PNG(推奨サイズ:300×187px、30KB 未満)imagePath— リボンボタンのアイコン用の 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 固有です