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 -- 添加到命令历史记录而不执行。
使用方法¶
自动补全¶
现在,键入 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文件中的以下数据: 对象、网格、材质、纹理、场景、窗口、 声音、 脚本等。
所有内容汇总起来将会有相当多的数据。