0

这几天我一直在为一个问题苦苦挣扎。我需要为我正在做的钻机定制样条形状,用于围绕 4 个单独移动的轮子(Wall-E)的履带

我希望样条曲线是四边形的,4 个单独的角有一定的圆角(半径基于车轮半径)。

我的问题是,我似乎无法创建自定义 SplineShape(就像我可以使用网格几何体一样)。

我被困在这里:

plugin shape FilletQuad
name: "FilletQuad"
classID:#(0x32cdee2b, 0x56acdf01)
extends:SplineShape version:1
category:"Splines"
(   

parameters main rollout:ro_filletQuad
(
    x1 type:#float animatable:true default:-30 ui:sp_x1
    y1 type:#float animatable:true default:20 ui:sp_y1
    r1 type:#float animatable:true default:10 ui:sp_r1
)

rollout ro_filletQuad "Hardware Shaders"
(
    label lbl_point1 "Point 1:"
    spinner sp_x1 "x:"
    spinner sp_y1 "y:"
    spinner sp_r1 "radius:"
)

fn createShape =
(
    print "code for shape creation goes here.."
)

tool create
(
    local startPoint
    on mousePoint click do
        case click of
        (
            1: startPoint = nodeTM.translation = gridPoint
            2: (
                createShape()
                #stop
            )
        )
    on mouseMove click do
    (
        case click of
        (
            2: (
                print "Dragging - N/A for this primitive"
            )
        )
    )
)
)

我需要一种方法来引用基础对象并构建样条曲线,并在参数更改时重建它。

在几何中,我使用“on buildMesh”事件,然后在“mesh”变量上构建。但我似乎无法找到形状的相同属性。

有什么帮助吗??

4

2 回答 2

1

如果您使用的是 max 2016 SP2 或更高版本,则可以使用 simpleSpline。这个脚本化的自定义基元类是在考虑 MCG 的情况下添加的,因此没有暴露用于操作形状的 maxscript 方法。当然,您始终可以改用 .NET 方法。查看ArrowPulley BeltGuilloche脚本形状以查看设置。

于 2016-05-12T19:00:26.117 回答
1

我相信,因为您正在扩展现有插件(SplineShape),您需要使用关键字delegate访问插件的祖先并修改任何继承的参数。

如果您查看脚本化的 Shape 插件示例并阅读文档,很明显,当您扩展插件时,您实际上是在使用它作为基础并在创建时添加功能。

似乎允许用户从头开始定义几何创建的唯一插件是 simpleobject 插件。

通过 maxscript 创建插件相对有限。您可以通过创建与视口视图大小(有点像点设置)保持一致的网格来表示样条线来作弊。

希望这可以帮助。

于 2016-01-19T01:38:02.333 回答