4

I have a hexagon based on one common side, repeated. The single side is a <g>roup of a <path /> and transformed <use />.

I want to fill the inside of this virtual hexagon, but am unable to.

Indeed the hexagon is many <use /> tags grouped and transformed, so this not working right-off-the-bat makes sense. I have tried doing a path union with all objects selected, and have tried using the Combine path feature. However, in either case, the path entities in the object explorer remain independent, and filling any object still fills individual path segments, not the net hex shape as a whole.

Below you can see the many objects:

svg path and use objects

Even after trying to exec "Combine path", filling still looks like:

enter image description here

What I'm after is to be able to combine those paths, and fill with a raster image:

enter image description here

I have a few helpful references:

  1. inkscape svg, as shown above
  2. raw web svg output, from which above svg is derived
  3. my fun little tessellation app, which inspired this problem :)

Any tips or tricks would be much appreciated.

2 Answers 2

2

What you need is a closed path, combined with the circle in the middle.

A quick and dirty method is to use the Fill Unbounded Areas Tool (aka the Bucket fill tool).

Zoom in on the shape to make it large. The bucket fill tool in Inkscape depends on the on-screen rendering of the shape, then click inside it with the tool.

Example

enter image description here

The longer method would be to join the two end nodes of each segment to the other end nodes of the other segments, to create a closed path.

Using the Edit Paths by Nodes tool F2, hold down Shift and select two adjoining segments, then click and drag the tool over the end nodes to be joined, and hit the Join Selected Nodes button in the Control Bar along the top. Repeat for all segments until you have one closed path. Don't forget to join the two final open end nodes to make a complete closed path.

enter image description here

Next, select the circle and click Path > Object to Path, then reverse the direction of the path by clicking Path > Reverse.

Select all Ctrl+A, then click Path > Combine

Now you can set the fill attribute of the completed shape.

6
  • If the end nodes of each sub-path overlap, then you can select all nodes with ctrl-A, then join all end-nodes with Shift-J, and it should work. related answer
    – Juancho
    Commented Dec 9, 2019 at 14:05
  • @Juancho, yes that would save some time.
    – Billy Kerr
    Commented Dec 9, 2019 at 17:29
  • incredible. thank you so much. can't wait to try this!
    – cdaringe
    Commented Dec 10, 2019 at 7:59
  • Nodes don't need to be selected individually, just select them all. The closest ones will be joined. However, this is a great case for the 'rotate copies' LPE - and then, after conversion to path, some Boolean magic (i.e. Path > Union, Path > Break apart, Path > Union, then subtract the center circle).
    – Moini
    Commented Dec 10, 2019 at 22:46
  • for others whose SVG have <use /> nodes, inkscape at 0.x would not convert <use /> nodes to <path /> objects, but 1.x does. upgrade, such that Object to path works!
    – cdaringe
    Commented Dec 13, 2019 at 6:28
0

you can also use LPE fill between many.

  • creat new geometry (this does not matter it gets overwritten)
  • add LPE fill betwen
  • copy all your geometry you want to fuse
  • past it into the field in path effect panel
2

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.