コンテンツにスキップ

ツールプラグインの作成

このチュートリアルでは、自動生成されたオプションダイアログ付きで LinkCAD のメニューシステムに表示される Python ツールを作成する方法を説明します。

ツールフレームワーク

ツールプラグインは次の要素で構成されます。

  1. @tool() でデコレートされ、Tool を拡張するクラス
  2. UI ダイアログを定義するオプションクラス属性
  3. ロジックを実装する 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")

仕組み

  1. @tool() がクラスを LinkCAD ツールとして登録します
  2. name はメニューに表示され、menu はメニューパスを設定します
  3. Option.boolean(...) は自動生成ダイアログ内にチェックボックスを作成します
  4. ユーザーがダイアログで 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):
...

次のステップ