1
$\begingroup$

I've been trying to clean up a pie menu I created. As you can see from the screenshot, my menus overlap. I'm not entirely sure what options are available to me, I've created this looking at other people's code. Ideally I would love to be able to control the width of them as well. Any help would be greatly appreciated. Thanks! :D

https://imgur.com/a/oiGPr

Here is some of my code...

class EditorSwitcherMenu(bpy.types.Menu):
    bl_idname = "editor_switcher_pie_menu"
    bl_label = "Ian's Tools"

    def draw(self, context):

        layout = self.layout
        pie = layout.menu_pie()

        box = pie.box().column()

        box.operator("ian.recalc", text="Recalc Normals", icon='TIME')
        box.operator("ian.flip", text="Flip Normals", icon='TIME')
        box.operator("mesh.primitive_cube_add", text="", icon='DOT')
        box.operator("ian.ngon", text="ngon convert", icon='GO_LEFT')
        box.operator("ian.tri", text="tri convert", icon='ACTION')
        box.operator("mesh.primitive_cube_add", text="", icon='DOT')
        box.operator("ian.cpiv", text="Set Pivot Curve", icon='POSE_HLT')
        box.operator("mesh.primitive_cube_add", text="", icon='DOT')
        box.operator("ian.cpipe", text="Curve Wire 1", icon='IPO')
        box.operator("ian.cpipe2", text="Curve Wire 2", icon='IPO')
        box.operator("ian.cpipe3", text="Curve Wire 3", icon='IPO')
        box.operator("ian.cpipe4", text="Curve Wire 4", icon='IPO')
        box.operator("ian.cpipe4", text="Curve Wire 5", icon='IPO')

        box = pie.box().column()

        box.operator("mesh.primitive_cube_add", text="", icon='DOT')

        box = pie.box().column()

        box.operator("ian.modelprep", text="Ian's Obj Prep", icon='VPAINT_HLT')
        box.operator("ian.modelprepnv", text="Ian's Obj Prep NO VPaint", icon='WPAINT_HLT')
        box.operator("mesh.primitive_cube_add", text="", icon='DOT')
        box.operator("ian.batch_export", text="Export to Substance", icon='RECOVER_LAST')
        box.operator("mesh.primitive_cube_add", text="", icon='DOT')

        box = pie.box().column()

        box.operator("ian.exddo", text="Export to DDO", icon='RECOVER_LAST')
        box.operator("mesh.primitive_cube_add", text="", icon='DOT')
$\endgroup$

1 Answer 1

2
$\begingroup$

Not an idea solution, but it gets the job done. I went ahead and just made it 4 menus that are broken up using "column_flow".

enter image description here

here is the code example...

class EditorSwitcherMenu(bpy.types.Menu):
    bl_idname = "editor_switcher_pie_menu"
    bl_label = "Ian's Tools"

    def draw(self, context):

        layout = self.layout
        #layout.scale_x = 50
        #layout.scale_y = 50
        pie = layout.menu_pie()
        #pie.scale_y = 1

        box = pie.split().box().row().column().column_flow(2)
        box.scale_x = 2
        #box.scale_y = .6

        box.operator("ian.recalc", text="Recalc Normals", icon='TIME')
        box.operator("ian.flip", text="Flip Normals", icon='TIME')
        #box.operator("mesh.primitive_cube_add", text="", icon='DOT')
        box.separator()
        box.operator("ian.ngon", text="ngon convert", icon='GO_LEFT')
        box.operator("ian.tri", text="tri convert", icon='ACTION')
        #box.operator("mesh.primitive_cube_add", text="", icon='DOT')
        #row = box.row(align=True).column_flow(2)
        box.separator()
        box.operator("ian.cpiv", text="Set Pivot Curve", icon='POSE_HLT')
        #box.operator("mesh.primitive_cube_add", text="", icon='DOT')
        box.operator("ian.cpipe", text="Curve Wire 1", icon='IPO')
        box.operator("ian.cpipe2", text="Curve Wire 2", icon='IPO')
        box.operator("ian.cpipe3", text="Curve Wire 3", icon='IPO')
        box.operator("ian.cpipe4", text="Curve Wire 4", icon='IPO')
        box.operator("ian.cpipe4", text="Curve Wire 5", icon='IPO')

        #box = pie.split(percentage=.80).box().row(align=True).column()
        box = pie.split().box().row().column().column_flow(2)
        box.scale_x = 2


        #box.operator("mesh.primitive_cube_add", text="", icon='DOT')
        #box = pie.split(percentage=.80).box().row(align=True).column()
        box.operator("ian.modelprep", text="Ian's Obj Prep", icon='VPAINT_HLT')
        box.operator("ian.modelprepnv", text="Ian's Obj Prep NO VPaint", icon='WPAINT_HLT')
        #box.operator("mesh.primitive_cube_add", text="", icon='DOT')
        box.separator()

        box.operator("ian.batch_export", text="Export to Substance", icon='RECOVER_LAST')
        #box.operator("mesh.primitive_cube_add", text="", icon='DOT')

        #box = pie.split(percentage=.80).box().row(align=True).column()

        box.operator("ian.exddo", text="Export to DDO", icon='RECOVER_LAST')
        #box.operator("mesh.primitive_cube_add", text="", icon='DOT')
        box.separator()
        box.operator("ian.pbrmap", text="PBR Map", icon='COLOR')
$\endgroup$

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .