To make several vertices co-planar, the usual way is to use Scale = 0 along some convenient axis, but sometimes there is no convenient axis, e.g in this case were I placed the vertices using polar coordinates:

enter image description here

How to make the selected vertices co-planar again after they have been a bit disturbed. The target plane contains the global Y axis and the average angular position of the selected set.

I understand I could rotate the vertices around Y, so that they are roughly aligned with Z, then use Scale X = 0. That's what I do, but I'm looking now for a more accurate and less fastidious method.

In a more general way, is there a method (I assume this would be a addon) to facilitate work when dealing with object constructed by angle-distance rather than distance-distance. For example a method which would allow to move the selected vertices radially by the same specific distance (e.g. move each vertex away by 2 cm from the center of the object) while keeping their angular position unchanged?

  • $\begingroup$ Totally confused by this question.The picture suggests to me they are on a plane Y=0 (or some constant) I know what polar coordinates are, not sure how you placed vertices using them. If it was done using a script for example you could relocate them. using data. I have a spherical coordinates addon somewhere. In a script with the origin at center , if you wish to move a vert dl radially, v.co = (v.co.length + dl) * v.co.normalized() for each selected vertex. $\endgroup$ – batFINGER Jan 13 '20 at 12:30
  • $\begingroup$ @batFINGER: This is a ring-like shape turned around Y. It was constructed manually by a flat closed set of segments in the say X-Y plane. A Screw modifier was added to give some angular depth around Y (e.g. 10°) and an Array modifier (using an empty to set a rotation step of 10°). Both modifiers where applied so that the object can be altered for the non symmetrical elements. The changes are mostly dealing with adjusting the angular position (e.g. forcing altered elements to be on the same radial plane), or the distance to the center. $\endgroup$ – mins Jan 13 '20 at 13:26
  • 1
    $\begingroup$ Something like i.stack.imgur.com/Jcd7p.gif $\endgroup$ – batFINGER Jan 13 '20 at 15:24
  • $\begingroup$ @batFINGER. Yes (if the move distance is the same whatever the original distance from the center -- else it would be equivalent to a Scale with the pivot point at the center, the operation I actually use for the moment). If I have an initial python code, I think I could later add several functions, like aligning vertices along a radius. $\endgroup$ – mins Jan 13 '20 at 17:13
  • $\begingroup$ Uses code as shown in first comment. Each vert is dl further from the origin along its radial. eg moving 0.1 a vector that was length 1 is now 1.1 and 10 to 10.1, hence not the equivalent of scale. $\endgroup$ – batFINGER Jan 13 '20 at 17:59

This looks like a job for Custom Orientations. ('+' in the Orientation dropdown, after making a defining selection)

  • To flatten to a defined plane, select 3 vertices which define the plane, (or more, for an averaged normal), create a Custom Orientation from them, and with a suitable pivot point, SZ0. I usually set the pivot to 'Active Element', and make a vertex I want to lie in the plane active.
  • To translate elements in a defined direction, select 2 vertices which define the direction, and create a Custom Orientation from them. Then it's GY (optional numerical entry) on selected elements.
  • To straighten vertices to a line, select 2 vertices which define the line, and again, with a suitable pivot, it's SShiftY0

etc, etc.

If you do this a lot, it's probably worth creating a keyboard shortcut for the addition of a Custom Orientation, and maybe setting that operator to 'Overwrite Previous', and/or 'Use after Creation'.

  • 1
    $\begingroup$ Thanks. That's not a practical method. If I needed to move all (radial) sets of vertices by 2 cm away from the center of symetry, I'd have to define a new orientation for each set (36). And for the direction of the move it would be difficult or impossible to find two vertices aligned with the desired direction. I'm looking for a simple solution which takes advantage of the polar coordinates. Said otherwise I would like to say: Take this set of vertices at 30°, move them away by 2 cm, keeping them at 30°. Or take all sets, move them away by 2 cm, preserving their angle. $\endgroup$ – mins Jan 13 '20 at 12:18

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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