0

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

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

1 回答 1

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在末尾添加)。

于 2014-09-17T20:31:25.270 回答