Next Design Extension Generator
Next Design Extension Generator は、Next Design の拡張機能を C# に加えて Python で開発するためのツールです。この拡張機能を使用すると、Next Design 用のスクリプトベースのエクステンションを簡単に開発できます。なお、このエクステンションの開発には Next Design の ScriptRunner 拡張機能が必要です。
概要
Next Design の ScriptRunner
拡張機構は、通常の .NET の DLL ベースの開発に比べ、軽量で迅速なエクステンション開発を可能にします。通常のエクステンションと異なり、Next Design のプロジェクトファイルと同一フォルダに Scripts
フォルダを作成し、その中にリボンの定義を記述する manifest.json
と、クリック時の動作を実装する C# または Python ファイルを配置するだけで、プロジェクトを開いた瞬間にエクステンションが有効化されます。
プロジェクトと一緒に配布できるため、管理が非常にシンプルです。また、プロジェクトを開いている間でもスクリプトのコードを更新するだけで再ビルド不要ですぐに動作を変更できます。言語としては標準の C# に加えて Python をサポートしています。
機能
🛠️ "Next Design: Create Python Extension"
Next Design: Create Script Extension
コマンドを実行すると、選択したフォルダ内に以下のディレクトリ構造とテンプレートスクリプトが生成されます:
Python の場合
Scripts/
├── nd/
│ ├── core.pyi
│ ├── desktop.pyi
│ ├── manifest.schema.json
├── check_error.py
├── generate_code.py
└── manifest.json
C# の場合
Scripts/
├── nd/
│ ├── Globals.csx
│ ├── NextDesign.Core.dll
│ ├── NextDesign.Desktop.dll
│ ├── NextDesign.Core.xml
│ ├── NextDesign.Desktop.xml
│ ├── manifest.schema.json
├── check_error.csx
├── generate_code.csx
└── manifest.json
manifest.json
を編集して Next Design のリボンの構成を設定し、呼び出すスクリプトファイルを実装してください。
check_error.py
などのファイルはサンプルです。必要に応じてファイル名を自由に変更してください。
nd
フォルダは Next Design の API にアクセスするためのインテリセンス情報が格納されています(C# の場合は DLL や .csx ファイル、Python の場合は .pyi
ファイル)。このフォルダはエクステンションを更新する際に使用されます。削除や変更は行わないでください。なお、このフォルダがなくてもエクステンション自体は動作しますが、インテリセンス機能を利用するには必要です。
🔄 "Next Design: Update Python Extension"
Next Design: Update Script Extension
コマンドを実行すると、既存の Scripts/nd
フォルダを最新の Next Design ライブラリに更新します。これにより、インテリセンス機能もアップデートされます。
使用方法
Step 1: 必要な環境を準備
- Next Design に ScriptRunner 拡張機能をインストールします。
Step 2: 拡張機能を実行
VS Code でプロジェクトフォルダを開く
作成または更新したいフォルダを VS Code で開いてください。
コマンドパレットを開く
コマンドを実行
コマンドパレットで以下のコマンドを選択してください:
Next Design: Create Extension
Next Design: Update Extension
利用する言語を選択
開発言語を Python または C# から選択してください。
Step 3: エクステンションの開発
Next Design の ScriptRunner
機能を使用して軽量なスクリプト開発を行えます。Python を使用する場合、manifest.json
は以下のようになります:
{
"$schema": "nd/manifest.schema.json",
"RibbonTabs": [
{
"Label": "ADAS",
"Groups": [
{
"Label": "検証",
"Controls": [
{
"Label": "検証",
"Type": "LargeButton",
"ScriptFile": "check_error.py",
"Description": "モデルを検証します"
}
]
}
]
}
]
}
スクリプトファイルは C# または Python を選択可能です。以下にサンプルコードを示します:
Python の例
from nd.desktop import app
# ログ出力
app.Workspace.Output.WriteLine("Script", "エラーをチェックします...")
# モデル取得
models = app.Workspace.CurrentModel.GetAllChildren()
# 子要素に対する処理
for model in models:
if model.GetField("Name") == "":
model.AddError("Name", "Error", "検証エラー", "Name が空です")
break
C# の例
#load "nd/globals.csx"
using NextDesign.Core;
using NextDesign.Desktop;
Output.WriteLine("CSScript", "検証を開始します...");
var models = CurrentModel.GetAllChildren();
foreach (IModel model in models)
{
if (model.Name == "")
{
model.AddError("Name", "Error", "検証エラー", "名前が空です。");
}
}
既知の問題と制約事項
Scripts/nd
フォルダが存在しない状態で Next Design: Update Extension
を実行するとエラーメッセージが表示されます。この場合、まず Next Design: Create Extension
を実行してください。
リリースノート
0.1.1
- Python に加えて C# のエクステンション作成に対応
0.0.1
- 初回リリース
- Create および Update コマンドを実装