SuperAPI AI 工具集

sverchok-errors-common

编程与开发

查看项目

更新于 10-15 22:17

技能介绍

该技能用于调试 Sverchok 节点代码中的静默数据损坏、缺失更新回调、socket 数据变异及 IfcSverchok 实体管理问题。它整理了 7 类常见错误模式与 10 个 AI 生成 Sverchok 代码时的典型错误,并配有症状对照表。

用途:在 Blender/Sverchok 节点出现几何错误、属性无响应、数据被截断或 IFC 实体丢失时,按清单定位问题;也用于审查 AI 生成的节点代码。

主要能力与要点:输出数据必须包裹对象级列表,使用 sv_set([[data]]) 而非 sv_set([data]);顶点需三层嵌套 [ [(0,0,0),(1,0,0)] ];矩阵直接在对象层,不额外嵌套。属性需带 update=updateNode 回调,否则改动无效。不要修改 sv_get(deepcopy=False) 取回的数据,避免污染上游缓存,需变异时用 deepcopy=True。列表匹配应使用 match_long_repeat(),而非 zip(),防止静默截断。节点用 sv_init(self, context) 初始化,socket 只在 sv_init() 或 sv_update() 创建,不可在 process() 中创建;SNLite 使用单字母别名 v、s、m、c。若输出未连接,可在 process() 中提前返回以避免无谓计算。

IfcSverchok 部分:每次整树更新前会调用 SvIfcStore.purge(),STEP ID 会失效,应按 GUID(如 ifc_file.by_guid(...))或类型查询;IFC 节点需要标准双层嵌套。撤销操作可能导致 Blender 崩溃,属已知问题,建议频繁保存并改用“Re-run all nodes”。

适用场景:Sverchok 自定义节点开发、IfcSverchok 节点树调试、代码审查。

限制:文档仅给出错误模式与修复方向,具体完整可运行示例、各嵌套层级细节、IfcSverchok 实体管理与自定义节点生命周期需参见其引用的配套资料。官方来源为 nortikin/sverchok 与 IfcOpenShell v0.8.0 ifcsverchok。