User Tools

Site Tools


doc_opener

====== Differences ====== This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
doc_opener [2015/08/20 09:56]
swann [b. update_naming]
doc_opener [2015/08/20 12:07] (current)
swann [c. custompath operator]
Line 174: Line 174:
 </​code>​ </​code>​
  
-Nous allons maintenant parcourir ​quelques-uns ​des opérateurs ​crées ​pour l'​addon. Il faut savoir que dans Blender, les Operateurs représentent un des outils les plus pratiques pour le développement pour de nombreuses raisons( ils sont facilement accessible pour l'​utilisateur,​ ils peuvent prendre des arguments,​etc,​...)+Nous allons maintenant parcourir ​un des opérateurs ​crée pour l'​addon. Il faut savoir que dans Blender, les Operateurs représentent un des outils les plus pratiques pour le développement pour de nombreuses raisons( ils sont facilement accessible pour l'​utilisateur,​ ils peuvent prendre des arguments,​etc,​...).\\ 
 +Dans l'​Opener,​ j'​utilise aussi les opérateurs à des fins ergonomiques pour mettre en place des boutons. En fin de compte, chaque boutons est un opérateur auquel on a assigné une icône lors de son appel dans l'​interface. 
 + 
 + 
 +==== 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%>
doc_opener.1440064619.txt.gz · Last modified: 2015/08/20 09:56 by swann