Page MenuHome

Curve Edit Mode Control Point's "radius for beveling" inconsistencies/bugs
Closed, ArchivedPublic

Description

System Information
Operating system: Windows-10-10.0.19041-SP0 64 Bits
Graphics card: GeForce RTX 2070 Super with Max-Q Design/PCIe/SSE2 NVIDIA Corporation 4.5.0 NVIDIA 461.40

Blender Version
Broken: version: 2.93.0 Alpha, branch: master, commit date: 2021-02-11 17:37, hash: rBa608313860ff
Worked: (newest version of Blender that worked as expected)

Short description of error

All comments are related to the Curve object's "radius for beveling" found in 3D View Sidebar Panel Item tab when control point(s) are selected while in edit mode:

The Curve's Control Point "radius for beveling" changes value after applying scale to a curve in Object mode when the object scale is something other than 1 and there are other inconsistencies with this operation. Context and explanations below.

Adjusting the "radius for beveling" values while in edit mode changes the arrow size on the curve near the selected Control Points that are being adjusted (this is expected behavior).

The "radius for beveling" values do not update during scaling operations in edit mode (this is not a problem and is expected behavior).

The "radius for beveling" does update visually during scaling operations in object mode (this is not a problem). The arrows on the curve in edit mode show that the data has been updated despite the radius value in the N-panel not updating and displaying a value of 1 (this does appear to be a bug).

The "radius for beveling" values only change when applying the scale to the curve in object mode. The value not updating while the arrows update is a bug as far as I can tell and is inconsistent.

Applying scale also affects objects using the curve as their target curve modifier and instantly deforms the objects to a new size due to the curve "radius for bevel" values updating in association with the applied scale (this is confusing behavior to me).

It is interesting to note that no other Curve object data properties are changed/updated when scale is applied, including other Bevel subpanel settings in the Properties editor under the Object Data Properties

Exact steps for others to reproduce the error
[Please describe the exact steps needed to reproduce the issue]

  1. Open blend file. Delete default cube.
  2. Add a Bezier Circle and go to Properties Panel and Object Data Properties -> Geometry carat -> Bevel sub carat: Give the curve a small bevel depth value like 0.05m
  3. Toggle Edit Mode.
  4. Select all control points (vertices) in edit mode and take note of "radius for beveling" (or Mean Radius) value on the 3D View Sidebar Panel Item tab. It should read 1.0 for each control point.
  5. Scale all control points down to 0.1 in edit mode. Take note that arrow size on the curve, "radius for beveling" value, and circle geometry bevel depth does not change. The "radius for beveling" value on all control points is still 1.0.
  6. Toggle to object mode and scale Curve object to 10. Notice the change in size of the displayed Geometry Bevel increased 10 fold while the Depth value stays at 0.05m.
  7. Toggle edit mode and select all control points (vertices). Take note of increased size of arrows on curve. Then record the "radius for beveling" value. It should still read 1.0. (this is a bug since the data is physically changing the Geometry bevel visually and the curve arrows visually)
  8. Toggle to object mode and apply scale to the curve object.
  9. Toggle edit mode and note the arrow size and the "radius for beveling" value has now changed to 10, the arrow size remains unchanged, and the Geometry bevel depth is still 0.05m but it is still visually 10 times larger.

This becomes even more confusing when using the curve object as a target for another object's curve modifier (even more fun using array and curve modifiers together).
Additional steps.

  1. Create a new bez circle.
  2. Add a cube and set the scale to 0.1 and apply cube object scale.
  3. Give cube an array modifier and set Fit Type to Fit Curve and select the bezier circle as the target curve. Set relative array offset to 3 so you can watch both the object geometry and curve geometry easily during next steps.
  4. Add curve modifier to cube object and set Curve target object to bezier circle and deform axis to x.
  5. Perform steps 1 through 9 above and watch what happens to curve bevel geometry changing versus object geometry note changing while engaging in scaling operations.
  6. Notice how object shifts in scale by 10 times only when the curve scale is applied.

The object increases scale ONLY when applying the curve's scale. This is really confusing when scaling the curve in object mode and watching the Geometry bevel on the curve increase but the object geometry using the target for curve modifier stays the same size. The object size changes afterwards once the curve scale is applied due to the fact that the "radius for bevel" property updates fully at that time instead of partially.

If the scale on the "radius for bevel" is going to change it should probably change during scaling operations with the curve and stay the same new larger value when the curve scale is applied. OR just don't update the "radius for beveling" at all and let the user manually adjust it.

Scaling is desired for "radius for beveling" then: If there is an already "non-1.0" value set for each control point on the curve then the math operations should scale based on the value and the scale combined (multiplication of the two values like it is currently doing but is only happening during apply scale operation).

Event Timeline

Hi and thx for the report.

Toggle edit mode and select all control points (vertices). Take note of increased size of arrows on curve. Then record the "radius for beveling" value. It should still read 1.0. (this is a bug since the data is physically changing the Geometry bevel visually and the curve arrows visually)

Dont think this is a bug, arrow representation is the combination of the radius multiplied with the object scale? geometry is the combination of radius multiplied with the object scale and the bevel depth

Toggle edit mode and note the arrow size and the "radius for beveling" value has now changed to 10, the arrow size remains unchanged, and the Geometry bevel depth is still 0.05m but it is still visually 10 times larger.

See above, this still holds true.

Notice how object shifts in scale by 10 times only when the curve scale is applied.

Curve modifier is different yes, it still multiplies with the radius, but ignores object scale. This might be confusing, in fact this has come up before, see T71691: Wrong Deformation when using Curve Modifier, but this is really working as intended.

So thanks again for the report, but the issue reported here is a request for modified/improved behavior and not a bug in current behavior. Closing as this bug tracker is only for bugs and errors.
For user requests and feedback, please use other channels: https://wiki.blender.org/wiki/Communication/Contact#User_Feedback_and_Requests
For more information on why this isn't considered a bug, visit: https://wiki.blender.org/wiki/Reference/Not_a_bug

Dont think this is a bug, arrow representation is the combination of the radius multiplied with the object scale? geometry is the combination of radius multiplied with the object scale and the bevel depth

Please excuse what I believed to be bug behavior. I haven't seen this explained anywhere in the blender manual or online regarding curves. The "intended" behavior is not explained to the users but I appreciate this explained here. That makes loads of sense. I can only report what I see as buggy behavior when it is not explained and works counter to what a user expects I suppose (most things don't change geometrically/visually when applying scale in blender without attached modifiers, but apparently curves do). To me it looked and behaved unexpectedly like a bug would.
(excerpt from https://docs.blender.org/manual/en/2.91/modeling/curves/properties/shape.html)

Radius
Causes the deformed object to be scaled by the set curve radius. Utilized when using a curve as a path or when using the Curve Modifier.

Can be further improved with your explanation, but most likely deserves it's own section.

Also, the behavior of shifting values from curve object scale to both the control point size and radius for bevel value when applying scale is also undocumented.

Thanks for the response, I appreciate it