Looking for a more verbose UV solution to handling the individual mesh vertices.
for all intents and purposes, some pseudocode might look like the below. I just can’t quite understand how to manipulate the UV attribute… If that is indeed how you would go about it:
mesh = importMesh
rows = 10
columns = 10
meshUVcoOrd = []
for i in range(rows-1):
for j in range(columns-1):
meshUVcoOrd.append(Point2d(i/rows,j/columns))
mesh.setUVcoords(meshUVcoOrd)
below creates a new array of uv-coordinates based on the mesh vertex xy position and assigns them:
import Rhino
import scriptcontext
import rhinoscriptsyntax as rs
import System
def DoSomething():
mesh_id = rs.GetObject("Mesh", 32, True, False)
if not mesh_id: return
m_obj = rs.coercerhinoobject(mesh_id, True, True)
count = m_obj.Geometry.Vertices.Count
uv_tx = System.Array.CreateInstance(Rhino.Geometry.Point2f, count)
for i, vertex in enumerate(m_obj.Geometry.Vertices):
uv_tx[i] = Rhino.Geometry.Point2f(vertex.X, vertex.Y)
m_obj.Geometry.TextureCoordinates.SetTextureCoordinates(uv_tx)
m_obj.CommitChanges()
scriptcontext.doc.Views.Redraw()
DoSomething()
_
c.
Excellent! Thanks @clement!!