Pull mesh vertices to another mesh

I have a retopologized quad-only mesh, and I’d like to move it’s vertices back on the original high-rez mesh.

Is that even possible in Rhino ?

In gh you can do mesh closest point. Unless you want a Rhino only option.

1 Like

Hello - in the V7/WIP you can turn on points for an object and Pull them to a surface or mesh.

here is a python for V6

import rhinoscriptsyntax as rs
import scriptcontext as sc
import Rhino

def PullMeshVerts():
    
    def filter_first_object(rhino_object, geometry, component_index):
        if rhino_object.Id == id1:
            return False
        return True
    
    id1 = rs.GetObject("Select the mesh to change.", 32, preselect=True)
    if not id1: return
    
    id2 = rs.GetObject("Select the target object.", 8+16+32, custom_filter = filter_first_object )
    if not id2: return
    
    m1 = rs.coercemesh(id1)
    m2 = rs.coercegeometry(id2)
    
    for n in range(m1.Vertices.Count):
        m1.Vertices.SetVertex(n,m2.ClosestPoint(Rhino.Geometry.Point3d(m1.Vertices[n])))
        
    sc.doc.Objects.Replace (id1, m1)
    sc.doc.Views.Redraw()
    
if __name__ == '__main__':PullMeshVerts()


-Pascal

1 Like

Thank you gentlemen.

Always wondered why control points couldn’t be pulled or projected on another geometry in Rhino…
I failed to find that GH component ; now it’s child’s play :

2 Likes