1
$\begingroup$

I have an oval and a couples of a planes I want to distribute with the same distance between them.

The oval is like this: enter image description here

The planes like this: enter image description here

So I tried already a lot of things. At first I started with cubes using arrays but they deformed. So I use the array and curve modifier to put planes into the oval and then parent the cubes. And that solved the problem of deformation but as I get closer of the X axis (X=0) the planes/cubes/whatever gets closer between each other compared to the near section of Y=0.

Example: enter image description here

The idea is to copy this structure all around the oval (the distances between the exterior vertices are 3.10m): enter image description here (Yes, the first image got more planes at the base because I need them for references)

$\endgroup$

4 Answers 4

3
$\begingroup$

Dupliframes may be a good way for you here

First, ensure that the origin of your object is placed at the point of the object's mesh which you wish to lie on the curve. To make things easier, align your object so that, untransformed, the local axis you wish to follow the curve is on world Y. (You can change this later, but it's nice not to have to.)

On the plane (or tower) Object Properties > Duplication > check 'Frames'

On the curve, Curve Data > check 'Path animation' and the number of duplicates required in 'Frames', and check 'Follow' if you want the orientation of the duplicates to be tangential to the curve.

Be careful to apply any Object Mode scaling you may have put on your curve.

Having parented the object to the curve 'Clear its Origin' (AltO, (letter'O')) You can do this at any time, to bring the object's and its duplicates' origins to lie on the curve).

If you need to correct the rotation of the master and its duplicates, with the pivot point set to 'Individual Origins', rotate the master object around its own pivot point.

enter image description here

I'm confident the object centers are parametrically evenly spaced on the curve - (the tool gives a constant speed in animation) .. but there is a difference in spacing if you use the straight-line approximations to the curve, since, near Y=0 the straight line 'cuts the corner' more than near X=0.

enter image description here

$\endgroup$
7
  • $\begingroup$ I don´t know how to put images in a comment, but this is what happens to me when I do dupliframes. imgur.com/a/aIBmpmd (The first one is without follow, the other 2 with follow. I don´t care about that they are moving to one side because I can move them later to their position y suppose) $\endgroup$
    – user56193
    Commented May 7, 2018 at 12:47
  • $\begingroup$ @user56193 It is confusing, at first, agreed. I've expanded my answer a little more. $\endgroup$
    – Robin Betts
    Commented May 7, 2018 at 17:14
  • $\begingroup$ I recorded a little video to show what I am doing and what I get. (The last modification is the Alt + O) mega.nz/#!KxQC1AZJ!e1v_NmrxcTwE_VQVDAEcJLYC7xd83NChDRe21OeemRA $\endgroup$
    – user56193
    Commented May 7, 2018 at 19:48
  • $\begingroup$ I've looked at every way I can, but the only way I can reproduce your kind of distortion is to have un-applied non-uniform scaling on the curve. After making your ellipse to your satisfaction, (preferably using scaling in edit mode, not object mode, so the scaling is in the mesh, not part of the object transform) hit Ctrl-A and apply scale, anyway. I find it easier to tweak my dupli's pivot and orientation at the world origin. The pivot will be moved to the curve by the parenting and Alt-O, taking the mesh with it. Apply the tower's scale, too. The Alt-O is on the child, not the parent. $\endgroup$
    – Robin Betts
    Commented May 8, 2018 at 6:24
  • $\begingroup$ Ok, the scaling was one of the problems. Now it seems a little better, but still with new problems. Now I´m having this (this first one is without alt+O): imgur.com/a/J4sjlOV Is there a way to give an array modifier to the tower so I can give the space between them as i want, and then curve the lines of towers without losing that distance? Is the only way I found to create that distance for now. (If after the array i give a curve modifier they deform a lot) $\endgroup$
    – user56193
    Commented May 8, 2018 at 14:06
2
$\begingroup$

Animation Nodes can be used where the Evaluate Spline Node with the Uniform Sampling option can be used to return equidistant points.

Evaluate Spline

Then a plane can be replicated along those splines.

Replicate

If you want them to be aligned, compute their rotation based on the tangent vector and construct matrices from that and the locations.

Align

Your structure can now be instanced along those planes using DupliFaces or any other method. Alternatively, we can instance the structure and position it directly (Which is more computationally expensive and should be avoided).

Instance

$\endgroup$
0
$\begingroup$

Thanks both for the amazings fast answers, but i couldn´t resolve the problem.

Dupliframes made the exact same things as before, it does not rotate the object and near X = 0 it repeats a lot more than near Y = 0.

So I try that animation nodes, and imagine if I´m new to blender what it seemed to me. But I copied the exact same thing as the images and nothing happens. After I do all and go to dupliframes it works as if i did nothing with the animation nodes. The closer I get is to getting some sort of divided planes sometimes in position, sometimes at the 3D cursor position.

What I did was: copy tha animation nodes, with the compose matrix, selecting the curve in the evaluate spine and the object in the output. Then I parent them and applied dupliframes. Then I activated the orange button of mesh in the animation nodes and I get, for all the duplicated of the object, a little 9x9 plane.

$\endgroup$
1
  • $\begingroup$ I've expanded my answer .. are you looking for even spacing in the straight-line approximation to the curve (even sides to a polygon), rather than even spacing on the curve itself? $\endgroup$
    – Robin Betts
    Commented May 7, 2018 at 7:43
0
$\begingroup$

Use an array modifier - with an object offset.

To start, place the tower on the outer circle and add an empty positioned at the same place as your tower. You can use snapping to align them.

  • Add an array modifier to your tower
  • Set the count to the number of towers you want
  • Disable relative offset
  • Enable object offset
  • Set the offset object to the empty you have in place

With the pivot centre set to 3D cursor, which needs to be at the centre of the circle, select the empty and rotate it. Use some math to work out the angle you want - eg. 12 towers evenly spaced around the circle is 360/12 or 30 degrees, so RZ30 will spread them evenly.

array offset by object

$\endgroup$
1
  • 1
    $\begingroup$ But i need to do it in an oval as shown in the first post. That would only work on a circle, wouldn´t it? $\endgroup$
    – user56193
    Commented May 7, 2018 at 0:43

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .