Python 控制台
Python 控制台是一种执行命令的快速方法,可以访问完整的Python API、查询命令历史记录和自动补全。命令提示符是 Python 3.x 的典型操作,加载解释器,并在提示符 >>>
处接受命令。
Python 控制台是内置的用于探索Blender 的可能性的绝佳方法。Python 控制台可用于测试小段Python代码,然后粘贴到更大的脚本中。
Python 控制台。
界面
标题栏菜单
视图菜单
视图缩放
增加/减小控制台文本的字体大小。
移动到前一个单词 Ctrl-Left
将光标移到前一个单词的开头。如果光标位于单词的中间,则光标将移动到当前单词的开头。
移动到后一个单词 Ctrl-Right
将光标移动到下一个单词的末尾。如果光标位于单词的中间,则光标将移动到当前单词的末尾。
移动到行首 Home
将光标移动到行首。
移动到行尾 End
将光标移动到行尾。
控制台菜单
清除全部
刷新控制台,使视图重新开始。请注意,不会清除命令历史记录。
清除行 Shift-Return。
从提示符行中删除所有内容。
删除前一单词 Ctrl-Backspace
删除光标和前一个单词开头之间的所有内容(按句号分隔)。如果光标位于单词的中间,则删除到当前单词开头的所有内容。
删除下一个单词 Ctrl-Delete
删除光标和下一个单词末尾之间的所有内容。如果光标位于单词的中间,则删除到当前单词末尾的所有内容。
复制为脚本 Shift-Ctrl-C
将完整的历史记录缓冲复制到剪贴板,这可以粘贴到文本文件中,用作 Python 脚本。
复制 Ctrl-C
复制选中文本。
粘贴 Ctrl-V
粘贴到命令行。
缩进 Tab
在光标处插入一个制表符。
取消缩进 Shift-Tab
取消选中行缩进。
在历史记录中后退 Up
将当前命令更改为命令历史记录中出现的上一个命令。
在历史记录中前进 Down
将当前命令更改为命令历史记录中出现的下一个命令。
自动补全 Tab
更多信息见 自动补全。
主视图
键位绑定
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 ,会看到控制台的自动补全功能已经生效。
You will notice that a list of submodules inside of bpy
appear. These modules encapsulate all that we can do with Blender Python API and are very powerful tools.
让我们列出 bpy.app
模块的所有内容。
注意在启用自动补全后,命令提示符上方的绿色输出。您看到的是自动补全功能列出的可能结果。以上列表中所列出的内容都是模块属性名称,但凡您看到的任何以 (
结尾的名称都是函数。
我们将充分利用这一点来帮助我们更快地学习API。既然您已经掌握了一些窍门,让我们继续研究 bpy
中的一些模块。
小试牛刀前
If you look at the 3D Viewport in the default Blender scene, you will notice three objects: Cube, Light and Camera.
所有对象的都存在上下文,以及各种模式及其对应的操作。
在任何情况下,只有一个物体处于活动状态,并且可以有多个选定对象。
所有物体都是blend文件中的数据。
存在创建和修改这些对象的操作/函数。
对于以上所简要列出的内容 (并非全部列出, 请注意…) “bpy” 模块提供了访问和修改数据的相关功能。
示例
bpy.context
Note
For the commands below to show the proper output, make sure you have selected object(s) in the 3D Viewport.
bpy.context.mode
Will print the current 3D Viewport mode (Object, Edit, Sculpt, etc.).
bpy.context.object
或 bpy.context.active_object
Will give you access to the active object in the 3D Viewport.
将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调用。
See the bpy.ops API documentation for a list of all operators.