他のクラスの変数にアクセスしたいです。 他のクラスの静的変数は非常にアクセスが良好でした。 しかし、ダイナミック変数の変数値が変更されたため、アクセスできませんでした。他のユーザークラス(ブレンダーのpython)の変数にアクセスするには?
なぜ私は変更された変数値を取得できませんか?
bl_info = {
"name": "New Object",
"author": "Your Name Here",
"version": (1, 0),
"blender": (2, 75, 0),
"location": "View3D > Add > Mesh > New Object",
"description": "Adds a new Mesh Object",
"warning": "",
"wiki_url": "",
"category": "Add Mesh",
}
import bpy
class SelectFace(bpy.types.Operator):
bl_idname = "object.d0"
bl_label = "Select Face"
selected_faces = 2
def __init__(self):
self.selected_faces = 3
def execute(self, context):
print("self.selected_faces: ", self.selected_faces)
self.selected_faces += 1
bpy.ops.object.d1('INVOKE_DEFAULT')
return {'FINISHED'}
class OperationAboutSelectedFaces(bpy.types.Operator):
""" Test dialog. """
bl_idname = "object.d1"
bl_label = "Test dialog"
F_num = bpy.props.IntProperty(name="be Selected face", default=1)
@classmethod
def poll(self, context):
obj = context.object
return(obj and obj.type == 'MESH' and context.mode == 'OBJECT')
def invoke(self, context, event):
# This block code is Not Work! --- TypeError: bpy_struct.__new__(type): expected a single argument.
testInstance = SelectFace() # why not work?
print("testInstance.selected_faces: ", testInstance.selected_faces)
self.F_num = testInstance.selected_faces
# This block code is nice Work!
testInstance = SelectFace.selected_faces
print("testInstance: ", testInstance)
self.F_num = testInstance
return context.window_manager.invoke_props_dialog(self)
def execute(self, context):
context.active_object.data.polygons [self.F_num].select = True
return {'FINISHED'}
def register():
bpy.utils.register_class(SelectFace)
bpy.utils.register_class(OperationAboutSelectedFaces)
def unregister():
bpy.utils.unregister_class(SelectFace)
bpy.utils.unregister_class(OperationAboutSelectedFaces)
if __name__ == "__main__":
register()
bpy.ops.object.d0()
うわー...空白の巨大なラインが見えます! – linusg
あなたは何をしようとしているのかよく説明できますか?どちらの変数値を変更しようとしていますか? –
Select_Face()クラスのselected_faces変数は、他のコマンドから "bpy.ops.object.d0()"によって変更できます。 selected_faces変数は+1を増やします。 "bpy.ops.object.d0()"のボタンをクリックしたとき。しかし、OperationAboutSelectedFaces()のdialogBoxはselected_faces変数の値を変更しませんでした。 – user3052391