
On 10/03/14 00:17, Krzysztof Kosiński wrote:
This kind of operation has a lot of use cases besides vinyl cutting, but right now there is no code to do this reliably.
I currently do it by hand and it never failed me.
The existing boolean operations code is rather fragile and doesn't work for some corner cases.
Is there a bug report for these corner cases? https://bugs.launchpad.net/inkscape/+bug/168158 seems to be fixed in trunk, at least precision is better than 0.001% when I try the provided example.
Besides, the code for glueing all the steps I make by hand at the moment into a bigger algorithm seems independent from the implementation of the boolean operations, so I could do that first and later see if I run into problems due to corner cases.
I suggest the following tools: 1. Object ->Clip (/Mask) -> Replace by intersection
Check each selected object for clipping (masking), release the clip and replace the object by the intersection with the clip
2. Path -> All strokes / objects to path
Apply stroke to path to all selected stroked objects. Duplicate them before, if they have a visible fill.
3. Path -> Flatten selection
Use the difference function to remove the shape of the topmost object from all underlying objects.
I'm not a native English speaker, so I have no idea if the names sound strange.
Regards, Alexander