Connexion
Menu Principal
Recherche
Menu secondaire
Image Aléatoire
Publicité
|
|
add-on MORSE |
|
Fou Furieux du Clan 
Inscrit: 11/03/2008 17:05
Post(s): 160
|
Bonjour à tous, Je me lance dans la création d'un add-on pour l'utilisation de MORSE. Je ne connais pas grand chose en script python donc c'est aussi un bon moyen de me lancer dedans. La première question que j'ai est: comment fait-on une liste de choix avec par exemple "choix 1" "choix 2" "choix 3" et récupérer la valeur qui est choisie.  et comme : «Avant de venir m’exposer vos problèmes, préparez des solutions. Car, si vous ne faites pas partie des solutions, vous faites peut-être partie des problèmes.» http://www.blender.org/documentation/blender_python_api_2_56_1/bpy.types.UILayout.htmlMais je ne sais pas lequel il faut et comment sa fonctionne avec tous les paramètres qu'il faut entrer EDIT je suis sous blender 2.56 (pour des soucis de compatibilité avec MORSE)
Contribution le : 28/07/2011 10:08
|
_________________
C'est en blendant qu'on devient blenderien  | Avant de venir m’exposer vos problèmes, préparez des solutions. Car, si vous ne faites pas partie des solutions, vous faites peut-être partie des problèmes.
|
|
Re: add-on MORSE |
|
OverdOzed 
Inscrit: 13/06/2005 17:15
De Nancy/Strasbourg
Post(s): 575
|
Moi j'aurai tendance à dire qu'il faudrait utiliser des Property. Ça s'utilise facilement, essaye de t'inspirer d'autres add-on. Teste les EnumProperty. Je ne sais pas quelle version de Blender tu utilises, en tout cas tu utilises l'api de la 2.56.1, fait gaffe que tu n'aies pas une version de Blender trop avancée, il y a eu des changements dans l'api depuis. (edit : je n'avais pas vu ton edit)
Contribution le : 28/07/2011 10:36
|
|
|
Re: add-on MORSE |
|
Fou Furieux du Clan 
Inscrit: 11/03/2008 17:05
Post(s): 160
|
Normal je ne l'ai ajouté qu'après avoir lu ton post  Pour les property je veux bien mais c'est pour faire une IHM qui se rajoutera dans l'onglet physics et qui me permettra de choisir dans une liste un capteur MORSE (un .obj) et de l'incorporer directement dans la scène tout en générant du code python dans un autre code source python pour ce qui est communication et interfassage du dit capteur.
Contribution le : 28/07/2011 11:00
|
_________________
C'est en blendant qu'on devient blenderien  | Avant de venir m’exposer vos problèmes, préparez des solutions. Car, si vous ne faites pas partie des solutions, vous faites peut-être partie des problèmes.
|
|
Re: add-on MORSE |
|
OverdOzed 
Inscrit: 01/03/2011 15:40
Post(s): 791
|
Tu te lances dans un assez gros truc, pour une première fois, j’ai l’impression… Vi a raison, lis le code d’un maximum de scripts, le fonctionnement de l’API python de blender est assez particulier.
En ce qui concerne l’UI, pour faire simple, tu te contentes, avec les fonctions de UILayout, de dire des trucs comme « afficher le contrôle correspondant à cette propriété »… et c’est tout ! En clair, tu ne peux décider que du placement, de l’ordonnancement des contrôles.
Tout le reste est géré automatiquement par blender, à partir de la définition des propriétés affichées/contrôlées…
Si ta propriété est un boolean, l’UI utilisera une checkbox, si c’est un nombre (entier ou flottant), ce sera un champ numérique (ou un curseur, si l’option correspondante est définie à la définition de la propriété en question), si c’est un enum, ce sera une liste déroulante (ou, là aussi, une liste de boutons, si l’option est spécifiée), etc.
Donc, pour toi, à priori, je dirais qu’il te faut créer un operateur (qui « fera le boulot »), et définir dans cet opérateur une propriété enum contenant tes choix… Note que les réglages des opérateurs apparaissent automatiquement dans le panneau dédié, dans la vue 3D, pas besoin de définir une fonction d’UI (sauf si tu veux personnaliser l’interface, évidemment)…
Contribution le : 28/07/2011 12:21
|
|
|
Re: add-on MORSE |
|
Fou Furieux du Clan 
Inscrit: 11/03/2008 17:05
Post(s): 160
|
Citation : mont29 a écrit: Tu te lances dans un assez gros truc, pour une première fois, j’ai l’impression… Vi a raison, lis le code d’un maximum de scripts, le fonctionnement de l’API python de blender est assez particulier.
Oui je sais mais je n'ai pas peur  j'ai déja fait pire. voici mon code qui fonctionne sous linux mais pas sous windobe ... je ne sais pas pk. import bpy
class OBJECT_capteur(bpy.types.Panel):
bl_space_type = "PROPERTIES"
bl_region_type = "WINDOW"
bl_context = "physics"
bl_label = "Test Panel MORSE"
def draw_header(self, context):
layout = self.layout
layout.label(text="Icon text", icon='RADIO')
def draw(self, context):
obj = bpy.context.active_object
layout = self.layout
row = layout.row()
row.label(text="l'object selectione est : " + obj.name)
row = layout.row()
row.alignment = 'LEFT'
row.operator( "Ajoutcapteur" )
class MorseOperator(bpy.types.Operator):
bl_idname = "Ajoutcapteur"
bl_label = "Ajouter le capteur"
def execute(self, context):
bpy.ops.wm.link_append(directory="mon_chemin\capteur1.blend\\Object\\", filename="Capteur1",link=False)
#return {'FINISHED'}
Contribution le : 28/07/2011 13:11
|
_________________
C'est en blendant qu'on devient blenderien  | Avant de venir m’exposer vos problèmes, préparez des solutions. Car, si vous ne faites pas partie des solutions, vous faites peut-être partie des problèmes.
|
|
Re: add-on MORSE |
|
OverdOzed 
Inscrit: 13/06/2005 17:15
De Nancy/Strasbourg
Post(s): 575
|
T'as pas eu un rapport d'erreur dans la console ? C'est peut être le chemin d'accès de ton objet qui merde, les os réagissent pas pareil à ce niveau.
Contribution le : 28/07/2011 14:10
|
|
|
Re: add-on MORSE |
|
Fou Furieux du Clan 
Inscrit: 11/03/2008 17:05
Post(s): 160
|
non, il compile et il se lance c'est bien ça le problemme car il n'affiche rien contrairement quand je suis sous linux.
Contribution le : 28/07/2011 14:25
|
_________________
C'est en blendant qu'on devient blenderien  | Avant de venir m’exposer vos problèmes, préparez des solutions. Car, si vous ne faites pas partie des solutions, vous faites peut-être partie des problèmes.
|
|
Re: add-on MORSE |
|
OverdOzed 
Inscrit: 01/03/2011 15:40
Post(s): 791
|
Voui, mais qu’il se compile et se lance ne veut pas dire qu’il n’y a pas de problème… Regarde dans les deux consoles (celle intégrée dans blender, et celle ouverte au lancement de blender – il faut peut-être l’activer depuis le menu help, je ne sais plus…).
J’aurais tendance à plussoyer Vi, ’y a des chances que ce soit un problème de chemin…
Contribution le : 28/07/2011 16:48
|
|
|
Re: add-on MORSE |
|
Fou Furieux du Clan 
Inscrit: 11/03/2008 17:05
Post(s): 160
|
Oui je pense que ça doit être ça. si quelqu'un peut tester mon code pour le moment en changent le lien. (il y a beaucoup de choses qui manquent) import bpy
def capteurnames():
myitems = (('0','accelerometer',''), ('1','battery',''), ('2','camera',''), ('3','GPS',''), ('4','Gyroscope',''))
return myitems
class OBJECT_MORSE(bpy.types.Panel):
bl_label = "Test Panel MORSE"
bl_space_type = "PROPERTIES"
bl_region_type = "WINDOW"
bl_context = "physics"
myitems = capteurnames()
bpy.types.Scene.list = bpy.props.EnumProperty(name="Capteur ",items=myitems)
def draw_header(self, context):
layout = self.layout
layout.label(icon='RADIO')
def draw(self, context):
layout = self.layout
obj = context.object
row = layout.row()
row.label(text="l'object selectione est : " + obj.name)
row = layout.row()
row.label(text="Choix du capteur", icon='RADIO')
row = layout.row()
row.prop(context.scene, "list")
row = layout.row()
row.alignment = 'CENTER'
row.operator( "Ajoutcapteur" )
capteur= bpy.context.scene.list
class MorseOperator(bpy.types.Operator):
bl_idname = "Ajoutcapteur"
bl_label = "Ajouter le capteur"
def execute(self, context):
bpy.ops.wm.link_append(directory="/home/pio/Bureau/morse/data/morse/components/sensors/morse_gyroscope.blend\\Object\\", filename="Gyroscope",link=False)
def register():
bpy.utils.register_class(OBJECT_MORSE)
def unregister():
bpy.utils.unregister_class(OBJECT_MORSE)
if __name__ == "__main__":
register()
Contribution le : 29/07/2011 10:51
|
_________________
C'est en blendant qu'on devient blenderien  | Avant de venir m’exposer vos problèmes, préparez des solutions. Car, si vous ne faites pas partie des solutions, vous faites peut-être partie des problèmes.
|
|
Re: add-on MORSE |
|
Fou Furieux du Clan 
Inscrit: 11/03/2008 17:05
Post(s): 160
|
je suis bloqué sur un truc simple en apparence. comment fait-on pour récupérer la valeur de ma variable capteur de la "class OBJECT_MORSE" pour l'utiliser avec des conditions Switch/Case et changer le chemin en fonction du choix de la liste dans la "class MorseOperator".
Contribution le : 29/07/2011 14:25
|
_________________
C'est en blendant qu'on devient blenderien  | Avant de venir m’exposer vos problèmes, préparez des solutions. Car, si vous ne faites pas partie des solutions, vous faites peut-être partie des problèmes.
|
|
Sujets récemment répondus |
|
|
|
Qui est en ligne
147 utilisateur(s) en ligne (dont 83 sur Forums) Membre(s): 0 Invité(s): 147 plus... Nouveaux membres
Dernier Ajout
Evènements à venir
|