Page MenuHome

"Convert Text to Curve" disregards "Text ON Curve"
Confirmed, NormalPublicBUG


System Information
Operating system: Linux Ubuntu 19.10
Graphics card: NVidia 1060 Ti

Blender Version
Broken: latest build
Worked: 2.79

Short description of error
When a text has a transform "Text on Curve" assigned and you convert the text to curves, the "Text on Curve" is disregarded and will convert without any transforms.

Exact steps for others to reproduce the error

  • Add Bezier Circle
  • Add Text
  • Assign Bezier Circle to "Text on Curve" in Data Properties->Font->Transform
  • Convert Text to Curve ("Curve from Mesh/Text")
  • Observe conversion not including the Text on Curve

Thanks for looking into it,

Related Objects

Event Timeline

Philipp Oeser (lichtwerk) changed the task status from Needs Triage to Confirmed.Fri, Mar 13, 11:35 AM
Philipp Oeser (lichtwerk) claimed this task.
Philipp Oeser (lichtwerk) changed the subtype of this task from "Report" to "Bug".

Confirmed, checking...

Getting the following here:
BLI_assert failed: /blender/source/blender/blenkernel/intern/font.c:1227, vfont_to_curve(), at 'cu->textoncurve->runtime.curve_cache != ((void *)0)'

Hm, depsgraph is supposedly already ensured to be updated in convert_exec, doing BKE_vfont_to_curve with evaluated object only seems to make things worse :

3diff --git a/source/blender/editors/object/object_add.c b/source/blender/editors/object/object_add.c
4index 17b6bfdb956..51c1c81fab6 100644
5--- a/source/blender/editors/object/object_add.c
6+++ b/source/blender/editors/object/object_add.c
7@@ -2310,7 +2310,8 @@ static int convert_exec(bContext *C, wmOperator *op)
8 */
9 /* XXX This may fail/crash, since BKE_vfont_to_curve()
10 * accesses evaluated data in some cases (bastien). */
11- BKE_vfont_to_curve(newob, FO_EDIT);
12+ depsgraph = CTX_data_ensure_evaluated_depsgraph(C);
13+ BKE_vfont_to_curve(DEG_get_evaluated_object(depsgraph, newob), FO_EDIT);
15 newob->type = OB_CURVE;
16 cu->type = OB_CURVE;

Well, assert is gone, but no splines in Curve then...
Not sure... (esp. since conversion to mesh seems to go fine later?)

@Sergey Sharybin (sergey), @Bastien Montagne (mont29): any ideas?