Python 3dsmax maxscript:如何按照选择顶点的顺序获取顶点数组/列表?

Python 3dsmax maxscript:如何按照选择顶点的顺序获取顶点数组/列表?,python,selection,3dsmax,maxscript,Python,Selection,3dsmax,Maxscript,我正在为3dsmax编写一个工具,该工具要求用户按照在数组中选择顶点的顺序获取所选顶点,但到目前为止,传递该工具将按创建的顺序返回顶点: sel = getCurrentSeletion() selvets = vsel[1].selectedVerts 如何使用maxscript按照在3ds max中选择顶点的顺序获取选定顶点 如果在maxscript中没有方法,那么在python中有方法做到这一点吗?如果您只关心顶点的位置,那么可以使用pickPoint函数。否则,在选择更改时进行更新的回

我正在为3dsmax编写一个工具,该工具要求用户按照在数组中选择顶点的顺序获取所选顶点,但到目前为止,传递该工具将按创建的顺序返回顶点:

sel = getCurrentSeletion()
selvets = vsel[1].selectedVerts
如何使用maxscript按照在3ds max中选择顶点的顺序获取选定顶点


如果在maxscript中没有方法,那么在python中有方法做到这一点吗?

如果您只关心顶点的位置,那么可以使用
pickPoint
函数。否则,在选择更改时进行更新的回调,并记录差异。例如(如果当前节点是可编辑多边形):


非常感谢你!这对我所需要的很有效。(而且您比Autodesk更快、更有帮助)
try destroyDialog selectVerts catch()
rollout selectVerts ""
(
    local verts, currentSel

    fn collectVerts event nodes =
    (
        local sel = polyop.getVertSelection $
        local newVerts = sel - currentSel
        local removedVerts = currentSel - sel

        for v in removedVerts do if (local index = findItem verts v) > 0 do deleteItem verts index
        for v in newVerts do append verts v
        currentSel = sel
    )

    local callback = nodeEventCallback mouseUp:on enabled:off subobjectSelectionChanged:collectVerts

    checkButton chbSwitchCallback "Select verts"

    on chbSwitchCallback changed state do
    (
        if state and isKindOf $ Editable_Poly then
        (
            verts = #()
            currentSel = polyop.getVertSelection $
            callback.enabled = on
        )
        else
        (
            callback.enabled = off
            print verts #noMap
        )
    )
)
createDialog selectVerts