I need to get a distance from the vertex to the vertex along the normal of the polygon. Look, I've got a polygon that I want to move to its normal to any too. In this case, I move the polygon with index 36 to the vertex with index 31 to the normals. I just include snapping to the vertex with the closest parameter. I get the distance of 0.3568. How can I reach the distance of 0.3568 between the 30 and 31 vertex using Python?

enter image description here enter image description here


Use a dot product between the normal and the distance vector for the distance along normal.

import bpy
import numpy as np
from mathutils import Vector

# Use active object and active face in its mesh
ob = bpy.context.object
mesh = ob.data
normal = mesh.polygons[mesh.polygons.active].normal

# v1 is the origin point and v2 is moved to v1 along the active face normal
v1 = mesh.vertices[30]
v2 = mesh.vertices[31]

dvec = v1.co-v2.co
dnormal = np.dot(dvec, normal)

v2.co += Vector(dnormal*normal)

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.