0
$\begingroup$

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 )
else:
    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(
            subtype='FILE_PATH',
            )

    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 ):
    self.layout.operator(
                         WavellerExporter.bl_idname,
                         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__":
    register()

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

bl_idname = "export_waveller.vert"

to

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!

$\endgroup$

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
-1
$\begingroup$

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...

Anyone?

$\endgroup$

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