コンテンツにスキップ

API リファレンス

LinkCAD の Python API は次のモジュールに整理されており、いずれも安定した linkcad.v1 名前空間から利用できます。各 linkcad.v1.* モジュールは対応するトップレベルモジュールの公開名前空間全体をミラーしているため、オブジェクトは同一です。v1 からインポートすることで、スクリプトを安定 API に固定できます。

linkcadlinkcad.v1 が公開するのはこれらのモジュールだけです——トップレベルに名前は存在しません。モジュールの内容どうしが衝突するからです。パッケージ構造 を参照してください。

API 全体、そしてすべてのモジュールを通じて 4 つの規約があります。

  • 名詞はプロパティ、動詞はメソッド。 shape.areacell.shapesdrawing.layersbounds.widthtask.progresslog.entry_countconversion.succeeded——括弧は付きません。destroy()clone()rotate()mark_fatal() は括弧を保ちます。
  • ゲッター/セッターの対は 1 つの読み書き可能プロパティであり、2 つの名前にはならない。 layer.enabled = False であって layer.enable(False) ではありません。
  • ジオメトリは、それを所有することになるオブジェクトが作成する。 drawing.add_cell(name)drawing.add_layer(name)cell.add_polygon(layer, vertices)cell.add_ref(cell)。静的ファクトリーはありません。
  • アクセサーがパラメーターを取る場合、プロパティが一般的なケースを担当し、filtered_* メソッドが残りを露出します: cell.shapes / cell.filtered_shapes(selected_only=True)controller.layers / controller.filtered_layers(sort_order=…)

列挙型のメンバーは常にその型経由——EndCap.RoundHolesMode.Link——で参照し、モジュール直下の名前としては公開されません。

モジュール目的ドキュメント
linkcad.v1.pluginプラグインフレームワーク——デコレーター、オプション、リーダー/ライター基底クラス、DrawingBuilderWriterController、ダイアログ仕様プラグイン開発
linkcad.v1.db図面データベース——セル、レイヤー、形状、曲線、テキスト、ロック、トランザクション、図面ヘルパーデータアクセス
linkcad.v1.geomジオメトリプリミティブ——点、ベクトル、変換、範囲、角度座標計算
linkcad.v1.editジオメトリタスク——マージ、フラット化、スナップ、結合、展開バッチ操作
linkcad.v1.envオプションとログ——永続オプションの読み書き、イベントログ設定と診断
linkcad.v1.convファイル形式変換——図面をプログラムから読み書き形式 I/O
linkcad.v1.libgraphブール演算ジオメトリエンジン——ポリゴンの和、積、差形状の数学処理
linkcad.v1.controller変換ワークフローコントローラー——完全なウィザードパイプライン上位レベルの変換

インポートのパターン

モジュールをインポートし、そこから辿ります。

from linkcad.v1 import db, geom, edit, env, conv, libgraph, controller, plugin
with db.Drawing("scratch") as dwg:
cell = dwg.add_cell("TOP")
cell.add_polygon(dwg.add_layer("METAL1"), [(0, 0), (100, 0), (100, 100)])

あるいは、使う名前をインポートします。

# Plugin framework
from linkcad.v1.plugin import tool, Tool, Option, TableColumn
from linkcad.v1.plugin import format_reader, FormatReader, DrawingContext, DrawingBuilder
from linkcad.v1.plugin import format_writer, FormatWriter, WriterContext, ShapeInfo, WriterController
from linkcad.v1.plugin import DialogSpec, ChoiceItem, EventLog, Phase, LayerFlags, SortOrder
from linkcad.v1.plugin import HolesMode, PolygonType, EndCap, FillRule, UNIT_IN_METERS
# Database
from linkcad.v1.db import Drawing, Cell, Layer, Shape, Polygon, Polyline
from linkcad.v1.db import Arc, Ellipse, Donut, Nurbs, Text, Ref
from linkcad.v1.db import Object, DrawingObject, CellObject, Color, Property
from linkcad.v1.db import ReadLock, WriteLock, Transaction
from linkcad.v1.db import Unit, ObjectType, CellContext, EndCap, FillRule
from linkcad.v1.db import BooleanOperation, MergeLayerPolarityResult
# Geometry
from linkcad.v1.geom import Point, Vector, Bounds, Transformation, Angle, Resolution
# Edit tasks
from linkcad.v1.edit import MergeTask, FlattenTask, FillRule, HolesMode, ShapesToConvert
from linkcad.v1.edit import CellFilter, LayerFilter, ShapeFilter
# Options & logging
from linkcad.v1.env import get_option_boolean, set_option_boolean, EventLog, Severity
# File conversion
from linkcad.v1.conv import Conversion, Conversions, FormatRegistry, FormatInfo
from linkcad.v1.conv import Format, FormatAttributes
# Boolean geometry
from linkcad.v1.libgraph import boolean_and, boolean_or, ShapeProcessor, succeeded
# Conversion controller
from linkcad.v1.controller import ConversionController, ConversionState, ProgressInfo