====== Differences ====== This shows you the differences between two versions of the page.
| Both sides previous revision Previous revision Next revision | Previous revision | ||
|
doc_opener [2015/08/20 10:04] swann [b. update_naming] |
doc_opener [2015/08/20 12:07] (current) swann [c. custompath operator] |
||
|---|---|---|---|
| Line 178: | Line 178: | ||
| - | ==== b. update_naming ==== | + | ==== c. custompath operator==== |
| + | |||
| + | Pour apprendre à faire un opérateur de base, suivez le lien suivant:[[http://www.blender.org/api/blender_python_api_2_57_release/bpy.types.Operator.html|Blender Operator Guide]]\\ | ||
| + | |||
| + | La première partie de l'opérateur consiste naturellement à déclarer les différents champs est variables nécessaire: | ||
| + | <code python> | ||
| + | #Entête avec héritage de l'object Operator de blender, nécessaire à chaque fois que l'on créer un opérateur | ||
| + | class OBJECT_OT_custompath(bpy.types.Operator): | ||
| + | bl_idname = "object.custom_path" | ||
| + | bl_label = "open" | ||
| + | __doc__ = "" | ||
| + | |||
| + | filename_ext = "" | ||
| + | filter_glob = StringProperty(default="", options={'HIDDEN'},subtype='DIR_PATH') | ||
| + | |||
| + | |||
| + | #Variable stockant le chemin choisi | ||
| + | filepath = StringProperty(name="File Path", description="Filepath importing store dir", maxlen= 1024) | ||
| + | #optionnel, récupère les fichiers séléctionnés | ||
| + | files = CollectionProperty( | ||
| + | name="File Path", | ||
| + | type=bpy.types.OperatorFileListElement) | ||
| + | </code> | ||
| + | |||
| + | Ici il s'agit du corps de l'opérateur, la fonction execute va s'éxecuter à chaque appel de l'opérateur. Il en est de même ,pour les fonctions draw et invoke. | ||
| + | <code python> | ||
| + | def execute(self, context): | ||
| + | #ajout du chemin sélectionné | ||
| + | ressources.Items.append((str(self.properties.filepath),str(self.properties.filepath),"")) | ||
| + | #Création du tuple temporaire | ||
| + | t=(str(self.properties.filepath),str(self.properties.filepath))) | ||
| + | #Mise à jour de la liste des dossier racine | ||
| + | interface.UpdateEnum(bpy.types.Scene,ressources.Items,'Store',t) | ||
| + | |||
| + | #Sauvegarde du dossier sélectionné de manière persistante | ||
| + | persistence.write_config() | ||
| + | #Find de fonction | ||
| + | return {'FINISHED'} | ||
| + | |||
| + | #Fonction d'affichage de l'explorateur de fichier | ||
| + | def draw(self, context): | ||
| + | self.layout.operator('file.select_all_toggle') | ||
| + | def invoke(self, context, event): | ||
| + | wm = context.window_manager | ||
| + | wm.fileselect_add(self) | ||
| + | return {'RUNNING_MODAL'} | ||
| + | </code> | ||
| ---- | ---- | ||
| <WRAP center round important 60%> | <WRAP center round important 60%> | ||