别急着按X键:用两行代码清空Blender场景,比手动操作更上瘾

简介: 本教程带你用Python脚本替代Blender手动操作:两行代码即可清空默认场景,再扩展实现批量删除、精准筛选与自动重建。从控制台试运行到编写可复用脚本,详解常见报错(如NameError、context错误)及解决方法,助你迈出自动化3D创作第一步。(239字)

​
你打开 Blender,想新建一个文件开始今天的练习。默认场景里那个方方正正的立方体、那盏暖色的灯光、还有那台看着有点复古的摄影机,又一次出现在眼前。你太熟悉它们了,熟悉到觉得有点碍事。
代理 IP 使用小技巧 让你的数据抓取效率翻倍 (16).png

于是你习惯性地按下 A 键全选,再按下 X 键,弹出一个确认框,你敲下回车。一秒之内,世界清空,一片空白。

这个动作你重复过无数次,肌肉记忆比大脑反应还快。但今天,我们换一种方式。

不按键盘,不点鼠标,只用几行代码,让 Blender 听懂另一种语言。这是 oeasy 教程里很特别的一节——在脚本工作区,用 Python 跟你的 3D 世界对话。

把选择权交给代码
打开 Blender,在顶部菜单栏找到那个写着 "Scripting" 的工作区。界面变了,左边是一大片白色的文本编辑器,下面是 Python 控制台,右边还保留着 3D 视图。这个地方,就是你和 Blender 用代码交流的角落。

先看看当前场景里有什么。在控制台里输入:

import bpy
for obj in bpy.data.objects:
print(obj.name)

敲下回车,下方会输出三行字:Cube、Light、Camera。这就是默认场景里那三个老朋友。bpy.data.objects 是 Blender 内部的一份名单,记录着当前文件里所有的对象。用 for 循环挨个打印名字,就像在点名。

现在想删掉立方体。手动操作的话,你得先点击选中它,再按删除键。代码怎么表达这个过程?

删东西之前,得先告诉 Blender "你要删的是谁"。这涉及两个步骤:选中,然后删除。

在 Blender 的 Python 世界里,有一个东西叫 bpy.ops.object,里面装满了对物体进行操作的命令。选中用的命令是 select_all,删除用的命令是 delete。

在控制台里敲入这行:

bpy.ops.object.select_all(action='SELECT')

回车,再看 3D 视图里,立方体、灯光、摄影机全部被框上了高亮边框——全选成功了。接着敲:

bpy.ops.object.delete()

回车,世界清空。三个对象从 bpy.data.objects 的名单里彻底消失了。

就是这么简单。两行代码,干了手动操作两三秒才能完成的事。看起来没节省多少时间,但这扇门一旦推开,后面的事情就不一样了。

让脚本替你动手
刚才是在控制台里一行一行敲,适合测试和探索。想把这套动作用在更多地方,得把它写成脚本。

在脚本编辑区点 "New",新建一个文本文件。把刚才那两行代码敲进去:

import bpy
bpy.ops.object.select_all(action='SELECT')
bpy.ops.object.delete()

点击 "Run Script" 按钮(或者按 Alt+P),场景清空。

写脚本的好处是,你可以反复用,也可以在此基础上加更多东西。比如删完之后马上创建一个新的立方体:

import bpy
bpy.ops.object.select_all(action='SELECT')
bpy.ops.object.delete()
bpy.ops.mesh.primitive_cube_add(size=2, location=(0,0,1))

运行一下,旧的都没了,一个新的边长为 2、位置在 (0,0,1) 的立方体出现在场景里。

这就是脚本的爽快之处:把一系列操作打包成一个动作。以后每次想从零开始,不用再手动删删减减,运行一下脚本,世界立刻清空,然后按你的想法重新构建。

那些让你摔跟头的坑
第一次照抄代码的时候,十有八九会遇到这么个情况:

敲完 bpy.ops.object.select_all(action='SELECT') 和 bpy.ops.object.delete(),点运行,底下弹出一行红字:NameError: name 'bpy' is not defined。

懵了。明明刚才在控制台里敲得好好的,怎么写成脚本就报错?

原因很简单:控制台是交互式的,你每敲一行它都记着上下文。但脚本是个独立的世界,第一行如果不告诉它要用什么工具,它后面就不知道 bpy 是谁。

解决方法就是代码里最上面那一行:import bpy。导入之后,Blender 的 Python API 才能用。这就像做菜之前先拿出锅和铲,东西就在那儿,但得先拿出来才能用。

还有个坑是关于选中的。

有人想只删立方体,不删灯光和摄影机,于是写:

import bpy
bpy.ops.object.delete()

运行,底下提示:Operator bpy.ops.object.delete.poll() Failed, context is incorrect。

为什么?因为 delete 命令不知道你要删谁。你没告诉它哪个对象是选中的,它就只能干瞪眼。

正确的做法是先选中立方体。怎么用代码选中单个对象?

import bpy
bpy.data.objects['Cube'].select_set(True)
bpy.ops.object.delete()

bpy.data.objects['Cube'] 是找到名字叫 "Cube" 的那个对象,.select_set(True) 是把它设为选中状态。然后再删除,就可以了。

如果想删的是灯光,把 Cube 换成 Light 就行。想删摄影机,换成 Camera。

从手动到自动
手动操作的时候,选中、删除,眼睛看着界面,手指配合大脑,每一步都清清楚楚。换成代码,这些步骤变成了函数调用和参数传递。刚开始可能觉得多此一举,明明手点更快,干嘛要写代码?

但手点有个上限。假设场景里有 100 个对象,你想删掉其中 50 个名字带 "Cube" 的,手动一个一个找得点到什么时候?写几行代码,一秒搞定:

import bpy
for obj in bpy.data.objects:
if "Cube" in obj.name:
obj.select_set(True)
else:
obj.select_set(False)
bpy.ops.object.delete()

这段代码的意思是:遍历所有对象,如果名字里包含 "Cube",就选中;否则取消选中。然后删除所有选中的。

条件判断 + 循环,让删除这件事从 "手动挑拣" 变成了 "按规则自动筛选"。这才是脚本工作区真正的价值——不是重复你已经会的手动操作,而是做那些手动操作做不了、或者做起来太慢的事。

写在脚本里的自由
oeasy 在教程里反复演示了一个动作:新建文件,写几行脚本,运行,场景清空。这个动作看起来简单,但每运行一次,都是在提醒你一件事:在 Blender 里,手不是唯一的工具。

那些默认的立方体、灯光、摄影机,是 Blender 给你的起点,但不是束缚。你完全可以用代码把它们一键清空,然后用代码再一键创建出新的世界。

下次打开 Blender,不急着按 A 和 X,试着在脚本工作区敲几行代码,让 Python 替你清空场景。刚开始可能会碰到 NameError,可能会忘了选中的步骤,但这些坑踩过一次,后面就是平路。

当你习惯用 import bpy 开启每一次脚本,你会发现 3D 创作多了一个维度——除了眼睛看、手去点,还有代码在背后静静执行你的指令。那种感觉,像多了个帮手。

​

目录
相关文章
|
7月前
|
算法 测试技术 Python
Blender游乐场:用参数运行模式解锁3D创作新姿势
本文带你玩转Blender脚本工作区,以“参数运行模式”为核心,用Python代码直观控制3D对象:一键清空场景、参数化创建/变形物体、批量生成阵列与建筑、实现动态动画。零基础也能快速上手,提升建模效率!
599 5
|
7月前
|
监控 供应链 算法
天猫开放平台的其他API接口是什么
天猫开放平台提供了一系列API接口,涵盖商品管理、库存更新、价格调整、商家编码维护、视频资源获取等多个方面,以下是一些关键接口及其功能:
|
存储 数据采集 数据可视化
Open3d系列 | 1. Open3d实现点云数据读写、点云配准、点云法向量计算
Open3d系列 | 1. Open3d实现点云数据读写、点云配准、点云法向量计算
18246 1
Open3d系列 | 1. Open3d实现点云数据读写、点云配准、点云法向量计算
|
8月前
|
算法 数据可视化 数据安全/隐私保护
Python图像处理利器:Pillow (PIL)入门指南
本教程系统讲解Python图像处理库Pillow:从环境搭建、核心概念(Image对象、模式、坐标系)到实战项目(批量图片处理+水印+缩略图),涵盖最佳实践、常见陷阱及NumPy/OpenCV集成等进阶内容,助你高效掌握图像处理全栈技能。(239字)
|
8月前
|
机器学习/深度学习 传感器 运维
时间序列异常检测的5种方法:从统计阈值到深度学习
时间序列异常检测旨在识别偏离正常规律的数据点,如凌晨流量突增、传感器骤降等。因数据含趋势、季节性与噪声,需结合统计法(Z-Score)、移动平均、季节分解、Isolation Forest或自编码器等方法,多策略融合可有效降低误报。
1004 7
时间序列异常检测的5种方法:从统计阈值到深度学习
|
7月前
|
JSON 算法 API
如何通过Shopee API根据商品ID获取商品详情
本文详解如何调用Shopee开放API获取商品详情:涵盖开发者注册、凭证获取、签名生成(HMAC-SHA256)、请求构建及Python完整示例代码,并提供错误处理、调试技巧与安全注意事项,助你快速稳定接入。(239字)
|
8月前
|
人工智能 监控 安全
2026年阿里云+本地部署OpenClaw终极进化指南:Agent-Reach skill一条命令实时读取B站、小红书等全平台内容
2026年,AI智能体的核心竞争力已从“模型大小”转向“视野广度”。OpenClaw(原Clawdbot、Moltbot)作为开源AI助手的标杆,虽能实现7×24小时自动化任务执行,但传统使用模式下仍受限于“信息孤岛”——需手动投喂内容、依赖付费API、实时信息获取能力薄弱。而刚爆火的开源工具Agent-Reach(900+ GitHub Star)彻底改变这一现状,它就像给OpenClaw装上“全网眼睛”,零API费、零配置,一条命令即可让AI实时读取Twitter、B站、小红书等全平台内容,真正实现“自主上网、主动感知”。
3179 2
|
9月前
|
存储 缓存 弹性计算
阿里云ECS内存型r7实例(ecs.r7.xlarge)4核32G云服务器优惠活动配置价格及性能测评
阿里云ECS内存型r7实例(规格ecs.r7.xlarge)是专为企业级内存密集型场景设计的主力机型,核心配置为4核32G CPU内存(1:8黄金配比)、1M-5M可灵活选择的带宽以及40GB ESSD云盘。该实例依托第三代神龙架构和Intel Ice Lake处理器,在内存性能、存储I/O效率与网络稳定性上做了针对性优化,特别适合需要大内存支撑的高性能数据库、缓存服务和数据分析等业务。本文从配置细节、性能优势、适用场景等维度展开解析,帮大家直观理解这款实例的核心价值和使用要点。
|
7月前
|
定位技术 API 网络虚拟化
跨境物流风控实战:用IP查询识别虚假收货地址
去年黑五,某平台遭IP与收货地分离欺诈:东南亚IP伪装美国特拉华州地址,骗补后集体拒收,致数十万美元损失。此类异常订单物流失败率达35%,是正常的7倍。本文详解IP地理校验三层风控(国家/城市/ISP)、三类落地场景及多维协同方案,助平台在下单环节精准识别虚假地址,降低跨境物流损耗。
606 2
|
7月前
|
人工智能 安全 API
保姆级图文教程!OpenClaw(Clawdbot)阿里云/本地部署配置百炼API+5700个 Skill 安全验真及避坑指南
ClawHub作为OpenClaw(原Clawdbot)的官方技能市场,已汇聚5700+各类技能插件,覆盖办公自动化、信息检索、内容创作等全场景需求。但光鲜背后暗藏致命风险:Koi Security报告显示,约12%的Skill存在恶意行为,近期曝光的ClawHavoc供应链攻击更是警示——黑客将恶意代码伪装成“加密钱包追踪器”等实用工具,导致超1000名用户API密钥被窃取、设备植入后门。
2185 6