Blender Python编程技巧
bpy.data
object复制
ob = obj.copy() # duplicate linked
ob.data = obj.data.copy() # optional: make this a real duplicate (not linked)
bpy.context.scene.objects.link(ob) # add to scene
ob.location.y += 5
object数学变换
# 获取旋转四元数
ob.rotation_euler.to_quaternion()
文件读写
https://docs.blender.org/api/blender_python_api_current/bpy.types.BlendDataLibraries.html
# 链接所有以A为开头的object
# data_from为原文件的数据,data_to为选择加入当前文件的数据
with bpy.data.libraries.load(filepath, link=True) as (data_from, data_to):
data_to.objects = [name for name in data_from.objects if name.startswith("A")]
# 复制所有data并进入当前blend文件
with bpy.data.libraries.load(filepath) as (data_from, data_to):
for attr in dir(data_to):
setattr(data_to, attr, getattr(data_from, attr))
# write selected objects and their data to a blend file
data_blocks = set