如何在maxscript中调用一组选定顶点的位置?

时间:2015-10-13 20:10:22

标签: maxscript

我正在创建一个GUI,它将在预制的软管上创建一个样条曲线。其目的是模拟液压动力机器中的移动软管。此脚本旨在使创建线条更有效,而不必在3个默认视口中手动定位它们。

我要问的是,在选择了一组顶点之后,我能够如何调用视图窗口中显示的值。这是我的意思的一个例子:

Example

我的目标是获取所有选定顶点的平均值并将它们放在一个列表中,然后我将继续沿着软管的长度选择这些顶点。最终我将得到一个顶点值的完整列表,我将创建一个与这些位置值匹配的样条曲线,这样我就可以在创建后使用贝塞尔曲线工具对它们进行变形。我只是想知道如何将红色圆圈内的值调用为maxscript中的值并在我的GUI中使用它。如果我还不够清楚,请评论。感谢您提供任何建议!

1 个答案:

答案 0 :(得分:2)

如果您的网格折叠为可编辑网格或可编辑多边形,则可以使用此方法:

fn averageSelVertPosition obj =
(
    verts = obj.selectedVerts
    p = Point3 0 0 0
    for v in verts do
    (
        p += v.pos
    )
    p = p/verts.count
    return p
)

它将返回指定节点的所选顶点的平均位置的Point3值。

如果您正在使用和edit_poly修饰符,则可能需要使用多边形。你可以在这里了解:http://docs.autodesk.com/3DSMAX/16/ENU/MAXScript-Help/index.html?url=files/GUID-B40F84EA-5F19-45B6-AA7C-0ADC77708BBE.htm,topicNumber=d30e394721

方法是一样的。

  1. 检索所有顶点
  2. 平均他们的位置:

    2.a:将他们的位置(Point3)加在一起

    2.b:除以顶点数。

  3. -

    如果您需要任何进一步的帮助,请与我们联系。

相关问题