Python 控制台
Python 控制台是一种执行命令的快速方法,可以访问完整的Python API、查询命令历史记录和自动补全。命令提示符是 Python 3.x 的典型操作,加载解释器,并在提示符 >>>
处接受命令。
Python 控制台是内置的用于探索Blender 的可能性的绝佳方法。Python 控制台可用于测试小段Python代码,然后粘贴到更大的脚本中。
界面
主视图
键位绑定
Left / Right -- 光标动作。
Ctrl-Left / Ctrl-Right -- 光标动作,用文字。
Backspace / Delete -- 擦除字符。
Ctrl-Backspace / Ctrl-Delete -- 擦除文字。
Return -- 执行命令。
Shift-Return -- 添加到命令历史记录而不执行。
用法
别名
一些变量和模块可以方便使用:
C
: 快速访问bpy.context
。D
: 快速访问bpy.data
。bpy
: 顶层级Blender Python API模块。
初探控制台环境
若要检查已经加载到了解释器环境的模块,请在提示符下键入 dir()
并执行。
自动补全
现在,键入 bpy.
,然后按 Tab ,会看到控制台的自动补全功能已经生效。
您会注意到出现一个 bpy
子模块的列表。这些模块作为一组非常强大的工具,封装了我们用Blender Python API能做的一切。
让我们列出 bpy.app
模块的所有内容。
注意在启用自动补全后,命令提示符上方的绿色输出。您看到的是自动补全功能列出的可能结果。以上列表中所列出的内容都是模块属性名称,但凡您看到的任何以 (
结尾的名称都是函数。
我们将充分利用这一点来帮助我们更快地学习API。既然您已经掌握了一些窍门,让我们继续研究 bpy
中的一些模块。
小试牛刀前
如果您在默认Blender场景中查看3D视图,您将注意到三个物体:立方体、灯光和相机。
所有对象的都存在上下文,以及各种模式及其对应的操作。
在任何情况下,只有一个物体处于活动状态,并且可以有多个选定对象。
所有物体都是blend文件中的数据。
存在创建和修改这些对象的操作/函数。
对于以上所简要列出的内容 (并非全部列出, 请注意...) bpy
模块提供了访问和修改数据的相关功能。
示例
bpy.context
Note
要使以下命令显示正确的输出,请确保在3D视图中有选中的物体。
bpy.context.mode
将打印当前3D视图的模式 (物体、 编辑、 雕刻等)。
bpy.context.object
或bpy.context.active_object
将获得对3D视图中当前活动物体的访问。
将X位置数值更改为1:
bpy.context.object.location.x = 1
将物体从前一个X位置移动0.5个单位:
bpy.context.object.location.x += 0.5
修改X, Y, Z 位置:
bpy.context.object.location = (1, 2, 3)
只修改X,Y分量:
bpy.context.object.location.xy = (1, 2)
物体位置的数据类型:
type(bpy.context.object.location)
现在您可以访问到许多的数据:
dir(bpy.context.object.location)
bpy.context.selected_objects
可以访问所有选定对象的列表。
输入以下内容,然后按 Tab
bpy.context.selected_objects
打印列表中第一个对象的名称:
bpy.context.selected_objects[0]
以下是一个比较复杂的示例......但是这会打印一个不包含当前活动对象的对象列表:
[obj for obj in bpy.context.selected_objects if obj != bpy.context.object]
bpy.data
bpy.data
具有访问.blend文件中所有数据的函数和属性。
你可以访问当前.blend文件中的以下数据: 对象、网格、材质、纹理、场景、窗口、 声音、 脚本等。
所有内容汇总起来将会有相当多的数据。
bpy.ops
该工具系统是围绕操作的概念构建的。操作常从按钮或菜单执行,但也可以直接从Python调用。
见全部操作列表的 bpy.ops API文档。