0
$\begingroup$

I would like to find a way to tag vertices in spline edit mode in order to append or remove them from lists. For instance; I'm placing Object instances over spline vertices and using its "tilt" value from the spline I can manage to edit their rotation individually inside the 3dview.

Is there a way to the same thing but instead of affecting its tilt just edit it belonging to a list?

$\endgroup$
1
$\begingroup$

I am assuming you don't want to use a bit mask list in the node tree and instead want to use a native spline attribute accessible from the UI. I don't think Blender allows custom attributes for splines, see this and this. So I think your only option is to utilize the Weight or the Radius of the handles to determine their state. For instance, you can get the weights of the handles using the following expression:

[point.weight_softbody for point in obj.data.splines[0].bezier_points]

Then you check if the weight is larger than 0.5 by adjusting the expression to be:

[point.weight_softbody > 0.5 for point in obj.data.splines[0].bezier_points]

Now, simply use the output boolean list as the mask for your handles using the Mask List node. To include a point, increase the weight more than 0.5. Alternatively, you can use the radius if you are not utilizing it somehow.

| improve this answer | |
$\endgroup$
  • $\begingroup$ Yes, weight_softbody was my first try but I had trouble writing the expression and I thought it was because AN couldn't read that property as it doesn't show in the node "spline info", turns out it was my lack of coding skills. Still I'm not being able to make the expression work. When I define obj.data.splines[0] as a list of splines named objI get this error listobject has no attribute data $\endgroup$ – Juan Manuel Lynch Jan 30 '19 at 8:53
  • $\begingroup$ @JuanManuelLynch obj should be your curve object. You can't use Splines directly because they are AN data types, so they don't contain weights as far as I know. $\endgroup$ – Omar Emara Jan 30 '19 at 10:42

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.