如何确定(在 MaxScript 中)哪条线的样条是 "outer one"?

How to determine (in MaxScript) which line's spline is the "outer one"?

我想列出线的顶点,按样条曲线分组到文件。我知道我可以使用 format % ... to: file 将数据输出到文件,但我还必须做一件事。

我的线是这样的(外花键是selected/red,洞是白色的):

我想先输出外样条(顺序对我来说很重要),然后列出所有孔(作为顶点列表)。 如何确定(在 MaxScript 中)哪条线的样条曲线是 "outer one"?

一个简单(但可能不是最有效)的方法是在两者之间进行长度比较(因为内部可能总是最短的)。

您使用以下方法:

getSegLengths <splineShape> <spline_index> [cum:<boolean>] /
[byVertex:<boolean>] [numArcSteps:<integer>]

你可以这样做:

if ((getSegLengths $YourSpline 2 cum:true) > (getSegLengths $YourSpline 1 cum:true) then (setFirstSpline $YourSpline 2)

您当然需要遍历样条形状的所有子样条,以确定最长的。

或者,您可以在它们周围计算一些 vounding box,以防您的内部样条卷曲,因此比外部更长。