MoI discussion forum
MoI discussion forum

Full Version: Array on two curves?

From: krass
17 Aug 2021   [#1]
colleagues, I ask for your help.
Either I am doing it in the wrong way or I don’t know any subtleties. ((

Is it possible to do this along two different curves - the outer ellipse and the inner circle?

Attachments:
array_ellipse.3dm

Image Attachments:
Screenshot_45.jpg 


From: Michael Gibson
17 Aug 2021   [#2] In reply to [#1]
Hi krass, one possibility - since an ellipse is a circle that has been scaled in one direction you could generate a circular array and then use Transform > Scale > Scale 1D to ellipsify it. That would go something like this:

Draw in additional reference circles:


Transform > Array > Circular:


Transform > Scale > Scale 1D:


Boolean difference:


Another possibility for a general "array between 2 curves" would be to use sweep or loft to build a surface between 2 curves and use that as the target surface for Flow. The base surface for the Flow would be a plane with a straight array along it in one direction.

- Michael

Attachments:
array_ellipse2.3dm

Image Attachments:
krass_ellipse1.jpg  krass_ellipse2.jpg  krass_ellipse3.jpg  krass_ellipse4.jpg 


From: krass
17 Aug 2021   [#3] In reply to [#2]
Michael, thanks for the answer!

Yes, the solution you suggested I tried at the very beginning.
But, unfortunately, this solution gives a very approximate result, there is no exact match with the array of points (which were formed earlier as an array along a curve, an ellipse) ...

Well, well, let it be as it is ... I will correct it manually;)))

Image Attachments:
Screenshot_52.jpg 


From: Michael Gibson
17 Aug 2021   [#4] In reply to [#3]
Hi krass, if you need to match another array along curve maybe a good way would be to replicate a point object with array along curve along each one, and then you can use those points to snap on to with Transform > Orient > Orient line to line to make copies.

- Michael

Attachments:
array_ellipse3.3dm


From: krass
17 Aug 2021   [#5] In reply to [#2]
I seem to have found a solution intuitively.
Not sure why, but it worked.

So, I am creating a circular array as you said.
At the same time, I had to make the rectangle a little higher in height.
And then I scale it horizontally to the outer border of the balls... and all the rectangles are located exactly opposite the balls.



Now I can trim off the extra length of the rectangles - the orange ellipse and the green circle.
It seems to have worked out as it should!

The only thing is that after trimming the rectangles will no longer be rectangles. In my case, this is insignificant, but if these are curves of a different shape, this method will no longer work, alas ..

Image Attachments:
Screenshot_54.jpg  Screenshot_55.jpg  Screenshot_56.jpg  Screenshot_57.jpg 


From: krass
17 Aug 2021   [#6]
Michael, thank you so much for your advice and support!
Everything worked out great! Voila!

Image Attachments:
Screenshot_59.jpg  Screenshot_60.jpg 


From: Michael Gibson
17 Aug 2021   [#7] In reply to [#6]
Looks great krass!

- Michael
From: BurrMan
18 Aug 2021   [#8] In reply to [#6]
I used array of just a single line, extending past the outer ellipse
Thren I can isect the outer ellipse with those lines to generate points.
Then I offset the outer ellipse in to the desired distance and trim the lines down to length
Then I run "FatLines" plugin to generate rectangles that are even on ends
Then I create a sphere on the side and run "CopyToPoints" on the sphere to get the spheres on the outer ellipse