如何在maxScript中设置3d Max中的顶点位置?
$.selectedVerts.pos.x = 10 - not working
答案 0 :(得分:2)
多种方式,首先对于某些集合,映射的属性赋值不起作用,您必须迭代它们:
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
。)