How to call F6 menu after calling solidify mesh command? When you call bpy.ops.mesh.solidify() Blender will add the mesh but NOT show you the solidify dialog. To adjust it you have to press F6.

I assumed that adding bpy.ops.redo_last() afterwards would do the trick but I think this does not work as expected as no UI appears. And if I press F6 I think a UI opens that appears more to show the dialog for the class I defined and not the solidify command that is part of the class.



Do you have an idea how you have to script this so when executing the script
the solidify command is executed and then the F6 menu for the solidify command will be displayed.

class SolidifyDialog(bpy.types.Operator):  
    bl_idname = "solidify.dialog"  
    bl_label = "Solidify Dialog"  
    bl_options = {'REGISTER', 'UNDO'}


    def execute(self, context):
        bpy.ops.mesh.solidify()
        bpy.ops.redo_last()
        return {'FINISHED'}
Since you are wrapping the Solidify operator inside your operator :


create a property (variable ) to hold the thickness and pass it to the solidify operator.
create a draw() function and call it ( the F6 will also call this draw() function )
you can display the menu of your operator to control the solidify operator through the property.




import bpy
from bpy.props import FloatProperty


class SolidifyDialog(bpy.types.Operator):  
    bl_idname = "solidify.dialog"  
    bl_label = "Solidify Dialog"  
    bl_options = {'REGISTER', 'UNDO'}

    thickness = FloatProperty(
                name = "thickness",
                default = 0.001,
                min = -10,
                max = 10,
                unit ='LENGTH'   
                )
    def execute(self, context):
        bpy.ops.mesh.solidify(thickness = self.thickness)
        return {'FINISHED'} 

    def draw(self, context):
         layout = self.layout
         row = layout.row()
         row.prop(self,"thickness")

    def invoke(self, context, event):
        wm = context.window_manager
        return wm.invoke_props_popup(self, event)

def register():
    bpy.utils.register_class(SolidifyDialog)


def unregister():
    bpy.utils.unregister_class(SolidifyDialog)


if __name__ == "__main__":
    register()


note : wm.invoke_props_dialog() didn't work as expected , it doesn't update the view while changing the value so i switched to wm.invoke_props_popup()