blender脚本:如何写入文本对象

gro*_*ter 6 python blender

我使用blender 2.6并添加一个文本对象

bpy.ops.object.text_add(location=(x,y,z))
Run Code Online (Sandbox Code Playgroud)

而只是想设置文本,无法弄清楚.我在python控制台中找到了我能做到的

bpy.data.texts['Text.001'].write("my text")
Run Code Online (Sandbox Code Playgroud)

但(一般情况下)我很困惑如何引用最后创建的对象来执行某些操作.在教程中有一些primitive_MESHTYPE_add快捷方式,它们不是返回创建的对象.你能告诉我怎么做Text.new()吗?

ret*_*roj 10

bpy.ops.object.text_add()
ob=bpy.context.object
ob.data.body = "my text"
Run Code Online (Sandbox Code Playgroud)


ama*_*211 7

如果您打算创建大量文本对象,我建议使用低级代码而不是bpy.ops来提高代码执行速度:

import bpy

myFontCurve = bpy.data.curves.new(type="FONT",name="myFontCurve")
myFontOb = bpy.data.objects.new("myFontOb",myFontCurve)
myFontOb.data.body = "my text"
bpy.context.scene.objects.link(myFontOb)
bpy.context.scene.update()
Run Code Online (Sandbox Code Playgroud)

  • Blender 2.8+ 更新:``bpy.context.collection.objects.link(myFontOb)```` (2认同)