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?
-
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$– stackerJul 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 ZakJul 7, 2016 at 9:41
-
$\begingroup$ are all the centers currently at the same position relatively to each arrow ? $\endgroup$– lemonJul 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$– JuiiJul 8, 2016 at 0:49
6 Answers
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.
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..
-
1$\begingroup$ You can complete by "make single user" after "make link"... so it works $\endgroup$– lemonJul 7, 2016 at 9:53
-
1
-
$\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$ 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
You can use advanced align tools to change objects origin points based on objects bounding box x/y/z, min/max/center etc. values
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.
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 :
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
:
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
.
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):
Then I select one of the cubes, go to Edit Mode and select its bottom face and press SHIFTS then choose Cursor to Selected
:
Go back to Object Mode and select all the cubes again and click on the Advanced
button in Align Tools
:
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):
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.
You can join objects. Then set origin and then unjoin them.
-
1$\begingroup$ I believe that will result in same predicament as question. All separated objects will have the once joined object origin. $\endgroup$ Jan 27, 2020 at 11:21
-
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.