This is a bit hard to explain, so I've attached an example. It's the (greatly simplified) result of Inkscape's "Trace Bitmap", and comprises two hollow circles made up of a single path.
I want to separate these shapes from each other, so I can, eg. colour them separately or simplify them. But if I do Path > Break Apart then ALL the elements of the path are broken apart, including the paths around the interior of the circle, so they cease to be hollow. I need to select all the paths in a circle and do Path > Difference to recover the original shape.
In the original image there are thousands of points and a lot of detail, so manually doing the difference of all the non-simply-connected shapes gets a bit tedious. So does cloning a path and deleting everything but the detail I want to rework (once for each detail...).
Ideally I'd like to select all the points on one of the circles and say "separate this from all the other paths, but keep it intact." Is there a better way to do this?
I'm using Inkscape 0.48.4 r on Ubuntu 12.10 amd64.
Separating disconnected parts of a path
Separating disconnected parts of a path
- Attachments
-
- Test.svg
- (3.17 KiB) Downloaded 207 times
Re: Separating disconnected parts of a path
Those circles make up a compound path, where each part is "equal".
It's not a group of paths with "holes cut in",
so there is not a way you could select all those "hollow" paths by clicking on parts of the paths they are made up of.
I can think of ways how it would be implemented in the program if ever,
but yet it's more of a manual work.
Namely, breaking those paths apart, and, creating paths with "holes" from those simple ones.
For that, a faster way then booleans, is combining the right paths back together.
In the attached svg there is an example of a path that can be separated 3 times faster by the combining, than with booleans
-and the result is more accurate-.
Another way would be, to duplicate the original path for each part, and, selecting the right parts with the node editor tool,
then inverting the selection and deleting those nodes.
However inverting the selection doesn't seems to work in edit mode in inkscape.
In blender that second method works fine.
It can import svg files, you can separate the imported paths to parts quickly, but it cannot export svg-s by default.
It's not a group of paths with "holes cut in",
so there is not a way you could select all those "hollow" paths by clicking on parts of the paths they are made up of.
I can think of ways how it would be implemented in the program if ever,
but yet it's more of a manual work.
Namely, breaking those paths apart, and, creating paths with "holes" from those simple ones.
For that, a faster way then booleans, is combining the right paths back together.
In the attached svg there is an example of a path that can be separated 3 times faster by the combining, than with booleans
-and the result is more accurate-.
Another way would be, to duplicate the original path for each part, and, selecting the right parts with the node editor tool,
then inverting the selection and deleting those nodes.
However inverting the selection doesn't seems to work in edit mode in inkscape.
In blender that second method works fine.
It can import svg files, you can separate the imported paths to parts quickly, but it cannot export svg-s by default.
- Attachments
-
- TestII.svg
- (41.76 KiB) Downloaded 199 times
Re: Separating disconnected parts of a path
I think I understand what you're saying, but then it's possible to simply delete all the nodes that make up one hollow circle and the other one remains intact. So even though it's a single compound path, they can still be *partially* separated without every last sub-path being completely broken apart. It's just annoying that to achieve this separation, you have to (a) clone the entire path and (b) delete everything except the part you want. I thought there might be a better way.
Re: Separating disconnected parts of a path
Definitely. Inksacape is missing the lasso node select and the invert selection on the nodes, which in blender is just a key combination away.
If those will be implemented, a "create new object from selected nodes and delete from parent" function would be even more handy.
If those will be implemented, a "create new object from selected nodes and delete from parent" function would be even more handy.