Skip to content
| Marketplace
Sign in
Visual Studio Code>Other>NextDesign Extension GeneratorNew to Visual Studio Code? Get it now.
NextDesign Extension Generator

NextDesign Extension Generator

DENSO CREATE

|
32 installs
| (0) | Free
Next Designの軽量エクステンションをC#とPythonで開発できます。なお、Next DesignでScriptRunnerの拡張機能のインストールが必要です。
Installation
Launch VS Code Quick Open (Ctrl+P), paste the following command, and press enter.
Copied to clipboard
More Info

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: 必要な環境を準備

  1. Next Design に ScriptRunner 拡張機能をインストールします。

Step 2: 拡張機能を実行

  1. VS Code でプロジェクトフォルダを開く
    作成または更新したいフォルダを VS Code で開いてください。

  2. コマンドパレットを開く

    • Windows: Ctrl+Shift+P
  3. コマンドを実行
    コマンドパレットで以下のコマンドを選択してください:

    • Next Design: Create Extension
    • Next Design: Update Extension
  4. 利用する言語を選択
    開発言語を 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 コマンドを実装
  • Contact us
  • Jobs
  • Privacy
  • Manage cookies
  • Terms of use
  • Trademarks
© 2025 Microsoft