创建几何体
a2+b2=c2
几何体接口
1 2 3
| def cube(size: float, location: tuple): bpy.ops.mesh.primitive_cube_add(size=size, location=location) return bpy.context.active_object
|
猴头模型
1 2 3 4 5 6 7 8 9 10 11 12
| def monkey(size: float = 2.0, location: tuple = (0, 0, 0)): """ 创建一个猴头 (Suzanne) 模型。 :param size: 猴头的大小。 :param location: 猴头的位置 (x, y, z)。 :return: 新创建的 bpy.types.Object。 """ bpy.ops.mesh.primitive_monkey_add(size=size, location=location)
return bpy.context.active_object
|
清空画面
1 2 3 4 5 6 7 8 9 10 11
| def delete_all(exceptions=["CAMERA", "LIGHT"]):
if bpy.context.scene is not None: all_objects = bpy.context.scene.objects
objects_to_delete = [obj for obj in all_objects if obj.type not in exceptions]
for obj in objects_to_delete: obj.select_set(True)
bpy.ops.object.delete()
|
变换
变换接口
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37
| def move_object(obj, x: float = 0, y: float = 0, z: float = 0): """ 移动一个对象。 :param obj: 要移动的 bpy.types.Object。 :param x, y, z: 在各轴上的移动距离。 """ obj.location.x += x obj.location.y += y obj.location.z += z
def rotate_object( obj, x: float = 0, y: float = 0, z: float = 0, use_degrees: bool = True ): """ 旋转一个对象。 :param obj: 要旋转的 bpy.types.Object。 :param x, y, z: 在各轴上的旋转角度。 :param use_degrees: 如果为 True,则使用度数;否则使用弧度。 """ if use_degrees: x, y, z = math.radians(x), math.radians(y), math.radians(z)
obj.rotation_euler.x += x obj.rotation_euler.y += y obj.rotation_euler.z += z
def scale_object(obj, x: float = 1, y: float = 1, z: float = 1): """ 缩放一个对象。 :param obj: 要缩放的 bpy.types.Object。 :param x, y, z: 在各轴上的缩放倍数。 """ obj.scale.x *= x obj.scale.y *= y obj.scale.z *= z
|
关联
1 2 3 4 5 6 7 8 9 10 11 12
| def parent_objects(parent_obj, child_obj): """ 将一个对象设置为另一个对象的子对象。 :param parent_obj: 父对象。 :param child_obj: 子对象。 """ child_obj.parent = None
child_obj.parent = parent_obj
|