How do you move the 3d cursor along an edge?
Bmesh helper script

For those interested in a scripting solution, here is a little helper script to place the cursor on an edge.


Test run on default cube

Test script.


Run in edit mode
Have an edge as active element.
Place the 3d cursor close to one end, this will be the zero location
Edit the pc variable to how far in percent along edge from one end to another. 0 will snap the cursor to closest end. One third will move it one third of the way to other end.
The global length of the edge is written to system console.


Test script.

import bpy
import bmesh

pc = 1 / 3

context = bpy.context
scene = context.scene
ob = context.edit_object
mw = ob.matrix_world
me = ob.data
bm = bmesh.from_edit_mesh(me)
e = bm.select_history.active
assert(type(e) == bmesh.types.BMEdge)

v1, v2 = sorted((v.co for v in e.verts), key=lambda o: (scene.cursor_location - o).length)
scene.cursor_location = v1 + pc * (v2 - v1)
print("Global Edge Length: ", (v2 - v1).length)


Notes:

Could extend this to have a UI by making an operator.