运行我的脚本时,出现此错误:
AttributeError:“_RestrictContext”对象没有属性“scene”
我正在尝试创建一个优化脚本:
bl_info = {
"name": "Empic Stone",
"author": "Null",
"version": (0, 0, 1),
"blender": (2, 79, 0),
"location": "VIEW3D > ADD > Mesh",
"description": "Empic Stone",
"warning": "",
"wiki_url": "",
"tracker_url": "",
"category": "Add Mesh"
}
# Imports
import bpy
# Mesh - Create Cubic
bpy.ops.mesh.primitive_cube_add(location=(0.00, 0.00, 1.00))
def draw_item(self, context):
self.layout.operator_context = 'INVOKE_DEFAULT'
self.layout.operator(EpicStone.bl_idname, text="Epic Stone", icon="PLUGIN")
def register():
bpy.utils.register_module(__name__)
bpy.types.INFO_MT_mesh_add.append(draw_item)
def unregister():
bpy.utils.unregister_module(__name__)
bpy.types.INFO_MT_mesh_add.remove(draw_item)
if __name__ == '__main__':
register()
指定此脚本适用于搅拌机可能会对人们有所帮助。我曾经使用过它,这是我认识它的唯一原因。无论如何,通常会发生这种错误,因为 Blender 限制对 bpy.context 和 bpy.data 的访问。这是来自文档:
这样做是因为无法保证数据加载时 注册的插件将在用户使用时激活甚至存在 访问插件定义的运算符。 如果您看到这样的异常,则需要更新插件以在执行期间而不是注册时访问上下文:
现在不要“重新发明轮子”,请点击上面的链接并遵循他们的代码。