Zum Inhalt springen

linkcad.edit

Tasks zur Geometriebearbeitung. Jeder Task arbeitet auf einer Drawing und wird durch Aufruf von task.execute() ausgeführt. Tasks müssen innerhalb eines WriteLock (eigenständige Skripte) oder einer Transaction (Tool-Plugins) ausgeführt werden.

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

Basisklasse

ITask

Alle Tasks erweitern ITask.

MethodeBeschreibung
task.execute()Task auf der Zeichnung ausführen

Tasks

SnapToGridTask

Richtet alle Form-Stützpunkte am nächstgelegenen Rasterpunkt aus.

from linkcad.edit import SnapToGridTask, PolygonSnapMode
from linkcad.geom import Resolution
task = SnapToGridTask(drawing, resolution, grid_x, grid_y, PolygonSnapMode.Nearest)
task.execute()
ParameterTypBeschreibung
drawingDrawingZielzeichnung
resolutionResolutionEinstellungen für Kurventessellation
grid_xintRasterabstand in X (Datenbankeinheiten)
grid_yintRasterabstand in Y (Datenbankeinheiten)
snap_modePolygonSnapModeBehandlung von Polygon-Stützpunkten

FlattenTask

Reduziert die Zellenhierarchie — erweitert alle Zellenreferenzen in ihre übergeordneten Zellen.

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

RemoveDuplicatesTask

Entfernt exakt doppelte Formen aus der Zeichnung.

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

MergeTask

Führt überlappende Polygone auf jeder Ebene mit einer booleschen Vereinigungsoperation zusammen. Kreise und andere gekrümmte Formen werden zuerst mit der bereitgestellten Resolution tesseliert.

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()
ParameterTypBeschreibung
drawingDrawingZielzeichnung
resolutionResolutionEinstellungen für Kurventessellation
fill_ruleFillRuleWicklungsregel zum Bestimmen des Polygoninneren
holes_modeHolesModeDarstellung von Löchern in Ausgabepolygonen
edge_policyEdgePolicyBehandlung berührender/überlappender Kanten
dont_explodeboolWenn True, komplexe Ergebnispolygone nicht zerlegen
process_verticallyboolWenn True, Zellen von unten nach oben verarbeiten (für hierarchische Zeichnungen)

ClosePolylinesTask

Schließt alle offenen Polylinien, indem ihre Endpunkte verbunden werden.

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

JoinPolylinesTask

Verbindet Polylinien, deren Endpunkte sich berühren oder innerhalb der Toleranz liegen.

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

PolylineToPolygonTask

Konvertiert geschlossene Polylinien in gefüllte Polygone.

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

ExplodeToPolygonTask

Konvertiert alle Formen (Kreise, Kreisbögen, Ringe, Ellipsen, NURBS) durch Tessellation in einfache Polygone/Polylinien.

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

RemoveZeroWidthPolylinesTask

Löscht alle Polylinien mit einer Breite von null.

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

RemoveOverlappingPolylinesTask

Entfernt Polyliniensegmente, die andere Segmente auf derselben Ebene exakt überlappen.

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

FixSelfIntersectingPolygonsTask

Erkennt und repariert selbstschneidende Polygone, indem sie in gültige, nicht selbstschneidende Teile aufgeteilt werden.

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

Enums

FillRule

Wicklungsregel, die beim Zusammenführen bestimmt, welche Bereiche „innerhalb“ eines Polygons liegen.

WertBeschreibung
FillRule.NonZeroNicht-Null-Wicklungsregel (Standardkonvention in CAD/EDA)
FillRule.EvenOddGerade-Ungerade-Regel (alternierende Füllung)

HolesMode

Steuert, wie Löcher in zusammengeführten Polygonen in der Ausgabe dargestellt werden.

WertBeschreibung
HolesMode.ExtractLöcher als separate Polygone darstellen
HolesMode.LinkLöcher mit Brücken der Breite null an die äußere Begrenzung anbinden
HolesMode.SplitPolygone aufteilen, sodass in der Ausgabe keine Löcher erscheinen

EdgePolicy

Steuert, wie deckungsgleiche oder sich berührende Kanten beim Zusammenführen behandelt werden.

WertBeschreibung
EdgePolicy.MergeSich berührende Kanten zusammenführen

PolygonSnapMode

Steuert, wie Stützpunkte am Raster ausgerichtet werden.

WertBeschreibung
PolygonSnapMode.NearestJeden Stützpunkt am nächstgelegenen Rasterpunkt ausrichten