如何在maxScript中设置3d Max中的顶点位置?
$.selectedVerts.pos.x = 10 - not working
多种方式,首先对于某些集合,映射的属性分配不起作用,您必须遍历它们:
for vert in $.selectedVerts do vert.pos.x = 10
还有适用于给定对象类的方法,即:
meshOp.setVert <Mesh mesh> <vertlist> <point3 pos>
polyOp.setVert <Poly poly> <vertlist> <point3 pos>
例如,对于可编辑多边形:
(
fn getPlanarPos obj vert dist axis:#x =
(
local pos = polyOp.getVert obj vert
setProperty pos axis dist
pos
)
local obj = selection[1]
local distX = 10
local verts = polyOp.getVertSelection obj
local vertsPos = for vert in verts collect getPlanarPos obj vert distX
polyOp.setVert obj #selection vertsPos
)
这有点冗长,但它不会触发更新/视口重绘(与vert.pos.x
分配的每次迭代更新相比),在这里您甚至可以一次性设置所有顶点(如果您想查看结果立即,update obj
在末尾添加)。