Python 控制台

Python控制台因其对Python API、历史记录和自动补全的完整访问而成为一个快速执行命令的途径。

可以先通过控制台来探索脚本的各种可能性,然后将脚本粘贴到更复杂的脚本中。

简介

访问内置的Python控制台

在任何Blender编辑器类型(3D视图,时间线等)下,通过按 Shift-F4 您可以将其切换为控制台编辑器。

../_images/editors_python-console_default.png

命令提示符使用常用的Python 3.x,解释器已加载并准备接受提示符 >>> 后的命令。

初探控制台环境

若要检查已经加载到了解释器环境的模块,请在提示符下键入 dir() 并执行。

../_images/editors_python-console_dir.png

自动补全

现在,键入 bpy. ,然后按 Ctrl-Spacebar ,您会看到控制台的自动补全功能已经生效。

../_images/editors_python-console_completion.png

您会注意到 bpy 子模块的列表出现。这些模块作为一组非常强大的工具,封装了我们用Blender Python API能做的一切。

让我们列出 bpy.app 模块的所有内容。

注意在启用自动补全后,命令提示符上方的绿色输出。您看到的是自动补全功能列出的可能结果。以上列表中所列出的内容都是模块属性名称,但凡您看到的任何以 ( 结尾的名称都是函数。

我们将充分利用这一点来帮助我们更快地学习API。既然您已经掌握了一些窍门,让我们继续研究 bpy 中的一些模块。

小试牛刀前

如果您在3D视图查看默认的Blender场景,您将注意到三个物体:立方体、灯光和摄像机。

  • 所有对象的都存在上下文,以及各种模式及其对应的操作。
  • 在任何情况下,只有一个物体处于活动状态,并且可以有多个选定对象。
  • 所有物体都是blend文件中的数据。
  • 存在创建和修改这些对象的操作/函数。

对于以上所简要列出的内容 (并非全部列出, 请注意...) "bpy" 模块提供了访问和修改数据的相关功能。

示例

bpy.context

Note

要使以下命令显示正确的输出, 请确保在3D视图中有选定的对象。

../_images/editors_python-console_bpy-context.png

试试看!

bpy.context.mode
将打印当前3D视图所处于的模式 (物体、 编辑、 雕刻等)。
bpy.context.objectbpy.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
可以访问所有选定对象的列表。

输入以下内容,然后按 Ctrl-Spacebar:

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文件中的以下数据: 对象、网格、材质、纹理、场景、窗口、 声音、 脚本等。

所有内容汇总起来将会有相当多的数据。

试试看!

../_images/editors_python-console_bpy-data.png

bpy.ops

该工具系统是围绕操作的概念构建的。操作常从按钮或菜单执行,但也可以直接从Python调用。

bpy.ops 所有的操作符API documentation列表。

使用方法

别名

一些变量和模块可以方便使用:

  • C: 快速访问 bpy.context
  • D: 快速访问 bpy.data
  • bpy: 顶层级Blender Python API模块。

键位绑定

  • Up / Down -- Cycle 命令历史。
  • Left / Right -- 光标动作。
  • Ctrl-Left / Ctrl-Right -- 光标动作,用文字。
  • Backspace / Delete -- 擦除字符。
  • Tab --缩进。
  • Shift-Tab -- 取消缩进。
  • Ctrl-Backspace / Ctrl-Delete -- 擦除文字。
  • Ctrl-Spacebar --自动补全。
  • Return -- 执行命令。
  • Shift-Return -- 添加到命令历史记录而不执行。
  • Ctrl-C -- 复制选择内容。
  • Ctrl-V -- 粘贴到命令行。