Solved Modify Spline Gui

Hi, is there a way to modify the shape of a Spline in the Spline Gui? For example I want to edit the Curve in the Splinedeformer Shape Parameter. The Log only spits out c4d.SPLINEDEFORMEROBJECT_SPLINECONTROL
How can I modify the cooridates of the spline points?

Hello,

the parameter c4d.SPLINEDEFORMEROBJECT_SPLINECONTROL contains a c4d.SplineData object. You can edit this object to edit the spline.

Please notice that the Spline Deformer adapts the spline range based on the "Radius" parameter.

With that in mind you can easily access and edit the points defining that spline:

# get spline data
splineData = op[c4d.SPLINEDEFORMEROBJECT_SPLINECONTROL]

# print information on the data
print(splineData)

# radius is max. value
radius = op[c4d.SPLINEDEFORMEROBJECT_RADIUS]

# delete all points
splineData.DeleteAllPoints()
splineData.SetRange(0.0, radius, 0.1, 0.0, 1.0, 0.1)

# insert knots
splineData.InsertKnot(0.0, 0.0)
splineData.InsertKnot(radius, 1.0)

# modify knots
splineData.SetKnot(0,c4d.Vector(0.0,0.0,0), 0, False, c4d.Vector(0,0,0), c4d.Vector(1,1,0),c4d.CustomSplineKnotInterpolationBezier)
splineData.SetKnot(1,c4d.Vector(radius,1.0,0), 0, False, c4d.Vector(-1,-1,0), c4d.Vector(0,0,0),c4d.CustomSplineKnotInterpolationBezier)

# store back to deformer object
op.SetParameter(c4d.SPLINEDEFORMEROBJECT_SPLINECONTROL, splineData, c4d.DESCFLAGS_SET_0)

c4d.EventAdd()

best wishes,
Sebastian

Hello @HolgerBiebrach ,

I'm wondering if your question has been answered. If so, please mark this thread as solved.

best wishes,
Sebastian