Shortcut for setting origin to vertexSet origin to vertex in edit mode?Left MB Click is setting the origin of the object“Cursor to selected” does not go to the center of selected verticesMove the origin point to the cursor in Edit ModeLock object origin to 3D cursorHow to add another option to set object origin hotkeyWhy does the object change its location after setting origin?Messed up origin pointCan't remove keyboard shortcut for vertex paintSet up shortcut for object interaction modeChanging an objects origin just changes its location

How to generate binary array whose elements with values 1 are randomly drawn

What is the term when voters “dishonestly” choose something that they do not want to choose?

Worshiping one God at a time?

Help prove this basic trig identity please!

I got the following comment from a reputed math journal. What does it mean?

Is there a creature that is resistant or immune to non-magical damage other than bludgeoning, slashing, and piercing?

Does the attack bonus from a Masterwork weapon stack with the attack bonus from Masterwork ammunition?

What exactly term 'companion plants' means?

PTIJ: Do Irish Jews have "the luck of the Irish"?

How are passwords stolen from companies if they only store hashes?

How to terminate ping <dest> &

Do I need to be arrogant to get ahead?

Using Past-Perfect interchangeably with the Past Continuous

Is it insecure to send a password in a `curl` command?

What are substitutions for coconut in curry?

gerund and noun applications

Would it be believable to defy demographics in a story?

Recruiter wants very extensive technical details about all of my previous work

Should I use acronyms in dialogues before telling the readers what it stands for in fiction?

How is the partial sum of a geometric sequence calculated?

Calculate the frequency of characters in a string

Practical application of matrices and determinants

Can other pieces capture a threatening piece and prevent a checkmate?

Should I be concerned about student access to a test bank?



Shortcut for setting origin to vertex


Set origin to vertex in edit mode?Left MB Click is setting the origin of the object“Cursor to selected” does not go to the center of selected verticesMove the origin point to the cursor in Edit ModeLock object origin to 3D cursorHow to add another option to set object origin hotkeyWhy does the object change its location after setting origin?Messed up origin pointCan't remove keyboard shortcut for vertex paintSet up shortcut for object interaction modeChanging an objects origin just changes its location













5












$begingroup$


I find myself doing the following quite often:



  1. go into edit mode

  2. select a single vertex

  3. press Space to enter the search menu

  4. type cur


  5. select Set cursor to active



    Set cursor to active



  6. leave edit mode

  7. press Shift+Ctrl+Alt+C to get the set origin choices


  8. Choose Set origin to 3D cursor



    Set origin to 3D cursor



This seems like a very tedious process to me. I'm sure there's a shorter version of setting the origin to a vertex. Please tell me how to make this process more efficient.



I am open to installing an Addon if necessary.










share|improve this question











$endgroup$







  • 2




    $begingroup$
    OK, but I hope somebody will give a more complete answer, because i do this steps quite often too and a way to automate it would be handy.
    $endgroup$
    – thibsert
    yesterday










  • $begingroup$
    I don't think there is any built-in way as of 2.79. There were talks it will be In 2.8. With addons it can be made faster, like with Dynamic Context menu (built-in one), see blender.stackexchange.com/a/71319/1245. There are also some 3-rd party addons as well though their workable state is to be checked
    $endgroup$
    – Mr Zak
    yesterday






  • 1




    $begingroup$
    Related: blender.meta.stackexchange.com/questions/2387/…
    $endgroup$
    – batFINGER
    yesterday










  • $begingroup$
    lol, don't be sorry.. I love that question (and especially the deleted answer) it appeals to my warped SOH. Post it whenever I'm given the opportunity.
    $endgroup$
    – batFINGER
    yesterday















5












$begingroup$


I find myself doing the following quite often:



  1. go into edit mode

  2. select a single vertex

  3. press Space to enter the search menu

  4. type cur


  5. select Set cursor to active



    Set cursor to active



  6. leave edit mode

  7. press Shift+Ctrl+Alt+C to get the set origin choices


  8. Choose Set origin to 3D cursor



    Set origin to 3D cursor



This seems like a very tedious process to me. I'm sure there's a shorter version of setting the origin to a vertex. Please tell me how to make this process more efficient.



I am open to installing an Addon if necessary.










share|improve this question











$endgroup$







  • 2




    $begingroup$
    OK, but I hope somebody will give a more complete answer, because i do this steps quite often too and a way to automate it would be handy.
    $endgroup$
    – thibsert
    yesterday










  • $begingroup$
    I don't think there is any built-in way as of 2.79. There were talks it will be In 2.8. With addons it can be made faster, like with Dynamic Context menu (built-in one), see blender.stackexchange.com/a/71319/1245. There are also some 3-rd party addons as well though their workable state is to be checked
    $endgroup$
    – Mr Zak
    yesterday






  • 1




    $begingroup$
    Related: blender.meta.stackexchange.com/questions/2387/…
    $endgroup$
    – batFINGER
    yesterday










  • $begingroup$
    lol, don't be sorry.. I love that question (and especially the deleted answer) it appeals to my warped SOH. Post it whenever I'm given the opportunity.
    $endgroup$
    – batFINGER
    yesterday













5












5








5


1



$begingroup$


I find myself doing the following quite often:



  1. go into edit mode

  2. select a single vertex

  3. press Space to enter the search menu

  4. type cur


  5. select Set cursor to active



    Set cursor to active



  6. leave edit mode

  7. press Shift+Ctrl+Alt+C to get the set origin choices


  8. Choose Set origin to 3D cursor



    Set origin to 3D cursor



This seems like a very tedious process to me. I'm sure there's a shorter version of setting the origin to a vertex. Please tell me how to make this process more efficient.



I am open to installing an Addon if necessary.










share|improve this question











$endgroup$




I find myself doing the following quite often:



  1. go into edit mode

  2. select a single vertex

  3. press Space to enter the search menu

  4. type cur


  5. select Set cursor to active



    Set cursor to active



  6. leave edit mode

  7. press Shift+Ctrl+Alt+C to get the set origin choices


  8. Choose Set origin to 3D cursor



    Set origin to 3D cursor



This seems like a very tedious process to me. I'm sure there's a shorter version of setting the origin to a vertex. Please tell me how to make this process more efficient.



I am open to installing an Addon if necessary.







shortcut 3d-cursor origin






share|improve this question















share|improve this question













share|improve this question




share|improve this question








edited yesterday







Thomas Weller

















asked yesterday









Thomas WellerThomas Weller

656617




656617







  • 2




    $begingroup$
    OK, but I hope somebody will give a more complete answer, because i do this steps quite often too and a way to automate it would be handy.
    $endgroup$
    – thibsert
    yesterday










  • $begingroup$
    I don't think there is any built-in way as of 2.79. There were talks it will be In 2.8. With addons it can be made faster, like with Dynamic Context menu (built-in one), see blender.stackexchange.com/a/71319/1245. There are also some 3-rd party addons as well though their workable state is to be checked
    $endgroup$
    – Mr Zak
    yesterday






  • 1




    $begingroup$
    Related: blender.meta.stackexchange.com/questions/2387/…
    $endgroup$
    – batFINGER
    yesterday










  • $begingroup$
    lol, don't be sorry.. I love that question (and especially the deleted answer) it appeals to my warped SOH. Post it whenever I'm given the opportunity.
    $endgroup$
    – batFINGER
    yesterday












  • 2




    $begingroup$
    OK, but I hope somebody will give a more complete answer, because i do this steps quite often too and a way to automate it would be handy.
    $endgroup$
    – thibsert
    yesterday










  • $begingroup$
    I don't think there is any built-in way as of 2.79. There were talks it will be In 2.8. With addons it can be made faster, like with Dynamic Context menu (built-in one), see blender.stackexchange.com/a/71319/1245. There are also some 3-rd party addons as well though their workable state is to be checked
    $endgroup$
    – Mr Zak
    yesterday






  • 1




    $begingroup$
    Related: blender.meta.stackexchange.com/questions/2387/…
    $endgroup$
    – batFINGER
    yesterday










  • $begingroup$
    lol, don't be sorry.. I love that question (and especially the deleted answer) it appeals to my warped SOH. Post it whenever I'm given the opportunity.
    $endgroup$
    – batFINGER
    yesterday







2




2




$begingroup$
OK, but I hope somebody will give a more complete answer, because i do this steps quite often too and a way to automate it would be handy.
$endgroup$
– thibsert
yesterday




$begingroup$
OK, but I hope somebody will give a more complete answer, because i do this steps quite often too and a way to automate it would be handy.
$endgroup$
– thibsert
yesterday












$begingroup$
I don't think there is any built-in way as of 2.79. There were talks it will be In 2.8. With addons it can be made faster, like with Dynamic Context menu (built-in one), see blender.stackexchange.com/a/71319/1245. There are also some 3-rd party addons as well though their workable state is to be checked
$endgroup$
– Mr Zak
yesterday




$begingroup$
I don't think there is any built-in way as of 2.79. There were talks it will be In 2.8. With addons it can be made faster, like with Dynamic Context menu (built-in one), see blender.stackexchange.com/a/71319/1245. There are also some 3-rd party addons as well though their workable state is to be checked
$endgroup$
– Mr Zak
yesterday




1




1




$begingroup$
Related: blender.meta.stackexchange.com/questions/2387/…
$endgroup$
– batFINGER
yesterday




$begingroup$
Related: blender.meta.stackexchange.com/questions/2387/…
$endgroup$
– batFINGER
yesterday












$begingroup$
lol, don't be sorry.. I love that question (and especially the deleted answer) it appeals to my warped SOH. Post it whenever I'm given the opportunity.
$endgroup$
– batFINGER
yesterday




$begingroup$
lol, don't be sorry.. I love that question (and especially the deleted answer) it appeals to my warped SOH. Post it whenever I'm given the opportunity.
$endgroup$
– batFINGER
yesterday










2 Answers
2






active

oldest

votes


















6












$begingroup$

Steps 3/4/5 can be replaced by Shift+S (for Snapping) / O.



Step 8 can be replaced by T. In general, you can look for underlined letters in such menus.



I also wrote an add-on to automate the process: OriginToSelection.py.



Install the add-on via User Preferences / Add-ons / Install from file, don't forget to activate it (check the box before its name). Press Spacebar and search Origin, then select Origin To Selection.



Be careful, I'm new to publishing add-ons and I'm pretty sure it can cause crashes. Save your work before using!






share|improve this answer











$endgroup$












  • $begingroup$
    The plugin is cool. Works fine so far.
    $endgroup$
    – Thomas Weller
    yesterday










  • $begingroup$
    It works but is insecure (ie, it drops an error if used in Object mode), and i can't guarantee it won't crash Blender. Using Dynamic Context as suggested by Mr Zak seems way better (and it's build-in).
    $endgroup$
    – thibsert
    yesterday










  • $begingroup$
    I wonder why the bother with the context overriding in your addon. Consider having it poll only when in 3d view and edit mode. As it is it will fail silently when run when no 3d views in screen.
    $endgroup$
    – batFINGER
    yesterday










  • $begingroup$
    I still don't understand that context thing really well. Before packing it as an addon I was running it trough the script window, so the overriding was necessary (I think?). You say it's safe to remove it ? Edit : it works well without it, thank you!
    $endgroup$
    – thibsert
    yesterday











  • $begingroup$
    Can override going the other way when testing in the text editor, ie if __name__ == "__main__": bpy.ops.my_new.operator(ctx, 'INVOKE_DEFAULT')
    $endgroup$
    – batFINGER
    yesterday


















3












$begingroup$

Little bmesh helper script.



The process to move the origin involves making the new point the origin by subtracting it from all other verts, then translating the matrix world of the object such that the global location stays the same



Run in edit mode. Moves origin to selected geo.



import bpy
import bmesh
from mathutils import Vector
context = bpy.context

ob = context.edit_object
mw = ob.matrix_world
me = ob.data
bm = bmesh.from_edit_mesh(me)

selverts = [v.co for v in bm.verts if v.select]
if len(selverts):
pt = sum(selverts, Vector()) / len(selverts)
#T = Matrix.Translation(-pt)
bmesh.ops.translate(bm, vec=-pt, verts=bm.verts)
mw.translation = mw @ pt # replace @ with * for 2.7x
bmesh.update_edit_mesh(me)


As an addon for 2.80



enter image description here






share|improve this answer











$endgroup$












  • $begingroup$
    does it work for blender 2.78a,2.79?
    $endgroup$
    – Michael Ben David
    yesterday






  • 1




    $begingroup$
    Without testing (library upgrades for 2.80 have bombed my 2.79 build, too lazy to fix atm) Pretty sure the required changes to make it work for 2.7x is replacing any @ with * and change the version accordingly in bl_info
    $endgroup$
    – batFINGER
    yesterday











  • $begingroup$
    well anyways the other addon works for me too
    $endgroup$
    – Michael Ben David
    yesterday






  • 1




    $begingroup$
    Yes this one is by no means better, simply more "mesh-centric". The other addon in theory will also work for other types like curve and armature too. Script wise wanted to show how to do this without toggling edit mode, which can mean death to an edit bmesh.
    $endgroup$
    – batFINGER
    yesterday











  • $begingroup$
    bmesh means blender mesh isnt?
    $endgroup$
    – Michael Ben David
    yesterday










Your Answer





StackExchange.ifUsing("editor", function ()
return StackExchange.using("mathjaxEditing", function ()
StackExchange.MarkdownEditor.creationCallbacks.add(function (editor, postfix)
StackExchange.mathjaxEditing.prepareWmdForMathJax(editor, postfix, [["$", "$"], ["\\(","\\)"]]);
);
);
, "mathjax-editing");

StackExchange.ready(function()
var channelOptions =
tags: "".split(" "),
id: "502"
;
initTagRenderer("".split(" "), "".split(" "), channelOptions);

StackExchange.using("externalEditor", function()
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled)
StackExchange.using("snippets", function()
createEditor();
);

else
createEditor();

);

function createEditor()
StackExchange.prepareEditor(
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: false,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: null,
bindNavPrevention: true,
postfix: "",
imageUploader:
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
,
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
);



);













draft saved

draft discarded


















StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fblender.stackexchange.com%2fquestions%2f134440%2fshortcut-for-setting-origin-to-vertex%23new-answer', 'question_page');

);

Post as a guest















Required, but never shown

























2 Answers
2






active

oldest

votes








2 Answers
2






active

oldest

votes









active

oldest

votes






active

oldest

votes









6












$begingroup$

Steps 3/4/5 can be replaced by Shift+S (for Snapping) / O.



Step 8 can be replaced by T. In general, you can look for underlined letters in such menus.



I also wrote an add-on to automate the process: OriginToSelection.py.



Install the add-on via User Preferences / Add-ons / Install from file, don't forget to activate it (check the box before its name). Press Spacebar and search Origin, then select Origin To Selection.



Be careful, I'm new to publishing add-ons and I'm pretty sure it can cause crashes. Save your work before using!






share|improve this answer











$endgroup$












  • $begingroup$
    The plugin is cool. Works fine so far.
    $endgroup$
    – Thomas Weller
    yesterday










  • $begingroup$
    It works but is insecure (ie, it drops an error if used in Object mode), and i can't guarantee it won't crash Blender. Using Dynamic Context as suggested by Mr Zak seems way better (and it's build-in).
    $endgroup$
    – thibsert
    yesterday










  • $begingroup$
    I wonder why the bother with the context overriding in your addon. Consider having it poll only when in 3d view and edit mode. As it is it will fail silently when run when no 3d views in screen.
    $endgroup$
    – batFINGER
    yesterday










  • $begingroup$
    I still don't understand that context thing really well. Before packing it as an addon I was running it trough the script window, so the overriding was necessary (I think?). You say it's safe to remove it ? Edit : it works well without it, thank you!
    $endgroup$
    – thibsert
    yesterday











  • $begingroup$
    Can override going the other way when testing in the text editor, ie if __name__ == "__main__": bpy.ops.my_new.operator(ctx, 'INVOKE_DEFAULT')
    $endgroup$
    – batFINGER
    yesterday















6












$begingroup$

Steps 3/4/5 can be replaced by Shift+S (for Snapping) / O.



Step 8 can be replaced by T. In general, you can look for underlined letters in such menus.



I also wrote an add-on to automate the process: OriginToSelection.py.



Install the add-on via User Preferences / Add-ons / Install from file, don't forget to activate it (check the box before its name). Press Spacebar and search Origin, then select Origin To Selection.



Be careful, I'm new to publishing add-ons and I'm pretty sure it can cause crashes. Save your work before using!






share|improve this answer











$endgroup$












  • $begingroup$
    The plugin is cool. Works fine so far.
    $endgroup$
    – Thomas Weller
    yesterday










  • $begingroup$
    It works but is insecure (ie, it drops an error if used in Object mode), and i can't guarantee it won't crash Blender. Using Dynamic Context as suggested by Mr Zak seems way better (and it's build-in).
    $endgroup$
    – thibsert
    yesterday










  • $begingroup$
    I wonder why the bother with the context overriding in your addon. Consider having it poll only when in 3d view and edit mode. As it is it will fail silently when run when no 3d views in screen.
    $endgroup$
    – batFINGER
    yesterday










  • $begingroup$
    I still don't understand that context thing really well. Before packing it as an addon I was running it trough the script window, so the overriding was necessary (I think?). You say it's safe to remove it ? Edit : it works well without it, thank you!
    $endgroup$
    – thibsert
    yesterday











  • $begingroup$
    Can override going the other way when testing in the text editor, ie if __name__ == "__main__": bpy.ops.my_new.operator(ctx, 'INVOKE_DEFAULT')
    $endgroup$
    – batFINGER
    yesterday













6












6








6





$begingroup$

Steps 3/4/5 can be replaced by Shift+S (for Snapping) / O.



Step 8 can be replaced by T. In general, you can look for underlined letters in such menus.



I also wrote an add-on to automate the process: OriginToSelection.py.



Install the add-on via User Preferences / Add-ons / Install from file, don't forget to activate it (check the box before its name). Press Spacebar and search Origin, then select Origin To Selection.



Be careful, I'm new to publishing add-ons and I'm pretty sure it can cause crashes. Save your work before using!






share|improve this answer











$endgroup$



Steps 3/4/5 can be replaced by Shift+S (for Snapping) / O.



Step 8 can be replaced by T. In general, you can look for underlined letters in such menus.



I also wrote an add-on to automate the process: OriginToSelection.py.



Install the add-on via User Preferences / Add-ons / Install from file, don't forget to activate it (check the box before its name). Press Spacebar and search Origin, then select Origin To Selection.



Be careful, I'm new to publishing add-ons and I'm pretty sure it can cause crashes. Save your work before using!







share|improve this answer














share|improve this answer



share|improve this answer








edited yesterday









Community

1




1










answered yesterday









thibsertthibsert

1,9691311




1,9691311











  • $begingroup$
    The plugin is cool. Works fine so far.
    $endgroup$
    – Thomas Weller
    yesterday










  • $begingroup$
    It works but is insecure (ie, it drops an error if used in Object mode), and i can't guarantee it won't crash Blender. Using Dynamic Context as suggested by Mr Zak seems way better (and it's build-in).
    $endgroup$
    – thibsert
    yesterday










  • $begingroup$
    I wonder why the bother with the context overriding in your addon. Consider having it poll only when in 3d view and edit mode. As it is it will fail silently when run when no 3d views in screen.
    $endgroup$
    – batFINGER
    yesterday










  • $begingroup$
    I still don't understand that context thing really well. Before packing it as an addon I was running it trough the script window, so the overriding was necessary (I think?). You say it's safe to remove it ? Edit : it works well without it, thank you!
    $endgroup$
    – thibsert
    yesterday











  • $begingroup$
    Can override going the other way when testing in the text editor, ie if __name__ == "__main__": bpy.ops.my_new.operator(ctx, 'INVOKE_DEFAULT')
    $endgroup$
    – batFINGER
    yesterday
















  • $begingroup$
    The plugin is cool. Works fine so far.
    $endgroup$
    – Thomas Weller
    yesterday










  • $begingroup$
    It works but is insecure (ie, it drops an error if used in Object mode), and i can't guarantee it won't crash Blender. Using Dynamic Context as suggested by Mr Zak seems way better (and it's build-in).
    $endgroup$
    – thibsert
    yesterday










  • $begingroup$
    I wonder why the bother with the context overriding in your addon. Consider having it poll only when in 3d view and edit mode. As it is it will fail silently when run when no 3d views in screen.
    $endgroup$
    – batFINGER
    yesterday










  • $begingroup$
    I still don't understand that context thing really well. Before packing it as an addon I was running it trough the script window, so the overriding was necessary (I think?). You say it's safe to remove it ? Edit : it works well without it, thank you!
    $endgroup$
    – thibsert
    yesterday











  • $begingroup$
    Can override going the other way when testing in the text editor, ie if __name__ == "__main__": bpy.ops.my_new.operator(ctx, 'INVOKE_DEFAULT')
    $endgroup$
    – batFINGER
    yesterday















$begingroup$
The plugin is cool. Works fine so far.
$endgroup$
– Thomas Weller
yesterday




$begingroup$
The plugin is cool. Works fine so far.
$endgroup$
– Thomas Weller
yesterday












$begingroup$
It works but is insecure (ie, it drops an error if used in Object mode), and i can't guarantee it won't crash Blender. Using Dynamic Context as suggested by Mr Zak seems way better (and it's build-in).
$endgroup$
– thibsert
yesterday




$begingroup$
It works but is insecure (ie, it drops an error if used in Object mode), and i can't guarantee it won't crash Blender. Using Dynamic Context as suggested by Mr Zak seems way better (and it's build-in).
$endgroup$
– thibsert
yesterday












$begingroup$
I wonder why the bother with the context overriding in your addon. Consider having it poll only when in 3d view and edit mode. As it is it will fail silently when run when no 3d views in screen.
$endgroup$
– batFINGER
yesterday




$begingroup$
I wonder why the bother with the context overriding in your addon. Consider having it poll only when in 3d view and edit mode. As it is it will fail silently when run when no 3d views in screen.
$endgroup$
– batFINGER
yesterday












$begingroup$
I still don't understand that context thing really well. Before packing it as an addon I was running it trough the script window, so the overriding was necessary (I think?). You say it's safe to remove it ? Edit : it works well without it, thank you!
$endgroup$
– thibsert
yesterday





$begingroup$
I still don't understand that context thing really well. Before packing it as an addon I was running it trough the script window, so the overriding was necessary (I think?). You say it's safe to remove it ? Edit : it works well without it, thank you!
$endgroup$
– thibsert
yesterday













$begingroup$
Can override going the other way when testing in the text editor, ie if __name__ == "__main__": bpy.ops.my_new.operator(ctx, 'INVOKE_DEFAULT')
$endgroup$
– batFINGER
yesterday




$begingroup$
Can override going the other way when testing in the text editor, ie if __name__ == "__main__": bpy.ops.my_new.operator(ctx, 'INVOKE_DEFAULT')
$endgroup$
– batFINGER
yesterday













3












$begingroup$

Little bmesh helper script.



The process to move the origin involves making the new point the origin by subtracting it from all other verts, then translating the matrix world of the object such that the global location stays the same



Run in edit mode. Moves origin to selected geo.



import bpy
import bmesh
from mathutils import Vector
context = bpy.context

ob = context.edit_object
mw = ob.matrix_world
me = ob.data
bm = bmesh.from_edit_mesh(me)

selverts = [v.co for v in bm.verts if v.select]
if len(selverts):
pt = sum(selverts, Vector()) / len(selverts)
#T = Matrix.Translation(-pt)
bmesh.ops.translate(bm, vec=-pt, verts=bm.verts)
mw.translation = mw @ pt # replace @ with * for 2.7x
bmesh.update_edit_mesh(me)


As an addon for 2.80



enter image description here






share|improve this answer











$endgroup$












  • $begingroup$
    does it work for blender 2.78a,2.79?
    $endgroup$
    – Michael Ben David
    yesterday






  • 1




    $begingroup$
    Without testing (library upgrades for 2.80 have bombed my 2.79 build, too lazy to fix atm) Pretty sure the required changes to make it work for 2.7x is replacing any @ with * and change the version accordingly in bl_info
    $endgroup$
    – batFINGER
    yesterday











  • $begingroup$
    well anyways the other addon works for me too
    $endgroup$
    – Michael Ben David
    yesterday






  • 1




    $begingroup$
    Yes this one is by no means better, simply more "mesh-centric". The other addon in theory will also work for other types like curve and armature too. Script wise wanted to show how to do this without toggling edit mode, which can mean death to an edit bmesh.
    $endgroup$
    – batFINGER
    yesterday











  • $begingroup$
    bmesh means blender mesh isnt?
    $endgroup$
    – Michael Ben David
    yesterday















3












$begingroup$

Little bmesh helper script.



The process to move the origin involves making the new point the origin by subtracting it from all other verts, then translating the matrix world of the object such that the global location stays the same



Run in edit mode. Moves origin to selected geo.



import bpy
import bmesh
from mathutils import Vector
context = bpy.context

ob = context.edit_object
mw = ob.matrix_world
me = ob.data
bm = bmesh.from_edit_mesh(me)

selverts = [v.co for v in bm.verts if v.select]
if len(selverts):
pt = sum(selverts, Vector()) / len(selverts)
#T = Matrix.Translation(-pt)
bmesh.ops.translate(bm, vec=-pt, verts=bm.verts)
mw.translation = mw @ pt # replace @ with * for 2.7x
bmesh.update_edit_mesh(me)


As an addon for 2.80



enter image description here






share|improve this answer











$endgroup$












  • $begingroup$
    does it work for blender 2.78a,2.79?
    $endgroup$
    – Michael Ben David
    yesterday






  • 1




    $begingroup$
    Without testing (library upgrades for 2.80 have bombed my 2.79 build, too lazy to fix atm) Pretty sure the required changes to make it work for 2.7x is replacing any @ with * and change the version accordingly in bl_info
    $endgroup$
    – batFINGER
    yesterday











  • $begingroup$
    well anyways the other addon works for me too
    $endgroup$
    – Michael Ben David
    yesterday






  • 1




    $begingroup$
    Yes this one is by no means better, simply more "mesh-centric". The other addon in theory will also work for other types like curve and armature too. Script wise wanted to show how to do this without toggling edit mode, which can mean death to an edit bmesh.
    $endgroup$
    – batFINGER
    yesterday











  • $begingroup$
    bmesh means blender mesh isnt?
    $endgroup$
    – Michael Ben David
    yesterday













3












3








3





$begingroup$

Little bmesh helper script.



The process to move the origin involves making the new point the origin by subtracting it from all other verts, then translating the matrix world of the object such that the global location stays the same



Run in edit mode. Moves origin to selected geo.



import bpy
import bmesh
from mathutils import Vector
context = bpy.context

ob = context.edit_object
mw = ob.matrix_world
me = ob.data
bm = bmesh.from_edit_mesh(me)

selverts = [v.co for v in bm.verts if v.select]
if len(selverts):
pt = sum(selverts, Vector()) / len(selverts)
#T = Matrix.Translation(-pt)
bmesh.ops.translate(bm, vec=-pt, verts=bm.verts)
mw.translation = mw @ pt # replace @ with * for 2.7x
bmesh.update_edit_mesh(me)


As an addon for 2.80



enter image description here






share|improve this answer











$endgroup$



Little bmesh helper script.



The process to move the origin involves making the new point the origin by subtracting it from all other verts, then translating the matrix world of the object such that the global location stays the same



Run in edit mode. Moves origin to selected geo.



import bpy
import bmesh
from mathutils import Vector
context = bpy.context

ob = context.edit_object
mw = ob.matrix_world
me = ob.data
bm = bmesh.from_edit_mesh(me)

selverts = [v.co for v in bm.verts if v.select]
if len(selverts):
pt = sum(selverts, Vector()) / len(selverts)
#T = Matrix.Translation(-pt)
bmesh.ops.translate(bm, vec=-pt, verts=bm.verts)
mw.translation = mw @ pt # replace @ with * for 2.7x
bmesh.update_edit_mesh(me)


As an addon for 2.80



enter image description here







share|improve this answer














share|improve this answer



share|improve this answer








edited yesterday

























answered yesterday









batFINGERbatFINGER

25.6k52876




25.6k52876











  • $begingroup$
    does it work for blender 2.78a,2.79?
    $endgroup$
    – Michael Ben David
    yesterday






  • 1




    $begingroup$
    Without testing (library upgrades for 2.80 have bombed my 2.79 build, too lazy to fix atm) Pretty sure the required changes to make it work for 2.7x is replacing any @ with * and change the version accordingly in bl_info
    $endgroup$
    – batFINGER
    yesterday











  • $begingroup$
    well anyways the other addon works for me too
    $endgroup$
    – Michael Ben David
    yesterday






  • 1




    $begingroup$
    Yes this one is by no means better, simply more "mesh-centric". The other addon in theory will also work for other types like curve and armature too. Script wise wanted to show how to do this without toggling edit mode, which can mean death to an edit bmesh.
    $endgroup$
    – batFINGER
    yesterday











  • $begingroup$
    bmesh means blender mesh isnt?
    $endgroup$
    – Michael Ben David
    yesterday
















  • $begingroup$
    does it work for blender 2.78a,2.79?
    $endgroup$
    – Michael Ben David
    yesterday






  • 1




    $begingroup$
    Without testing (library upgrades for 2.80 have bombed my 2.79 build, too lazy to fix atm) Pretty sure the required changes to make it work for 2.7x is replacing any @ with * and change the version accordingly in bl_info
    $endgroup$
    – batFINGER
    yesterday











  • $begingroup$
    well anyways the other addon works for me too
    $endgroup$
    – Michael Ben David
    yesterday






  • 1




    $begingroup$
    Yes this one is by no means better, simply more "mesh-centric". The other addon in theory will also work for other types like curve and armature too. Script wise wanted to show how to do this without toggling edit mode, which can mean death to an edit bmesh.
    $endgroup$
    – batFINGER
    yesterday











  • $begingroup$
    bmesh means blender mesh isnt?
    $endgroup$
    – Michael Ben David
    yesterday















$begingroup$
does it work for blender 2.78a,2.79?
$endgroup$
– Michael Ben David
yesterday




$begingroup$
does it work for blender 2.78a,2.79?
$endgroup$
– Michael Ben David
yesterday




1




1




$begingroup$
Without testing (library upgrades for 2.80 have bombed my 2.79 build, too lazy to fix atm) Pretty sure the required changes to make it work for 2.7x is replacing any @ with * and change the version accordingly in bl_info
$endgroup$
– batFINGER
yesterday





$begingroup$
Without testing (library upgrades for 2.80 have bombed my 2.79 build, too lazy to fix atm) Pretty sure the required changes to make it work for 2.7x is replacing any @ with * and change the version accordingly in bl_info
$endgroup$
– batFINGER
yesterday













$begingroup$
well anyways the other addon works for me too
$endgroup$
– Michael Ben David
yesterday




$begingroup$
well anyways the other addon works for me too
$endgroup$
– Michael Ben David
yesterday




1




1




$begingroup$
Yes this one is by no means better, simply more "mesh-centric". The other addon in theory will also work for other types like curve and armature too. Script wise wanted to show how to do this without toggling edit mode, which can mean death to an edit bmesh.
$endgroup$
– batFINGER
yesterday





$begingroup$
Yes this one is by no means better, simply more "mesh-centric". The other addon in theory will also work for other types like curve and armature too. Script wise wanted to show how to do this without toggling edit mode, which can mean death to an edit bmesh.
$endgroup$
– batFINGER
yesterday













$begingroup$
bmesh means blender mesh isnt?
$endgroup$
– Michael Ben David
yesterday




$begingroup$
bmesh means blender mesh isnt?
$endgroup$
– Michael Ben David
yesterday

















draft saved

draft discarded
















































Thanks for contributing an answer to Blender Stack Exchange!


  • Please be sure to answer the question. Provide details and share your research!

But avoid


  • Asking for help, clarification, or responding to other answers.

  • Making statements based on opinion; back them up with references or personal experience.

Use MathJax to format equations. MathJax reference.


To learn more, see our tips on writing great answers.




draft saved


draft discarded














StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fblender.stackexchange.com%2fquestions%2f134440%2fshortcut-for-setting-origin-to-vertex%23new-answer', 'question_page');

);

Post as a guest















Required, but never shown





















































Required, but never shown














Required, but never shown












Required, but never shown







Required, but never shown

































Required, but never shown














Required, but never shown












Required, but never shown







Required, but never shown







Popular posts from this blog

Adding axes to figuresAdding axes labels to LaTeX figuresLaTeX equivalent of ConTeXt buffersRotate a node but not its content: the case of the ellipse decorationHow to define the default vertical distance between nodes?TikZ scaling graphic and adjust node position and keep font sizeNumerical conditional within tikz keys?adding axes to shapesAlign axes across subfiguresAdding figures with a certain orderLine up nested tikz enviroments or how to get rid of themAdding axes labels to LaTeX figures

Luettelo Yhdysvaltain laivaston lentotukialuksista Lähteet | Navigointivalikko

Gary (muusikko) Sisällysluettelo Historia | Rockin' High | Lähteet | Aiheesta muualla | NavigointivalikkoInfobox OKTuomas "Gary" Keskinen Ancaran kitaristiksiProjekti Rockin' High