コンテンツにスキップ

linkcad.conv

ファイル形式変換——図面をプログラムから読み書きします。

from linkcad.v1.conv import (
Conversion, Conversions, FormatRegistry, FormatInfo, Format, FormatAttributes,
)

クラス

Conversions

バッチのコンテナであり、Conversion を得るための唯一の入口です。Conversion を直接構築することはありません——Conversions コレクションから取得してください。

from linkcad.v1.conv import Conversions
batch = Conversions()
conv = batch.append_new("GDSII", "DXF")
conv.import_paths = ["/data/design.gds"]
conv.export_path = "/data/design.dxf"
conv.read_file()
if not conv.succeeded:
raise RuntimeError("Import failed")
dwg = conv.drawing
# optionally inspect/modify dwg under WriteLock here
conv.write_file()
if not conv.succeeded:
raise RuntimeError("Export failed")
プロパティ / メソッド説明
Conversions()空のコレクションを作成します
batch.append_new(import_format, export_format)新しい Conversion を追加して返します
batch.start() / batch.next()カーソルを最初/次の変換へ進めます
batch.doneカーソルが最後の変換を過ぎたら True
batch.currentカーソル位置の変換。done 後は例外になります
len(batch)変換の数
batch.position現在の変換のインデックス(0 始まり)
batch.clear()すべての変換を削除します
batch.has_duplicate_file_titles2 つのジョブが同じファイルタイトルを書き出すかどうか
batch.owner_windowモーダル進捗ダイアログ用のオーナーウィンドウ ID。代入可能

バッチの反復:

batch.start()
while not batch.done:
conv = batch.current
conv.read_file()
conv.write_file()
batch.next()

Conversion

単一のインポート → エクスポート操作です。

プロパティ / メソッド説明
conv.import_formatインポート形式名(例: "GDSII")。代入可能
conv.import_format_extension / conv.import_format_attributesインポート形式のメタデータ
conv.import_paths入力ファイルパス(文字列のリスト)。代入可能
conv.export_path出力ファイルパス(文字列)。代入可能で、任意の os.PathLike も受け付けます
conv.create_export_path()入力パスから出力パスを導出します
conv.export_format / conv.export_format_extension / conv.export_format_attributesエクスポート形式のメタデータ
conv.read_file()インポート処理を実行します
conv.write_file()エクスポート処理を実行します
conv.drawingread_file() が生成した Drawing、または None
conv.delete_drawing()図面のメモリを解放します
conv.succeeded直前の操作が成功していれば True
conv.progress進捗率(0-100)
conv.cancel() / conv.cancelledキャンセルとキャンセル判定
conv.import_logインポートログ(IEventLogReader
conv.export_logエクスポートログ(IEventLog

エクスポート形式は変換の作成時に確定するため、export_format は読み取り専用です——append_new() に渡してください。

FormatRegistry

LinkCAD が読み書きできる形式のシングルトンレジストリです。

from linkcad.v1.conv import FormatRegistry
registry = FormatRegistry.get_instance()
for info in registry.import_formats:
file_filter, display_name = registry.import_format_filter(info.plugin_name)
print(f"{display_name}: {file_filter}")
プロパティ / メソッド説明
FormatRegistry.get_instance()静的——シングルトンレジストリを取得します
registry.import_formats / registry.export_formats登録済みの各形式に対する FormatInfo
registry.import_format(plugin_name) / registry.export_format(plugin_name)その形式の Format 制約、または None
registry.import_format_filter(plugin_name) / registry.export_format_filter(plugin_name)(file_filter, display_name) のタプル
registry.default_extension(plugin_name)既定のファイル拡張子
registry.import_format_licensed(plugin_name) / registry.export_format_licensed(plugin_name)ライセンスの確認
registry.plugin_name_from_id(id)数値の形式 ID を解決します

ライセンスマネージャーはスクリプトが動き出す前にホストアプリケーションが導入するため、get_instance() は引数を取りません。

FormatInfo

レジストリが形式エントリを記述するときに返されます。

プロパティ説明
info.id一意な形式 ID
info.plugin_nameプラグイン名(例: "GDSII"
info.display_name人が読める表示名
info.licensedその形式がライセンスされているかどうか

Format

ファイル形式がレイヤー名とセル名に課す検証上の制約です。形式プラグインは対応内容を宣言するためにこれを構築します。FormatRegistry.import_format() は組み込み形式の制約を返します。

from linkcad.v1.conv import Format, FormatAttributes
fmt = Format()
fmt.attributes = FormatAttributes.LAYER_NUMBERS | FormatAttributes.LAYER_NAMES
fmt.set_layer_number_range(0, 255)
fmt.layer_max_length = 32
プロパティ / メソッド説明
Format()既定属性の形式記述子を作成します
fmt.attributes形式の機能フラグ。代入可能
fmt.layer_max_length / fmt.cell_max_length名前の最大長。代入可能
fmt.set_layer_number_range(min, max=-1)有効なレイヤー番号の範囲を設定します
fmt.set_valid_layer_chars(char_set, initial_chars=None, preferred_prefix=None)レイヤー名に使える文字を設定します
fmt.set_cell_number_range(min, max=-1)有効なセル番号の範囲を設定します
fmt.set_valid_cell_chars(char_set, initial_chars=None, preferred_prefix=None)セル名に使える文字を設定します
fmt.set_file_name_extension(ext)セルファイル名の拡張子を設定します
fmt.layer_min_number / fmt.layer_max_number現在のレイヤー番号の範囲
fmt.cell_min_number / fmt.cell_max_number現在のセル番号の範囲
fmt.layer_char_set / fmt.cell_char_set現在有効な文字集合
fmt.is_valid_layer_name(layer_name, auto_uppercase=False)レイヤー名を 1 つ検証します
fmt.is_valid_cell_name(cell_name, auto_uppercase=False)セル名を 1 つ検証します
fmt.validate_layers(drawing, copy_from_input=True, allow_duplicates=False)図面内のレイヤーを検証します
fmt.validate_cells(drawing, copy_from_input=True)図面内のセルを検証します

set_layer_number_range()set_cell_number_range() はメソッドのままです。複数の値を一度に取るセッターは代入では表せません。

FormatAttributes

形式の機能を表すビットフラグ定数です。| で組み合わせ、結果を Format.attributes に代入します。

定数意味
FormatAttributes.NONE特別な属性なし
FormatAttributes.LAYER_NUMBERSレイヤー番号に対応
FormatAttributes.LAYER_NAMESレイヤー名に対応
FormatAttributes.LAYER_FILE_NAMESレイヤー名をファイル名として保存
FormatAttributes.LAYER_COMMENTSレイヤーコメントに対応
FormatAttributes.LAYER_COLORSレイヤー色に対応
FormatAttributes.LAYER_ELEVATIONレイヤーの標高/Z 値に対応
FormatAttributes.LAYER_FLASHED_RECTSフラッシュされた矩形に対応
FormatAttributes.LAYER_FLASHED_CIRCLESフラッシュされた円に対応
FormatAttributes.LAYER_FILLED_POLYGONS塗りつぶしポリゴンに対応
FormatAttributes.LAYER_OUTLINED_POLYS輪郭ポリゴンに対応
FormatAttributes.LAYER_POLARITYレイヤー極性に対応
FormatAttributes.CELL_NUMBERSセル番号に対応
FormatAttributes.CELL_NAMESセル名に対応
FormatAttributes.CELL_FILE_NAMESセル名をファイル名として保存
FormatAttributes.CELL_NAMES_IGNORE_CASEセル名の照合で大文字小文字を無視
FormatAttributes.SUPPORT_BULGE_POLYGONSふくらみ付きポリゴンに対応
FormatAttributes.MULTIPLE_FILES複数ファイルの読み書きが可能
FormatAttributes.SINGLE_PASS1 パスで処理可能
FormatAttributes.DIRECTORY_OUTPUTディレクトリを書き出す
FormatAttributes.DIRECTORY_INPUTディレクトリを読み込む
FormatAttributes.SOURCE_INSPECTIONソース検査メタデータに対応