Wie kann man die Gruppierung aufheben und eine Pfaddifferenz für mehrere Objekte in Inkscape durchführen?

Ich habe ein paar Formen (mehr als 500, um genau zu sein), die Gruppen von Pfaden sind. Wie im Bild unten sehen Sie nur die äußere Form und alle Löcher sind mit der äußeren Form gruppiert.

Um das gewünschte Ergebnis zu erzielen, löse ich einfach die Gruppierung des Objekts auf, wähle Pfad-> Unterschied und erhalte die gewünschte Form.

Links: Wie es nach dem Import aussieht, Mitte: Die Formen in der Gruppe, Rechts: Ergebnis nach Aufhebung der Gruppierung und Differenz

Links: Wie es nach dem Import aussieht, Mitte: Die Formen in der Gruppe, Rechts: Ergebnis nach Aufhebung der Gruppierung und Differenz

Gibt es eine Möglichkeit, den folgenden Pseudocode grundsätzlich in Inkscape zu implementieren?

FOREACH GROUP g in DOCUMENT
  ObjectPaths = UNGROUP(g)
  PATH_DIFFERENCE(ObjectPaths)

Ich würde mich über jede Lösung freuen, bei der nicht mehr als 500 Mal geklickt werden muss.

Hallo. Willkommen bei GDSE. Kannst du keine Shortcuts verwenden? Strg+Umschalt+G, um die Gruppierung aufzuheben, und Strg+-, um eine Differenzoperation durchzuführen, dann TAB, um die nächste Gruppe auszuwählen. Sicher, Inkscape kann geskriptet werden, und Sie können Erweiterungen schreiben, aber das wäre eher eine Frage der Programmierung als eine Frage des Grafikdesigns.
Danke! Aber selbst mit Verknüpfungen, die 500 Mal dasselbe für mehrere Dateien tun, macht es keinen Spaß. Ich habe einige sehr hilfreiche Befehlszeilenoptionen gefunden, die mein Problem gelöst haben.

Antworten (1)

Scripting-Dokumentation ist Inkscape ist wirklich dünn. Während ich es nicht geschafft habe, dies in Python zu lösen, bietet die Befehlszeile eine Möglichkeit, dies wie folgt zu lösen:

inkscape --verb EditSelectNext --verb SelectionUnGroup  --verb SelectionDiff \
--verb EditSelectNext --verb SelectionUnGroup  --verb SelectionDiff \
#... copy and paste the line above 500 times more ... 
--verb EditSelectNext --verb SelectionUnGroup  --verb SelectionDiff \
--verb FileSave --verb FileClose \
        --verb FileQuit file.svg