# autos.skills.blender 库模块帮助文档

## autos.skills.blender 成员列表 <a id="autos.skills.blender" href="#autos.skills.blender">&#x23;</a>

### autos.skills.blender.apiDescribe(path,options) <a id="autos.skills.blender.apiDescribe" href="#autos.skills.blender.apiDescribe">&#x23;</a>
返回条目全文：bpy.types.X[.member]、bpy.ops.mod.op[.arg]、bmesh.ops.x、mathutils.X.y、bpy.context.member、节点 bl_idname/标签、Node.inputs['名称或identifier']、枚举项 prop['ID']。  
支持 bpy.data/bpy.context/C/D 属性路径沿 RNA 类型解析（如 bpy.data.objects.new -> BlendDataObjects.new）及继承成员。  
查不到返回 null,err,detail：detail.candidates/typeMembers（小类型的全部成员名）/sameNameElsewhere/globalCandidates 给出新名或近似名候选。  
节点属性的 sig 末尾 (nodes.new: X) 与 data.initial 为新建节点的实际初值（类级 default 可能不同）。  
options: client（只读查询实时会话：bpy.data/bpy.context 路径返回当前值、动态枚举、节点插槽实际状态、节点组接口、几何节点修改器输入的接口名与值；会话独有的插件类型/算子）、members=false（类型不列成员）、tree（节点在其他树类型下的差异）、itemLimit、enumItems、timeoutMs。

### autos.skills.blender.apiIndex(options) <a id="autos.skills.blender.apiIndex" href="#autos.skills.blender.apiIndex">&#x23;</a>
查看或构建索引：返回 dir/db/版本/计数/coverage（覆盖与已知局限）。rebuild=true 强制重建；build=false 只查看；client/blender 选择 Blender。

### autos.skills.blender.apiSearch(query,options) <a id="autos.skills.blender.apiSearch" href="#autos.skills.blender.apiSearch">&#x23;</a>
检索本机 Blender API 索引（RNA类型/属性/函数、算子、Python模块、节点与插槽、枚举项、上下文成员）。  
首次或 Blender 变化时自动用后台工厂进程构建（约十几秒），之后离线查询，不启动 Blender。  
options: kind（type/node/module/op/func/prop/socket/enum，可为数组）、prefix（路径前缀）、limit=20（最高200）、client（用该会话的 Blender 版本）、blender（指定 exe）、build=false（无索引不构建）。  
返回 {query,count,matched,results:[{path,kind,sig,summary,name}],blender}。

### autos.skills.blender.captureViewport(client,options) <a id="autos.skills.blender.captureViewport" href="#autos.skills.blender.captureViewport">&#x23;</a>
当前视口截图。method=offscreen（默认）、screen（区域含UI）、opengl（视口渲染）。  
size=800，clean=true，outputDir 可省略。windowIndex/areaIndex/regionIndex 从1开始。  
默认临时使用120秒RPC期限，调用后恢复；超时不取消、不重放。返回 path、method、warnings、imageCheck；不自动回退、不抢焦点。

### autos.skills.blender.checkImage(path) <a id="autos.skills.blender.checkImage" href="#autos.skills.blender.checkImage">&#x23;</a>
GDI+解码与16x16像素采样。仅作空图提醒，不代表视觉验收；返回width/height/sampleMin/sampleMax/warnings。

### autos.skills.blender.connect(session="autos",timeoutMs=30000) <a id="autos.skills.blender.connect" href="#autos.skills.blender.connect">&#x23;</a>
只连接现有会话。  

[返回对象:processBlenderClientObject](#processBlenderClientObject)

### autos.skills.blender.diagnostics(client,options) <a id="autos.skills.blender.diagnostics" href="#autos.skills.blender.diagnostics">&#x23;</a>
返回Blender版本、displayGpu、Cycles配置、视口摘要。refreshDevices=true 才探测计算设备（可能初始化驱动）。  
Cycles设备列表不是视口兼容性证明；不写偏好、不自动切换后端。

### autos.skills.blender.diff(before,after,options) <a id="autos.skills.blender.diff" href="#autos.skills.blender.diff">&#x23;</a>
本地比较两份 snapshot，无需连接或启动 Blender。match=identity 默认要求同一运行期；跨进程/磁盘回读必须显式 match=name。  
tolerance=0.000001 为数值绝对容差，可设0；哈希始终精确。maxChanges=200 仅限制字段详情，仍保留对象级结论。  
返回 added/removed/changed/unchanged、unmatchedBefore/After、unverified、coverageComplete、equalWithinCoverage；status=equal/different/inconclusive。  
added/removed 指观察范围的成员变化，不证明数据块新建/删除；范围不一致或截断时不推断缺失对象已删除。不是锁/事务/回滚。

### autos.skills.blender.findPath() <a id="autos.skills.blender.findPath" href="#autos.skills.blender.findPath">&#x23;</a>
只读查找 blender.exe。

### autos.skills.blender.finishRender(job) <a id="autos.skills.blender.finishRender" href="#autos.skills.blender.finishRender">&#x23;</a>
等待并排空管道，检查退出码、结果文件和图像；重复调用返回缓存，不再渲染。  
长任务可在线程中调用；超时/取消不能通过丢弃job实现，可显式 job.process.terminate()。不跨工具调用传job对象。

### autos.skills.blender.inspect(client,options) <a id="autos.skills.blender.inspect" href="#autos.skills.blender.inspect">&#x23;</a>
有界场景摘要。names/collection 二选一；includeChildren=true；limit=50，上限200。成功直接返回数据。  
经RPC返回的业务数据保留logs元数据（旧桥接可能无此字段），包含stdout/stderr各自的totalBytes、keptBytes、truncated；勿把输出前缀当作完整日志。snapshot/diagnostics/captureViewport/preview同样保留。

### autos.skills.blender.minAutos <a id="autos.skills.blender.minAutos" href="#autos.skills.blender.minAutos">&#x23;</a>
最小 Autos 版本。

### autos.skills.blender.open(options) <a id="autos.skills.blender.open" href="#autos.skills.blender.open">&#x23;</a>
启动或重连原生 Blender 会话。默认 session=autos，其他参数同 process.blender.jsonRpc；已有会话不自动重启。  

[返回对象:processBlenderClientObject](#processBlenderClientObject)

### autos.skills.blender.preview(client,options) <a id="autos.skills.blender.preview" href="#autos.skills.blender.preview">&#x23;</a>
隔离目标的多视图几何预览并拼图。names/collection 二选一；views=[iso,front,right]；size=640；margin=0.12；maxObjects=200；sheet=false 可禁拼图。  
不传 framing 则自动取景并返回 framing；再次传入原 framing 可锁定世界参考归一化、相机矩阵/正交尺度/裁剪、分辨率。用 JSON.save/load 保存，不要手改或四舍五入。  
固定模式省略 views/size/margin 则继承；显式冲突报错。越界仍出图，framingCheck.outOfFrame 与每图 overflow 报告保守求值包围盒越界，不自动重新取景。  
engine 默认 BLENDER_WORKBENCH，也支持 EEVEE（兼容新旧枚举名）、CYCLES；device=CPU/GPU 可选（仅Cycles）。固定构图不锁定模型/材质/引擎，不等于状态未变。  
在当前Blender执行，可能占用主线程并替换Render Result；不改变原模型/相机/选择。返回 images、sheet、boundsWorld、skippedCount、framing、framingMode、framingCheck。

### autos.skills.blender.renderBackground(client,options) <a id="autos.skills.blender.renderBackground" href="#autos.skills.blender.renderBackground">&#x23;</a>
当前相机/场景快照后在独立进程渲染单图。返回 job，立即调用 finishRender(job) 读取日志和结果。  
options: outputDir、engine（省略继承）、size（最长边）、samples、device=CPU/GPU、computeDeviceType（如OPTIX/HIP/ONEAPI）。  
不强制CPU、不保存偏好。有源相机才可用。保留snapshot.blend供排错；不自动打包外部资源或烘焙模拟。

### autos.skills.blender.snapshot(client,options) <a id="autos.skills.blender.snapshot" href="#autos.skills.blender.snapshot">&#x23;</a>
有限只读状态快照，不是 .blend 备份。必须指定 names 或 collection；includeChildren=true，limit=200（最高1000）。  
默认轻量；meshHash/nodeHash=true 按需计算基础网格/节点子集的精确指纹。Object模式，不切换模式、不注入模型UUID。  
maxMeshElements=1000000、maxNodes=1000、maxBytes=2097152；返回 coverage.complete/truncated/missing/issues/excluded。只声明覆盖内的观察，不保证整模型未变。  
用 JSON.save/load 保存回读；不可把跨线程丢失元信息的表代替原始JSON。当前RPC期限可用timeoutMs临时覆盖。

### autos.skills.blender.version <a id="autos.skills.blender.version" href="#autos.skills.blender.version">&#x23;</a>
技能版本。
