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 | セルドロップダウン |
すべてのファクトリは、省略可能な tooltip と enabled_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 | ファイル解析エラー(line と path キーワード引数を受け取ります) |
WriteError | ファイル書き込みエラー |
ValidationError | オプション検証エラー |
TableColumn
テーブルオプション列を定義するためのデータクラスです。
key: str——辞書キーlabel: str——列見出しcol_type: str——string、integer、real、choice、cell_choicedefault: Any——デフォルト値choices: list[str]——choice列用decimals: int——real列用min_value/max_value——数値列用