コンテンツにスキップ

Python スクリプト

LinkCAD には、カスタム自動化、ツール開発、形式プラグイン作成のための組み込み Python インタープリターが含まれています。Python スクリプトは、図面データベース、ジオメトリ API、および linkcad.v1 プラグインフレームワークにアクセスできます。

機能

  • カスタムツール——図面ジオメトリを処理するメニュー項目を作成します
  • 形式プラグイン——FormatReaderFormatWriterDrawingBuilderWriterController を使ってインポート/エクスポート形式を追加します
  • 対話型コンソール——図面をライブで探索、操作します
  • スクリプトエディター——LinkCAD 内でスクリプトを作成し、実行します

Python API は安定した linkcad.v1 名前空間のままです。現在の形式プラグインとデータベースの追加機能は v1 の一部であり、適用すべき v2 への移行はありません。パッケージは型スタブも同梱しているため、エディターは追加設定なしに linkcad.* の補完と型チェックを提供します——セットアップと要件 を参照してください。

はじめに

  1. セットアップと要件——Python 環境と前提条件
  2. 最初のスクリプト——Python コンソールでの “Hello World”
  3. ツールプラグインの作成——メニュー統合ツールを作成します
  4. 形式プラグインの作成——新しいファイル形式を追加します
  5. パネルアセンブリチュートリアル——実世界の完全な例

API リファレンス

  • オプション型——integer、real、boolean、string、choice、path、color、table、cell_choice
  • ツールデコレーター——@tool() デコレーターと Tool 基底クラス
  • 形式デコレーター——@format_reader()@format_writer()、および基底クラス
  • API モジュール——すべてのモジュール: linkcad.v1.pluginlinkcad.v1.dblinkcad.v1.geomlinkcad.v1.editlinkcad.v1.envlinkcad.v1.convlinkcad.v1.libgraphlinkcad.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.cellscell.shapes はメソッドではなくプロパティです。API 全体を通じて、名詞はプロパティ、動詞はメソッドであり、ゲッター/セッターの対は 1 つの読み書き可能プロパティです。またジオメトリは、それを所有することになるオブジェクトが作成します——drawing.add_cell(name)cell.add_polygon(layer, vertices)

linkcadlinkcad.v1 が公開するのは API のモジュールであって、その内容ではありません。必要なモジュールをインポートしてください: from linkcad.v1 import db としてから db.Drawing です。