コンテンツにスキップ

linkcad.plugin

プラグインモジュールは、ツール、形式リーダー、形式ライターを作成するためのフレームワークを提供します。

デコレーター

@tool()

クラスをメニューツールとして登録します。ツールデコレーターを参照してください。

@tool(name="My Tool", menu="Tools/Custom")
class MyTool(Tool):
def run(self, drawing) -> None:
...

@format_reader()

クラスをファイルインポート形式として登録します。形式デコレーターを参照してください。

@format_reader(name="My Format", extensions=["*.myf"])
class MyReader(FormatReader):
def read(self, path: Path, drawing: DrawingContext) -> None:
...

@format_writer()

クラスをファイルエクスポート形式として登録します。形式デコレーターを参照してください。

@format_writer(name="My Format", extensions=["*.myf"])
class MyWriter(FormatWriter):
def write(self, path: Path, drawing: WriterContext) -> None:
...

Option クラス

Option は、型付きで永続的なオプションを定義するためのファクトリメソッドを提供します。

ファクトリ結果型UI コントロール
Option.integer(label, default, min, max)intスピンボックス
Option.real(label, default, min, max, decimals)floatダブルスピンボックス
Option.boolean(label, default)boolチェックボックス
Option.string(label, default)strテキストフィールド
Option.choice(label, choices, default)strドロップダウン
Option.path(label, default, file_filter)strファイルピッカー
Option.color(label, default)strカラーピッカー
Option.table(label, columns, default)list[dict]編集可能グリッド
Option.cell_choice(label, default)strセルドロップダウン

すべてのファクトリは、省略可能な tooltipenabled_when パラメーターを受け取ります。

コンテキストクラス

DrawingContext

形式リーダー用のビルダーインターフェイスです。メソッド:

  • cell(name, main)——セルを作成するコンテキストマネージャー
  • iter_lines(path)——進捗付きの行イテレーター
  • iter_binary(path, chunk_size)——進捗付きのバイナリイテレーター
  • progress——進捗を取得/設定します(0.0–1.0)

WriterContext

形式ライター用のリーダーインターフェイスです。メソッド:

  • shapes(cell, layer)——進捗付きで形状を反復します
  • shapes_by_layer(cell)——レイヤー別にグループ化された形状
  • shapes_by_cell(layer)——セル別にグループ化された形状
  • cells()——セル名イテレーター
  • layers()——レイヤー名イテレーター
  • cell_count() / shape_count()——カウント
  • main_cell_name()——トップセル名
  • flatten——階層フラット化を取得/設定します

ShapeInfo

WriterContext.shapes() から返されるデータクラスです。

  • layer_name: str——レイヤー名
  • cell_name: str——セル名
  • vertices: list[tuple]——(x, y) 座標
  • is_polygon: bool——ポリゴンかポリラインか
  • width: int——ポリライン幅
  • is_closed: bool——形状が閉じているかどうか

例外

例外用途
PluginErrorすべてのプラグインエラーの基底クラス
ParseErrorファイル解析エラー(linepath キーワード引数を受け取ります)
WriteErrorファイル書き込みエラー
ValidationErrorオプション検証エラー

TableColumn

テーブルオプション列を定義するためのデータクラスです。

  • key: str——辞書キー
  • label: str——列見出し
  • col_type: str——stringintegerrealchoicecell_choice
  • default: Any——デフォルト値
  • choices: list[str]——choice 列用
  • decimals: int——real 列用
  • min_value / max_value——数値列用