3d Max,maxScript。设置顶点位置

时间:2014-09-17 15:13:52

标签: vertex 3dsmax maxscript

如何在maxScript中设置3d Max中的顶点位置?

$.selectedVerts.pos.x = 10 - not working

1 个答案:

答案 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。)