6
$\begingroup$

I want to set the pivot of all the arrows to their bottoms like the pic below. The method of "origin to geometry" does not help in this case. I have like 6000 arrows, so... Any ideas?

enter image description here

$\endgroup$
4
  • 1
    $\begingroup$ It appears that the distance between your arrows is equal, couldn't you simply edit a single arrow and use two array modifiers for duplication. (apply after edit if needed)? $\endgroup$
    – stacker
    Jul 7, 2016 at 9:36
  • $\begingroup$ You could link object data between arrows and edit point of origin for one of them; keep in mind though that distance between them can change, however this may be inefficient and probably substituting arrows with arrayed ones may be better. $\endgroup$
    – Mr Zak
    Jul 7, 2016 at 9:41
  • $\begingroup$ are all the centers currently at the same position relatively to each arrow ? $\endgroup$
    – lemon
    Jul 7, 2016 at 9:43
  • 1
    $\begingroup$ @stacker Yes that's exactly what I have done. After applying, I made the arrows to be separated objects pressing "P" and their origin all became to the same as the first one. I then set "origin to geometry" and all the origin changed to the their geometry centre now... $\endgroup$
    – Juii
    Jul 8, 2016 at 0:49

6 Answers 6

3
$\begingroup$

Well I'm not sure of a good way to do this, you can try to select all your arrows, and then select the one with the correct origin, then press CTRL+L, and select "Object Data" from the list.. Unfortunately this is not ideal, as it also copies all other object data such as materials and UVs, effectively making all the arrows instances of the active one. enter image description here

You can then select all the arrows again, then press U on the keyboard, and select "Objects and Data" from the list, to make all the arrows mesh data single users again, and not instanced.. enter image description here

$\endgroup$
5
  • 1
    $\begingroup$ You can complete by "make single user" after "make link"... so it works $\endgroup$
    – lemon
    Jul 7, 2016 at 9:53
  • 1
    $\begingroup$ ok... comment and edit at the same time : ) $\endgroup$
    – lemon
    Jul 7, 2016 at 9:53
  • $\begingroup$ Thanks haha :) actually this seems to work pretty well. :D $\endgroup$ Jul 7, 2016 at 9:55
  • 2
    $\begingroup$ More importantly: is there a good reason for the arrows to NOT share a single mesh datablock? $\endgroup$
    – Mutant Bob
    Jul 7, 2016 at 16:00
  • $\begingroup$ It might actually benefit from sharing a single data-block yeah. $\endgroup$ Jul 7, 2016 at 16:02
2
$\begingroup$

You can use advanced align tools to change objects origin points based on objects bounding box x/y/z, min/max/center etc. values

$\endgroup$
1
  • $\begingroup$ Script is here but it doesn't work for 3.1 (addon cannot be found after activation, e.g. not in the contextual menu which is the equivalent of the the Special Menu mentioned in the documentation). $\endgroup$
    – mins
    Jul 15, 2022 at 10:56
0
$\begingroup$

In blender 2.93 you can select the cursor set it where you want the origin to be, then go into the Object tab and set each object origin to the cursor. That will set the origins where you want them. Unfortunately, you have to set each origin individually, so it would be a pain to use if you have more than a few objects.

enter image description here

$\endgroup$
0
$\begingroup$

For 2.8+ users, there is an addon introduced since 2.81 that is documented here called Align tools that allow to perform stuff like this.

As an example, I have this bunch of cubes :

Cubes whose origins are all over the place

As you can see their origins are all over the place. The first thing I do is set each object's origin to each object's center by Object>Set Origin>Origin to Geometry :

Cubes with their origin to geometry

Then I can align all the objects on the Z axis with Align tools. If the addon is not activated yet, you can activate it on the preferences, it comes along with Blender since 2.81. Once activated, we can access it on the N-panel>Item>Align Tools.

Align tools interface

With all the cubes selected, clicking on the Z button under Align Location align all the cubes on the Z axis (In my case, it is the Z axis but it depends on the setup, in the O.P.'s question for instance, it should be the X axis):

Cubes aligned in the z axis

Then I select one of the cubes, go to Edit Mode and select its bottom face and press SHIFTS then choose Cursor to Selected :

Cursor to the bottom face of one cube

Go back to Object Mode and select all the cubes again and click on the Advanced button in Align Tools :

Advanced button

To set each cube's origin to its bottom, set the first option to Pivot (which will move the pivot point instead of the object's geometry), the Align Location to Z, the align target to Active and the Destination Point to cursor (which aligns the pivots to the cursor):

settings

Cubes with origin at their bottom

I hope this would help someone.

I would like to point out that this method does not allow to retrieve/keep the cubes original position since I assumed that the objects are supposed to be scattered using particles or GeoNodes so that their positions doesn't matter much.

$\endgroup$
-1
$\begingroup$

You can join objects. Then set origin and then unjoin them.

$\endgroup$
2
  • 1
    $\begingroup$ I believe that will result in same predicament as question. All separated objects will have the once joined object origin. $\endgroup$
    – batFINGER
    Jan 27, 2020 at 11:21
  • $\begingroup$ @batFINGER sorry, i messed that. $\endgroup$ Jan 27, 2020 at 21:04
-1
$\begingroup$

In 2.82, you can select all objects then set origin to geometry and it will set each objects origin to its own geometry... But some may be a little off. Before doing anything else, look to the lower left of the screen where that little gray box pops up when you do any action. In that box you need to change "Median Center" to "Bounds Center". At that point, if you want to change the origin to the bottom of each object, go into edit mode while they are all selected and move them all up at once to where you want.

$\endgroup$
0

You must log in to answer this question.

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