🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
## **壹、获取全选** **AOI:** 首先切换到脚本编辑界面 ![](https://box.kancloud.cn/11828b53715cad142aaf4a6e042dd3dc_263x273.png) ![](https://box.kancloud.cn/56495f6028fa059040478c0dbc718520_1920x1048.png) 左边那一块就是脚本编辑视图,这个毫无疑问了。而下面的黑色大块,则是python的交互窗口,可以直接在这里执行命令。 首先在交互窗口可以看到的是这么些内容 ![](https://box.kancloud.cn/18a9b666bb7f36cfb6e99959270b85ca_782x159.png) 这些内容详细的写上了python版本,交互窗口的操作快捷键等等的信息。而最下面的几行写的却不是操作相关的信息,而是别的内容 **H子:** 说的是这个? ![](https://box.kancloud.cn/7c92f9e419cafaef1399125811d4ea95_781x44.png) 上面写了一堆内置模块和便利化的导入库以及变量?说的是什么呢? **AOI:** 这里就本着简单入门的原则来解释一下,方便后面的展开好了。 首先对于我们获取选中对象的最重要的一项,就是bpy.context 可以看到,在blender API的文档上面 ![](https://box.kancloud.cn/7d1b3d4ee46281d1b5c1a50c194ec9e4_611x287.png) Application Modules这一栏第一个就是Contex Access(bpy.context),可见其重要性。 对于这个类,原文描述是: >The context members available depend on the area of Blender which is currently being accessed. >可用的上下文成员取决于正在访问的Blender区域 >Note that all context values are readonly, but may be modified through the data api or by running operators >所有上下文成员都是只读的,但是可以用过data api或者运算符进行操作。 简单来说,就是可以从这个api里面获取到正在操作的区域的对象。比如说正在3DViewer区域选中了一些模型。那么就可以通过bpy.context下面的某个值获取当前选中的对象了。而此处要说的,就是这“某个对象”了。 首先去到交互窗口,输入bpy.contex. ![](https://box.kancloud.cn/73f94e5f0413fd964fb2f239962aac3c_241x18.png) 然后按下 **【Ctrl+空格键】** 使其弹出自动补完代码提示。 ![](https://box.kancloud.cn/fe078bfcfbc433b886868ec3d203aafd_487x412.png) 就可以看到下面弹出了长长的一条代码提示。同样的,具体的每个值可以获取什么东西,都可以在[**API页面**](https://docs.blender.org/api/blender_python_api_current/bpy.context.html)看到具体的描述。 而我们获得选中对象所需要的值,就是 bpy.context.selected_objects 直接在交互窗口输入这一行命令 ![](https://box.kancloud.cn/9293a2785f7523b1c1254ef435b49aef_736x38.png) 就可以直接见到输出了三个对象,可以看出bpy.context.selected_objects所获取的,就是选中的所有对象的数组。 **H子:** 这样的话,往后就可以开辟一个新变量储存起这个数组的内容,也可以使用各种方式对数组进行遍历,再进一步进行其他的操作了。