Inkscape Community

Help Using Inkscape => Inkscape Beginners' Questions => Topic started by: kronos on August 22, 2017, 08:02:31 AM

Title: Tiled clones
Post by: kronos on August 22, 2017, 08:02:31 AM
I would like this pattern which repeats itself but as you can see with tiled clones edges are not met.
I've created 15 clones but they are only 4 shown. How so ?
How to make that vertices of smaller squares are on previous square?
Title: Re: Tiled clones
Post by: brynn on August 22, 2017, 12:24:11 PM
I don't know why it only produces 4 clones.

To make the corners of the smaller square fit inside the larger square, so that the corners of the smaller one touch the sides of the larger one....  I guess you'd have to calculate the correct percentage of difference.

For the square in your file, it looks like it's rotated by 20 degrees.  So I made a duplicate, and rotated 20°.  Then I observe that the duplicate needs to have the same dimensions as the original.  So  I scale it to the same size as the original.  I snapped centers, and like magic, the corners are touching.

So to use Tiled Clones for this, we need percentages.  So if I calculated it right, 22% is the magic number for scaling (I rounded to the nearest unit - original answer is 21.98%).

This is exactly why I hardly ever use Tiled Clones.  You either have to be a math whiz, where you can figure all this out in your head.  Or, by the time you figure it all out on paper, to get the right numbers to use in the dialog, I could have made the darn thing by "manually" duplicate-scale-snap-rotate.

Anyway, after all that, I still haven't tested.  But I'm pretty sure it's the right percent for the Scale tab, assuming you used 20° to rotate.  If it wasn't 20° then 21.98% is not the right value for scaling.
Title: Re: Tiled clones
Post by: Lazur on August 22, 2017, 03:40:53 PM
You either have to be a math whiz, where you can figure all this out in your head.  Or, by the time you figure it all out on paper, to get the right numbers to use in the dialog, I could have made the darn thing by "manually" duplicate-scale-snap-rotate.

The tiled clone panel doesn't really give an option to "be a math wiz". Even if you know the scale factor there is no way you can type in more than 2 digits.

For example if you are after 20° rotations, the scale factor is ((1+(tg(20°))^2)/(1+(tg(20°))^2+2*tg(20°)))^0,5*100%=78,020600870987....%.
Which is -21,9793991 in the dialog.

I'd also only "semi-automate" the process. It's faster and more precise. Sadly there is no interest in the developers team to make inkscape more "cad-like" or cope with procedural drawing (as far as I understand).
Title: Re: Tiled clones
Post by: brynn on August 22, 2017, 05:26:08 PM
Well, for me, someone who can convert the units they want to use to percent, in their head, is a whiz!  (Like for the calculations above, it was 100 - ((157.238 / 201.534) * 100).  And then I debate back and forth, which number is divided into the other.  And then I'm debating whether it's * 100 or / 100.  And is it 100 - that result or that result - 100.)   (Hah!  Instead of "math whiz" maybe I should just say "young"!)   

And then I can never figure out Shift or Scale X per row or per column and Shift or Scale Y per row or per column, and positive or negative.  OMG, it's so frustrating.  It seems like there should be a simpler way.

Off-Topic: show
Sadly there is no interest in the developers team to make inkscape more "cad-like" or cope with procedural drawing.

I'm curious where you got that impression.  I haven't noticed that reluctance.  In fact....well not fact, because I won't be able to find the message to back it up.  But it seems like I read something on the mailing list about it, that was not negative.  Something about some extensions for CAD-like features.

It's true that developers don't want to develop Inkscape in the direction of being a free CAD replacement.  Inkscape's direction is to be as purely as possible, SVG editor.  So if something doesn't have an SVG standard, it's not likely to get into the code.  Certainly not in the core code.  But I'm sure I've heard something about "CAD" extensions.

Could you tell me what you mean by procedural?  I think you told me once before, but I forgot.  (Because to me, Inkscape seems to already be procedural.)
Title: Re: Tiled clones
Post by: Lazur on August 22, 2017, 06:06:36 PM
Off-Topic: show
The core of inkscape prevents it to work as a cad program. Haven't seen it stated as per se, but when having a conversation about the ghosting issue over 80000px coordinates on the irc, it was mentioned that it's even a good sign since the allocation(?) prevents from drawing in such a large scale.
The other thing is the rounding errors and transformations everywhere. Cad programs use polylines and arcs for a reason. Or prefer nurbs over Béziers.
If you look at affinity designer (https://vimeo.com/172731032)'s demo, at 0:48-0:52 that zoom cannot be matched -to name one feature that won't be implemented due to technical limitations.

Parametric in the meaning that you can redefine the shape by editing the input values.
Like a "tiled clone path effect" could do this case. Which could take constraints of scaled corners on top of segments/scale factor&rotation value in a dialog, in a live way. Lpe-s are the closest or filters to those, but each lacking the flexible input structure.
Grasshopper (https://www.youtube.com/watch?v=DYiRwazbIFA) is the only one I know of that can work alike. A node-based editor is almost a must.
Title: Re: Tiled clones
Post by: flamingolady on August 22, 2017, 08:44:49 PM
Well, my suggestion would be to use interpolation.  I've done it successfully in the past.  Have to do it in a couple of stages as for some reason, it doesn't work as well when selecting 3 objects.  I'd break it into selecting the back lg square and a middle square (turned 20 degrees), interpolating value of 7.  Then use the middle one and a smaller one, (turned 20 degrees), again interpolating value of 7. 
But, I just tried it, turns out diff than what I expected.  Output has the larger sqs on top, instead of the bottom.  not sure if I did something wrong, or if it's a pgm chg, a lot of things I used to do in .48 behave differently in .92.... sigh.
Title: Re: Tiled clones
Post by: kronos on August 23, 2017, 01:28:36 AM
With interpolate sub-paths it's more convenient but you can't rotate smaller path (to place vertices on larger one) in Edit on canvas mode.

For some reason my viewport is not showing icons in allign tool.
Title: Re: Tiled clones
Post by: Lazur on August 23, 2017, 01:45:01 AM
The object order in an interpolation is related to either the selection order of the two objects or their z-order -haven't checked again, I always miss those. However this issue was adressed by the restack z-order/reverse extension thank's to Suv.

If you use the interpolate subpaths path effect the scale factor is linear between the copies, and not exponential as with the tiled clones. Atop on that, the rotation won't be the same between the copies as the nodes are just distributed evenly in the distance.
By linear interpolation you cannot recreate the exponential spiral of the original.
(It can lead to an involute (https://inkscapecommunity.com/ic_gallery/displayimage.php?pid=355).)
Title: Re: Tiled clones
Post by: kronos on April 11, 2018, 04:26:45 AM
I've just checked and tiled clones bug still haven't been fixed in 0.92.3.
Title: Re: Tiled clones
Post by: Lazur on April 11, 2018, 10:41:02 AM
BUT

there is progress -Jabiert is in the development of a measuring lpe (and finally the old ghosting issue is gone for objects over the 80000px coordinates).
Title: Re: Tiled clones
Post by: brynn on April 12, 2018, 01:24:54 PM
Has anyone confirmed that the bug has been reported?  After all, it can't get fixed if developers don't know about it.

If you have found the bug report, please post a link here, so other people can benefit.  If you can't find it, please make a new bug report.

What is the bug, in this case?  Is it something about the specific Symmetry that you were trying to use, in Tiled Clones dialog?  Or is it about having only percent as available units?

I never did actually try the solution I proposed in my first reply.  But I thought the problem was using the wrong scale amount.  Trying now....

Actually, on re-reading this thread, I'm not clear what your goal is.  The image in your first message is different from the one where you tried Interpolate Sub-Paths.  Yes, they are similar in appearance, but mathematically different...or different vectors.



Ok, so here's the result using my calculations from Reply #2.

 [ You are not allowed to view attachments ]

So you can see that it does a great job for the first square.  But the others are off.  And not only off, but they are off by a little bit more each time.  So that implies to me, that maybe we need to use an Exponent value....which I never have done before.  But let's see if I can do it by trial and error.

(I don't know why the stroke width is also being scaled, because I have that disabled on the Selection tool control bar.  Is there some other option for tiled clones?  Or should we just use fills without strokes.  And then afterwards, remove the fill and add stroke??)

No, exponent is not the answer, because the exponent value affects all of the clones.  So let's say I use 0.9 for the exponent value.  The first smaller square becomes larger than the original, and all the rest of the clones are still not close to touching each other.

I notice (the first time I noticed this, actually) there is another option on the Scale tab, called Base.  According to the tool tip, it's for a logarithmic spiral.  The word "spiral" leads me to think that might be exactly what is needed.  But all I can do is trial and error....

Oh look, 3.1 for the Base value is very close!  Still not quite right though, because as they get smaller, they don't touch the edges anymore.  But if I try 3.0, then the first smaller clone is too large, and with 3.2, it doesn't quite touch (too small).

 [ You are not allowed to view attachments ]

Will have to toss this off to someone with better math skills than me.  It seems that what you are trying to do is not so easy.

And I will repeat my sentiment, that in the time it takes to use Tiled Clones dialog by trial and error, I could have used Duplicate - Scale - Rotate - Snap, and finished the drawing a few times over!
Title: Re: Tiled clones
Post by: brynn on April 12, 2018, 01:28:07 PM
Idk, maybe tweaking Scale X and Y and/or Rotation (along with Scale Base) would make it work.  But I'm out of time.  If I need to draw this, I will do it the fast way, haha  :D
Title: Re: Tiled clones
Post by: brynn on April 12, 2018, 01:35:15 PM
Oh no!  It's not that they don't touch the edges as they get smaller.  It's that after clone #5, then clone #6 gets larger again!

The math is definitely over my head!!
Title: Re: Tiled clones
Post by: xiaoyu on October 02, 2018, 12:09:06 AM
I can't speak English, but I can understand it
 [ You are not allowed to view attachments ]