Mon Menu perso !

Ici on parle des scripts

Modérateurs : frez, Yadoob, stilobique, Matpi, ModSquad

Mon Menu perso !

Message par cedric » 09 Août 2013, 23:46

Hello,

Blender est un soft à raccourcis et autant ça peut être puissant, autant ça peut être difficile !
De plus, des fois, certains outils ou paramètres sont planqués dans des menus, donc j'ai décidé de me faire un ptit menu perso histoire de gagner du temps et de ne plus me faire chier à aller dans les menus.

Voici donc le code de mon menu, vous pouvez le modifier, l'améliorer, c'est comme vous voulez !
Je remercie PID pour son aide vu que je suis une quiche en python.

Code : Tout sélectionner
bl_info = {
        "name": "Wazou_Custom_Menu",
        "category": "3D View",
        "author": "Cedric_Lepiller & PID"
        }       
 
import bpy

######## Class_Submenus ########

# Add Mesh #
class subMenu1(bpy.types.Menu):
    bl_label = "Add Mesh"

    # TODO: get rid of the custom text strings?
    def draw(self, context):
        layout = self.layout

        layout.operator("mesh.primitive_cube_add", icon='MESH_CUBE')
        layout.operator("mesh.primitive_plane_add", icon='MESH_PLANE')
        layout.operator("mesh.primitive_circle_add", icon='MESH_CIRCLE')
        layout.operator("mesh.primitive_uv_sphere_add", icon='MESH_UVSPHERE')
        layout.operator("mesh.primitive_cylinder_add", icon='MESH_CYLINDER')
        layout.operator("object.camera_add", icon='OUTLINER_DATA_CAMERA')

bpy.utils.register_class(subMenu1)

# Add Mesh #
class subMenu2(bpy.types.Menu):
    bl_label = "Modifiers"

    # TODO: get rid of the custom text strings?
    def draw(self, context):
        layout = self.layout

        layout.operator("waz.mirror", icon='MOD_MIRROR')
        layout.operator("waz.solidify", icon='MOD_SOLIDIFY')
        layout.operator("waz.shrinkwrap", icon='MOD_SHRINKWRAP')

bpy.utils.register_class(subMenu2)

######## Class Modifiers ########

#Class_Solidify
class wazsolidify(bpy.types.Operator):
    bl_idname = "waz.solidify"
    bl_label = "Add Solidify"
    bl_description = "custom Modify"

    def execute(self, context):

        bpy.ops.object.modifier_add(type='SOLIDIFY')

        return{'FINISHED'}
bpy.utils.register_class(wazsolidify)

#Class_Mirror
class wazmirror(bpy.types.Operator):
    bl_idname = "waz.mirror"
    bl_label = "Add Mirror"
    bl_description = "custom Modify"

    def execute(self, context):

        bpy.ops.object.modifier_add(type='MIRROR')

        return{'FINISHED'}
bpy.utils.register_class(wazmirror)

#Class_shrinkwrap
class wazshrinkwrap(bpy.types.Operator):
    bl_idname = "waz.shrinkwrap"
    bl_label = "Add Shrinkwrap"
    bl_description = "custom Modify"

    def execute(self, context):

        bpy.ops.object.modifier_add(type='SHRINKWRAP')

        return{'FINISHED'}
bpy.utils.register_class(wazshrinkwrap)
 
######## menu for global 3D View ########

class customMenu(bpy.types.Menu):
    bl_label = "Wazou Custom Menu"
    bl_idname = "View3D.wazoucustomMenu"
 
    # Set the menu operators and draw functions
    def draw(self, context):
        layout = self.layout
       
        layout.menu("subMenu1", icon='OBJECT_DATAMODE')
        layout.menu("subMenu2", icon='MODIFIER')
       
        layout.separator()
       
        #Normals block
        layout.label(text="### Normales ###")
        layout.operator("view3d.display_shade_smooth")
        layout.operator("view3d.display_shade_flat")
        layout.operator("mesh.normals_make_consistent")
        layout.operator("mesh.flip_normals")
       
        layout.separator()
       
        #Wire block
        layout.label(text="### Wire ###")
        layout.operator("view3d.display_wire_on", icon='WIRE')
        layout.operator("view3d.display_wire_off", icon='SOLID')
       
        layout.separator()
       
        #XRay block
        layout.label(text="### Xray ###")
        layout.operator("view3d.display_x_ray_on", icon='META_EMPTY')
        layout.operator("view3d.display_x_ray_off", icon='META_PLANE')
        #layout.operator("space_data.use_occlude_geometry", icon='ORTHO')
       
        layout.separator()
       
        #Dissolve block
        layout.label(text="### Dissolve ###")
        layout.operator("mesh.dissolve_limited")
        layout.operator("mesh.dissolve_verts")
        layout.operator("mesh.dissolve_edges")
        layout.operator("mesh.remove_doubles")
       
        layout.separator()
     
        #Edit block
        layout.label(text="### Edit ###")
        layout.operator("mesh.merge")
        layout.operator("mesh.fill_grid")
        layout.operator("mesh.subdivide")
        layout.operator("mesh.unsubdivide")
        layout.operator("mesh.separate")
        layout.operator("object.join")
       
       
        layout.operator
       
       
       
       
def register():
    bpy.utils.register_class(customMenu)
    bpy.ops.wm.call_menu(name=customMenu.bl_idname)

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

if __name__ == "__main__":     register()


Mon menu ressemble à ça :

Image

Comme vous le voyez, j'ai des outils qui me permettent d'afficher le wire, le xray, de supprimer des vertex, edges etc etc.
Je gagne donc du temps ^^

- Pour utiliser ce script en Addon, il faut ajouter # devant bpy.ops.wm.call_menu(name=customMenu.bl_idname) à la ligne 151 et enregistrer le script en .py.
Si vous enlevez le #, vous pourrez voir le script fonctionner si vous appuyez sur l'icone Run script.

Image

- Pour l'ajouter à blender en Addon, il suffit de faire Install From File dans le menu Addons et d'aller chercher le script.

- Pour lui ajouter un raccourci, il suffit d'aller dans l'onglet Input>3D View>3D View Global et de cliquer sur Add New, puis de mettre la même chose.

Image

J'ai mis SpaceBar car c'est pour moi le plus simple et logique vu que j'ai toujours un doigt dessus.

- Pour que les outils Wire et Xray fonctionnent, il faut que l'Addon "Display Tool" soit activé.
J'ai pas trouvé comment mettre les codes de celui de blender :(

Pensez à modifier le raccourcis du search qui est de base sur space.

Image

Voilà voilà !

C'est aussi compliqué que ça ^^
Cédric Lepiller, Freelance 3D Pitiwazou.com, Mes Addons, Asset Management, Speedflow
Avatar de l’utilisateur
cedric
Administrateur
 
Message(s) : 7057
Inscription : 03 Août 2013, 21:36

Re: Mon Menu perso !

Message par Anko » 10 Août 2013, 20:17

Ho ho go !
Voila qui est intéressant !

Merci pour ce bout de code ^^
Dès que j'aurais fais le mien, je le partagerais aussi.

Une question, le wire, s'affiche comment ?
Est-ce que c'est comme ça ?
Image
[url=http://www.djingarey.fr]Anko[/url].
Avatar de l’utilisateur
Anko
 
Message(s) : 39
Inscription : 04 Août 2013, 07:33
Localisation : Lingolsheim

Re: Mon Menu perso !

Message par cedric » 10 Août 2013, 20:36

Oui, au dessus du shader comme sur tous les softs ^^
Cédric Lepiller, Freelance 3D Pitiwazou.com, Mes Addons, Asset Management, Speedflow
Avatar de l’utilisateur
cedric
Administrateur
 
Message(s) : 7057
Inscription : 03 Août 2013, 21:36

Re: Mon Menu perso !

Message par Anko » 11 Août 2013, 08:53

Cool !
Parce que dans Blender je n'ai pas encore trouvé comment avoir le wire par dessus le shader autrement qu'en étant en mode édition.
[url=http://www.djingarey.fr]Anko[/url].
Avatar de l’utilisateur
Anko
 
Message(s) : 39
Inscription : 04 Août 2013, 07:33
Localisation : Lingolsheim

Re: Mon Menu perso !

Message par cedric » 11 Août 2013, 09:57

C'est ici pour activer le wire ;)

Image
Cédric Lepiller, Freelance 3D Pitiwazou.com, Mes Addons, Asset Management, Speedflow
Avatar de l’utilisateur
cedric
Administrateur
 
Message(s) : 7057
Inscription : 03 Août 2013, 21:36

Re: Mon Menu perso !

Message par Anko » 11 Août 2013, 11:19

Cool ! Merci :)
[url=http://www.djingarey.fr]Anko[/url].
Avatar de l’utilisateur
Anko
 
Message(s) : 39
Inscription : 04 Août 2013, 07:33
Localisation : Lingolsheim

Re: Mon Menu perso !

Message par Roberto » 12 Août 2013, 08:02

On doit forcément activer le wire pour chaque objet ou il y a un moyen de l'activer pour l'ensemble de la scène ?
Roberto
 
Message(s) : 39
Inscription : 07 Août 2013, 18:19
Localisation : Parisssse

Re: Mon Menu perso !

Message par cedric » 12 Août 2013, 09:27

si tu installe l'addon display tool et que tu n'as rien de sélectionné. Si tu coche wire, ça va te mettre le wire sur tous le sobjets de la scène.
Cédric Lepiller, Freelance 3D Pitiwazou.com, Mes Addons, Asset Management, Speedflow
Avatar de l’utilisateur
cedric
Administrateur
 
Message(s) : 7057
Inscription : 03 Août 2013, 21:36

Re: Mon Menu perso !

Message par Roberto » 12 Août 2013, 12:32

Ok, merci !
Roberto
 
Message(s) : 39
Inscription : 07 Août 2013, 18:19
Localisation : Parisssse

Re: Mon Menu perso !

Message par DaddyBoyne » 13 Oct 2013, 21:56

Je viens d'essayer d'installer ce script... et ça ne marche pas.

Je copie le script dans Notepad.
Je rajoute le # à la ligne 151.
Je sauvegarde le fichier en .py
Je vais dans les Add-on puis install from files, je choisis le Fichier test.py...
et il n'apparait pas dans la liste des addon... rien ne se passe.

Quelqu'un sait il à quel moment je me plante ?
Merci d'avance...
Avatar de l’utilisateur
DaddyBoyne
 
Message(s) : 111
Inscription : 15 Août 2013, 07:26

Re: Mon Menu perso !

Message par Vivien » 14 Oct 2013, 09:18

Enlève peux être les espaces que ça ta créer devant chaque ligne en copiant, il pourra ensuite reconnaitre le fichier. J'ai eu le même inconvénient.
Avatar de l’utilisateur
Vivien
 
Message(s) : 139
Inscription : 07 Août 2013, 11:04

Re: Mon Menu perso !

Message par stilobique » 14 Oct 2013, 14:46

Il me semble qu'il faut faire gaffe à l'encodage aussi. Autrement, passe par l'éditeur de Texte inclus dans Blender.
Avatar de l’utilisateur
stilobique
 
Message(s) : 1368
Inscription : 07 Sep 2013, 09:26
Localisation : France

Re: Mon Menu perso !

Message par cedric » 14 Oct 2013, 15:01

Oui, plus simple de passer par blender. J'ai oublié de mettre le lien du .py, dsl.
Cédric Lepiller, Freelance 3D Pitiwazou.com, Mes Addons, Asset Management, Speedflow
Avatar de l’utilisateur
cedric
Administrateur
 
Message(s) : 7057
Inscription : 03 Août 2013, 21:36

Re: Mon Menu perso !

Message par DaddyBoyne » 27 Oct 2013, 19:06

et c'est Vivien qui a trouvé !

J'ai enlevé 4 espaces devant chaque ligne... va savoir pourquoi mon fichier les avait ajoutés ?!

Merci à tous !!!

Je vais à présent tenter de modifier quelque peu le menu pour le mettre à ma sauce...
Avatar de l’utilisateur
DaddyBoyne
 
Message(s) : 111
Inscription : 15 Août 2013, 07:26

Re: Mon Menu perso !

Message par Olive » 02 Nov 2013, 13:38

çà marche chez moi, j'appelle le menu avec l'un des boutons situé le flanc gauche de la souris (au niveau du pouce), c'est très pratique une souris "gamer" pour çà. Ne reste plus qu'à personnaliser les menus, j'ai 2 boutons, je vais faire un menu pour l'affichage et l'autre pour l'édition par ex !
Avatar de l’utilisateur
Olive
 
Message(s) : 695
Inscription : 30 Sep 2013, 15:20
Localisation : Chaon (41)

Suivant

Retour vers Scripts - Python - OSL

Qui est en ligne ?

Utilisateur(s) parcourant ce forum : Google [Bot] et 1 invité

cron