@tool() デコレーター
クラスを LinkCAD ツールとして登録し、自動生成されたオプションダイアログ付きでアプリケーションメニューに表示します。
シグネチャ
@tool( name: str, menu: str = "Tools/Python", tooltip: str = "", shortcut: str = "", icon: str = "", requires_drawing: bool = True,)class MyTool(Tool): ...パラメーター
| パラメーター | 型 | デフォルト | 説明 |
|---|---|---|---|
name | str | required | メニュー内の表示名 |
menu | str | "Tools/Python" | メニューパス(サブメニューには / を使用) |
tooltip | str | "" | ホバー時に表示されるツールチップ |
shortcut | str | "" | キーボードショートカット(例: "Ctrl+Shift+M") |
icon | str | "" | アイコンファイルへのパス(PNG、24×24) |
requires_drawing | bool | True | ツールが開いている図面を必要とするかどうか |
Tool 基底クラス
すべてのツールプラグインは Tool を拡張し、run() を実装する必要があります。
class Tool: def run(self, drawing) -> None: """Override to implement the tool logic.""" ...drawing 引数は現在の図面へのアクセスを提供します。requires_drawing=False の場合、これは None の可能性があります。
ToolInfo
デコレーターは、クラスに付加される ToolInfo 名前付きタプルを作成します。
| フィールド | 説明 |
|---|---|
name | ツール表示名 |
menu | メニューパス |
tooltip | ツールチップテキスト |
shortcut | キーボードショートカット |
icon | アイコンパス |
requires_drawing | 図面が必要かどうか |
メニューパス
menu パラメーターは、LinkCAD のメニュー内でツールが表示される場所を定義します。
"Tools/Python" → Tools → Python → <tool name>"Tools/Analysis" → Tools → Analysis → <tool name>"Tools/Drawing/Custom" → Tools → Drawing → Custom → <tool name>完全な例
from linkcad.plugin import tool, Tool, Option
@tool( name="Shape Counter", menu="Tools/Analysis", tooltip="Count shapes per layer", shortcut="Ctrl+Shift+C", requires_drawing=True,)class ShapeCounter(Tool): include_refs = Option.boolean("Include cell references", default=False)
def run(self, drawing) -> None: total = 0 for layer_name, shapes in drawing.shapes_by_layer(): count = sum(1 for _ in shapes) total += count print(f"{layer_name}: {count}") print(f"Total: {total}")