This question already has an answer here:

I've made an export script, sorry to say much of it is copy paste coding.

It was working fine, but now:

enter image description here

There should be an extra menuitem 'Waveller' -- it was there and it was working, but it has just disappeared! ARGH!

I must have done a nono while refactoring the code.

I have tried removing and adding in:

enter image description here

What is going wrong?

Here is my code:

bl_info = {
    "name":         "Waveller",
    "author":       "π",
    "version":      (0, 0),
    "blender":      (2, 6, 2),
    "location":     "File > Import-Export > Waveller",
    "description":  "Export Verts and Faces in Waveller Format",
    "warning":      "",
    "wiki_url":     "http://www.waveller.com",
    "category":     "Import-Export"

if "bpy" in locals():
    import imp
    if "export_waveller" in locals():
        imp.reload( export_waveller )
    import bpy

from bpy.props import StringProperty, BoolProperty

class WavellerExporter( bpy.types.Operator ):
    '''Save in Waveller format'''
    bl_idname = "export_waveller.vert"
    bl_label = "Export Waveller"

    filepath = StringProperty(

    check_existing = BoolProperty(
            name = "Check Existing",
            description = "Check and warn on overwriting existing files",
            default = True,
            options = { 'HIDDEN' },

    def execute( self, context ):
        from . import export_waveller
        export_waveller.export_all( self.filepath )

        return {'FINISHED'}

    def invoke( self, context, event ):
        if not self.filepath:
            self.filepath = bpy.data.filepath
        # bpy.path.ensure_ext(bpy.data.filepath, "")
        wm = context.window_manager
        wm.fileselect_add( self )
        return { 'RUNNING_MODAL' }

def menu_export( self, context ):
                         text = "Waveller"

def register():
    bpy.utils.register_module( __name__ )

    bpy.types.INFO_MT_file_export.append( menu_export )

def unregister():
    bpy.utils.unregister_module( __name__ )

    bpy.types.INFO_MT_file_export.remove( menu_export )

if __name__ == "__main__":

I did do a bit of fiddling, I remember changing:

bl_idname = "export_waveller.vert"


bl_idname = "export_waveller"

(changing it back doesn't fix this)

Well if anyone can put me right I'm very grateful. Also, corrections to any hideousnesses you see lurking in the code are most welcome!


marked as duplicate by iKlsR Jan 10 '14 at 18:08

This question has been asked before and already has an answer. If those answers do not fully address your question, please ask a new question.

  • $\begingroup$ If you check the error output in the terminal, it will tell you whats going on. If you develop scripts its implied that you check error output while trouble-shooting. $\endgroup$ – ideasman42 Jan 11 '14 at 2:40

It was that line!

Can anyone tell me why I'm not allowed to change bl_idname from "export_waveller.vert" to "export_waveller"?

My only guess is that this string is used as a token somewhere, and changing it creates some disparity.

I don't see why resetting factory settings doesn't cure this...



Not the answer you're looking for? Browse other questions tagged or ask your own question.