ツールプラグインの作成
このチュートリアルでは、自動生成されたオプションダイアログ付きで LinkCAD のメニューシステムに表示される Python ツールを作成する方法を説明します。
ツールフレームワーク
ツールプラグインは次の要素で構成されます。
@tool()でデコレートされ、Toolを拡張するクラス- UI ダイアログを定義するオプションクラス属性
- ロジックを実装する
run()メソッド
例: レイヤー統計
プラグインディレクトリに layer_stats.py ファイルを作成します。
from linkcad.plugin import tool, Tool, Option
@tool( name="Layer Statistics", menu="Tools/Analysis", tooltip="Show shape count per layer",)class LayerStats(Tool): include_empty = Option.boolean( "Include empty layers", default=False, tooltip="Show layers with zero shapes", )
def run(self, drawing) -> None: for layer_name, shapes in drawing.shapes_by_layer(): count = sum(1 for _ in shapes) if count > 0 or self.include_empty: print(f"{layer_name}: {count} shapes")仕組み
@tool()がクラスを LinkCAD ツールとして登録しますnameはメニューに表示され、menuはメニューパスを設定しますOption.boolean(...)は自動生成ダイアログ内にチェックボックスを作成します- ユーザーがダイアログで OK をクリックすると
run()が呼び出されます
オプション型
| ファクトリ | UI コントロール | 例 |
|---|---|---|
Option.integer() | スピンボックス | Option.integer("Count", default=1, min=0, max=100) |
Option.real() | ダブルスピンボックス | Option.real("Scale", default=1.0, decimals=4) |
Option.boolean() | チェックボックス | Option.boolean("Enable", default=True) |
Option.string() | テキストフィールド | Option.string("Name", default="output") |
Option.choice() | ドロップダウン | Option.choice("Mode", choices=["Fast", "Precise"]) |
Option.path() | ファイルピッカー | Option.path("Output", file_filter="*.csv") |
Option.color() | カラーピッカー | Option.color("Fill", default="#FF0000") |
Option.table() | 編集可能グリッド | パネルアセンブリを参照してください |
Option.cell_choice() | セルドロップダウン | Option.cell_choice("Target Cell") |
条件付きオプション
enabled_when を使用して、オプションを動的に表示/非表示にします。
class MyTool(Tool): mode = Option.choice("Mode", choices=["Simple", "Advanced"]) threshold = Option.real( "Threshold", default=0.5, enabled_when=lambda self: self.mode == "Advanced", )threshold フィールドは、mode が “Advanced” の場合にのみ有効になります。
キーボードショートカット
@tool( name="My Tool", menu="Tools/Custom", shortcut="Ctrl+Shift+M",)class MyTool(Tool): ...次のステップ
- 形式プラグインの作成——カスタムインポート/エクスポート形式を追加します
- オプション型リファレンス——完全なオプション API