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_titles | 2 つのジョブが同じファイルタイトルを書き出すかどうか |
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.drawing | read_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_NAMESfmt.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_PASS | 1 パスで処理可能 |
FormatAttributes.DIRECTORY_OUTPUT | ディレクトリを書き出す |
FormatAttributes.DIRECTORY_INPUT | ディレクトリを読み込む |
FormatAttributes.SOURCE_INSPECTION | ソース検査メタデータに対応 |