Blender 3D Add-on Script loading failed.

I made add-on script.
However loading fail in blender UI.
Error message is ‘_RestrictContext’ object has no attribute ‘scene’ .
But this script is very well run in blender of Text Editor.
Why don’t load this add-on?
Please answer to me.
Thank you.
Script code is : http://shshop.da.to/tmp/add_cube.py

======================================================

bl_info = {
“name”: “Add Cube”,
“author”: “fh”,
“version”: (1, 0),
“blender”: (2, 68, 0),
“location”: “View3D > Tool Shelf > Text make”,
“description”: “Adds a new Mesh Object”,
“warning”: “”,
“wiki_url”: “”,
“tracker_url”: “http…”,
“category”: “Object”}

import bpy
from bpy.props import *

Store properties in the active scene

def initSceneProperties(scn):
bpy.types.Scene.MyInt = IntProperty(
name = “Integer”,
description = “Enter an integer”)
scn[‘MyInt’] = 17

bpy.types.Scene.MyFloat = FloatProperty(
    name = "Float", 
    description = "Enter a float",
    default = 33.33,
    min = -100,
    max = 100)

bpy.types.Scene.MyBool = BoolProperty(
    name = "Boolean", 
    description = "True or False?")
scn['MyBool'] = True

bpy.types.Scene.MyEnum = EnumProperty(
    items = [('Eine', 'Un', 'One'), 
             ('Zwei', 'Deux', 'Two'),
             ('Drei', 'Trois', 'Three')],
    name = "Ziffer")
scn['MyEnum'] = 2

bpy.types.Scene.MyString = StringProperty(
    name = "String2")
scn['MyString'] = "Lorem ipsum dolor sit amet"
return

initSceneProperties(bpy.context.scene)

Menu in UI region

class UIPanel(bpy.types.Panel):
bl_label = “Make Text”
bl_space_type = “VIEW_3D”
#bl_region_type = “UI”
bl_region_type = “TOOL_PROPS”

def draw(self, context):
    layout = self.layout
    scn = context.scene
    layout.prop(scn, 'MyInt', icon='BLENDER', toggle=True)
    layout.prop(scn, 'MyFloat')
    layout.prop(scn, 'MyBool')
    layout.prop(scn, 'MyEnum')
    layout.prop(scn, 'MyString')
    layout.operator("idname_must.be_all_lowercase_and_contain_one_dot")

The button prints the values of the properites in the console.

class OBJECT_OT_PrintPropsButton(bpy.types.Operator):
bl_idname = “idname_must.be_all_lowercase_and_contain_one_dot”
bl_label = “make”

def execute(self, context):
    bpy.ops.mesh.primitive_cube_add()       
    return{'FINISHED'}    

def printProp(label, key, scn):
try:
val = scn[key]
except:
val = ‘Undefined’
#print("%s %s" % (key, val))
return val

def register():
bpy.utils.register_class(UIPanel)
bpy.utils.register_class(OBJECT_OT_PrintPropsButton)
def unregister():
bpy.utils.unregister_class(UIPanel)
bpy.utils.unregister_class(OBJECT_OT_PrintPropsButton)

if name == “main”:
register()

Please wrap your code in [noparse]

your code

[/noparse] tags

When addons start they have restricted contexts, there are numerous posts in this forum about that.

My suggestion is to replace all cases of


scn['MyInt'] = 17
 

with a default value in the property definition, like for the float 33.33

and then you can address them via



scene.MyInt

Thank you your reply. i was solved a this problem with oher halper. thank you.

Thank you your reply. i was solved a this problem with oher halper. thank you

http://wiki.blender.org/index.php/Extensions:2.6/Py/API_Changes#Restricted_Context