Python スクリプト
LinkCAD には、カスタム自動化、ツール開発、形式プラグイン作成のための組み込み Python インタープリターが含まれています。Python スクリプトは、図面データベース、ジオメトリ API、および linkcad.v1 プラグインフレームワークにアクセスできます。
機能
- カスタムツール——図面ジオメトリを処理するメニュー項目を作成します
- 形式プラグイン——
FormatReader、FormatWriter、DrawingBuilder、WriterControllerを使ってインポート/エクスポート形式を追加します - 対話型コンソール——図面をライブで探索、操作します
- スクリプトエディター——LinkCAD 内でスクリプトを作成し、実行します
Python API は安定した linkcad.v1 名前空間のままです。現在の形式プラグインとデータベースの追加機能は v1 の一部であり、適用すべき v2 への移行はありません。パッケージは型スタブも同梱しているため、エディターは追加設定なしに linkcad.* の補完と型チェックを提供します——セットアップと要件 を参照してください。
はじめに
- セットアップと要件——Python 環境と前提条件
- 最初のスクリプト——Python コンソールでの “Hello World”
- ツールプラグインの作成——メニュー統合ツールを作成します
- 形式プラグインの作成——新しいファイル形式を追加します
- パネルアセンブリチュートリアル——実世界の完全な例
API リファレンス
- オプション型——integer、real、boolean、string、choice、path、color、table、cell_choice
- ツールデコレーター——
@tool()デコレーターと Tool 基底クラス - 形式デコレーター——
@format_reader()、@format_writer()、および基底クラス - API モジュール——すべてのモジュール:
linkcad.v1.plugin、linkcad.v1.db、linkcad.v1.geom、linkcad.v1.edit、linkcad.v1.env、linkcad.v1.conv、linkcad.v1.libgraph、linkcad.v1.controller
クイック例
レイヤーごとの形状数を数える単純なツールです。
from collections import Counter
from linkcad.v1.plugin import tool, Tool
@tool( name="Layer Statistics", menu="Tools/Analysis", tooltip="Count shapes per layer",)class LayerStats(Tool): def run(self, drawing) -> dict: counts = Counter( shape.layer.name for cell in drawing.cells for shape in cell.shapes if shape.layer is not None ) return { "layers": dict(counts), "summary": f"{len(counts)} layers, {sum(counts.values())} shapes", }drawing.cells と cell.shapes はメソッドではなくプロパティです。API 全体を通じて、名詞はプロパティ、動詞はメソッドであり、ゲッター/セッターの対は 1 つの読み書き可能プロパティです。またジオメトリは、それを所有することになるオブジェクトが作成します——drawing.add_cell(name)、cell.add_polygon(layer, vertices)。
linkcad と linkcad.v1 が公開するのは API のモジュールであって、その内容ではありません。必要なモジュールをインポートしてください: from linkcad.v1 import db としてから db.Drawing です。