コンテンツにスキップ

linkcad.edit

ジオメトリ操作タスクです。各タスクは Drawing に対して動作し、task.execute() を呼び出して実行します。タスクは WriteLock(スタンドアロンスクリプト)または Transaction(ツールプラグイン)の内部で実行する必要があります。

from linkcad.edit import (
ITask,
SnapToGridTask,
FlattenTask,
RemoveDuplicatesTask,
MergeTask,
ClosePolylinesTask,
JoinPolylinesTask,
PolylineToPolygonTask,
ExplodeToPolygonTask,
RemoveZeroWidthPolylinesTask,
RemoveOverlappingPolylinesTask,
FixSelfIntersectingPolygonsTask,
FillRule,
HolesMode,
EdgePolicy,
PolygonSnapMode,
)

基底クラス

ITask

すべてのタスクは ITask を拡張します。

メソッド説明
task.execute()図面上でタスクを実行します

タスク

SnapToGridTask

すべての形状頂点を最も近いグリッド点へスナップします。

from linkcad.edit import SnapToGridTask, PolygonSnapMode
from linkcad.geom import Resolution
task = SnapToGridTask(drawing, resolution, grid_x, grid_y, PolygonSnapMode.Nearest)
task.execute()
パラメーター説明
drawingDrawing対象図面
resolutionResolution曲線テッセレーション設定
grid_xintX 方向のグリッド間隔(データベース単位)
grid_yintY 方向のグリッド間隔(データベース単位)
snap_modePolygonSnapModeポリゴン頂点の処理方法

FlattenTask

セル階層をフラット化します——すべてのセル参照を親セル内へ展開します。

from linkcad.edit import FlattenTask
from linkcad.geom import Resolution
task = FlattenTask(drawing, resolution)
task.execute()

RemoveDuplicatesTask

図面から完全に重複した形状を削除します。

from linkcad.edit import RemoveDuplicatesTask
task = RemoveDuplicatesTask(drawing)
task.execute()

MergeTask

ブール和演算を使用して、各レイヤー上の重なり合うポリゴンをマージします。円やその他の曲線形状は、指定された Resolution を使って先にテッセレーションされます。

from linkcad.edit import MergeTask, FillRule, HolesMode, EdgePolicy
from linkcad.geom import Resolution
res = Resolution()
res.minimum_facets = 32
res.maximum_error = 1
task = MergeTask(
drawing,
res,
FillRule.NonZero,
HolesMode.Link,
EdgePolicy.Merge,
dont_explode=False,
process_vertically=False,
)
task.execute()
パラメーター説明
drawingDrawing対象図面
resolutionResolution曲線テッセレーション設定
fill_ruleFillRuleポリゴン内部を判定するためのワインディング規則
holes_modeHolesMode出力ポリゴンで穴を表現する方法
edge_policyEdgePolicy接触または重複するエッジの処理方法
dont_explodeboolTrue の場合、複雑な結果ポリゴンを分解しません
process_verticallyboolTrue の場合、セルを下位から上位へ処理します(階層図面用)

ClosePolylinesTask

端点を接続して、すべての開いたポリラインを閉じます。

from linkcad.edit import ClosePolylinesTask
task = ClosePolylinesTask(drawing)
task.execute()

JoinPolylinesTask

端点が接触している、または許容差内にあるポリラインを接続します。

from linkcad.edit import JoinPolylinesTask
task = JoinPolylinesTask(drawing)
task.execute()

PolylineToPolygonTask

閉じたポリラインを塗りつぶしポリゴンへ変換します。

from linkcad.edit import PolylineToPolygonTask
task = PolylineToPolygonTask(drawing)
task.execute()

ExplodeToPolygonTask

テッセレーションにより、すべての形状(円、円弧、ドーナツ、楕円、NURBS)を通常のポリゴン/ポリラインへ変換します。

from linkcad.edit import ExplodeToPolygonTask
from linkcad.geom import Resolution
res = Resolution()
res.minimum_facets = 32
task = ExplodeToPolygonTask(drawing, res)
task.execute()

RemoveZeroWidthPolylinesTask

幅がゼロのすべてのポリラインを削除します。

from linkcad.edit import RemoveZeroWidthPolylinesTask
task = RemoveZeroWidthPolylinesTask(drawing)
task.execute()

RemoveOverlappingPolylinesTask

同じレイヤー上の他のセグメントと完全に重なるポリラインセグメントを削除します。

from linkcad.edit import RemoveOverlappingPolylinesTask
task = RemoveOverlappingPolylinesTask(drawing)
task.execute()

FixSelfIntersectingPolygonsTask

自己交差ポリゴンを検出して修復し、有効な自己交差しない部分へ分割します。

from linkcad.edit import FixSelfIntersectingPolygonsTask
from linkcad.geom import Resolution
task = FixSelfIntersectingPolygonsTask(drawing, res)
task.execute()

列挙型

FillRule

マージ中に、ポリゴンの「内側」になる領域を判定するために使用されるワインディング規則です。

説明
FillRule.NonZero非ゼロワインディング規則(標準的な CAD/EDA の慣例)
FillRule.EvenOdd偶奇(交互塗り)規則

HolesMode

マージされたポリゴン内の穴を出力でどのように表現するかを制御します。

説明
HolesMode.Extract穴を個別のポリゴンとして表現します
HolesMode.Linkゼロ幅ブリッジで穴を外側境界に接続します
HolesMode.Split出力に穴が現れないようにポリゴンを分割します

EdgePolicy

マージ中に一致または接触するエッジをどのように処理するかを制御します。

説明
EdgePolicy.Merge接触するエッジをマージします

PolygonSnapMode

頂点をグリッドへスナップする方法を制御します。

説明
PolygonSnapMode.Nearest各頂点を最も近いグリッド点へスナップします