Addon Grill

Ici on parle des scripts

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

Addon Grill

Message par Megeon » 24 Mars 2016, 21:13

On m'a conseillé d'ouvrir un topic a part donc le voici.

Je résume, je veux faire un Addon pour me permet de faire des assemblage facilement de structure scénique, (truss en anglais me semble t'il)
résumé de ce que j'ai déjà

Code : Tout sélectionner
'''
Stape 1 les barres de face
'''

import bpy

# Enter la longueur de la poutre

# liste Truss
# Add Truss
    # Boucle
        # Si la longueur est plus grand que l’élément A, on ajoute A
        # sinon on passe a la longueur inférieur et on compare de nouveau.

# Assembly Truss (Boucles)
    # Select Truss A
    # Select Truss B
    # Select ....
    # Truss A in 0,0,0
    # Truss B in 0,0,0 + length Truss A
    # Truss ...

# Select All and join for have 1 mesh


je ferrais un .blend par type de structure

c'est a dire
H30V (structure carré)
H40V (structure carré)
dans un second temps
H30D (structure triangle)
H40D (structure triangle)

je part tout d'abord pour créer ce que l'on appelle des barres de face (ou pont de face) c'est juste une longueur de plusieurs élément
merci a tous ceux qui m’aideront et qui m'ont déjà aidé !

une partie de la discutions se trouve dans les questions de megeon

chacun
Avatar de l’utilisateur
Megeon
 
Message(s) : 634
Inscription : 04 Jan 2016, 15:34
Localisation : Lyon

Re: Addon Grill

Message par pistiwique » 25 Mars 2016, 13:05

Je ne pense pas qu'il soit utile de faire un .blend par type de structure. Tu peux les mettre tous dans le même tant que tu connais leur non.
Avatar de l’utilisateur
pistiwique
 
Message(s) : 590
Inscription : 10 Août 2014, 10:35
Localisation : le sud ou il fait trop chaud

Re: Addon Grill

Message par Megeon » 25 Mars 2016, 13:49

ok mais après j'ai peur pour le poids du fichier aussi certes pour les structure carré ça va il y en a peu mais les triangle déjà il y a deux triangle différent (pointe vers le bas et pointe vers le haut, et en plus des angle il y en a a la pelle. ça pose pas de soucis d'avoir un énorme fichier ?

car oui les noms ça devrais allé
Avatar de l’utilisateur
Megeon
 
Message(s) : 634
Inscription : 04 Jan 2016, 15:34
Localisation : Lyon

Re: Addon Grill

Message par Megeon » 29 Mars 2016, 12:42

yop

je commence a cherche les morceau de code que j'ai besoin, et j'aimerais ajouter mon grill comme si c'était un mesh
add/mesh/grill
et la j'ai le programme qui se lance
j'ai trouver ceci

bpy.ops.mesh.____

la je comprend bien que c'est l'acces au mesh, mais derrniere je met quoi ? une fonction qui lance le reste du code ? le nom d'un class ?
Avatar de l’utilisateur
Megeon
 
Message(s) : 634
Inscription : 04 Jan 2016, 15:34
Localisation : Lyon

Re: Addon Grill

Message par pistiwique » 29 Mars 2016, 17:06

Tout simplement:
Code : Tout sélectionner
bpy.ops.le_bl_idname_de_ta_class()

:D
Avatar de l’utilisateur
pistiwique
 
Message(s) : 590
Inscription : 10 Août 2014, 10:35
Localisation : le sud ou il fait trop chaud

Re: Addon Grill

Message par Megeon » 29 Mars 2016, 17:32

il va donc falloir que je fasse une classe....

c'est pas gagné :lol:
Avatar de l’utilisateur
Megeon
 
Message(s) : 634
Inscription : 04 Jan 2016, 15:34
Localisation : Lyon

Re: Addon Grill

Message par Megeon » 30 Mars 2016, 13:17

quelque questions ! (oui bon je doit vous saouler a mes questions a la con !

je doit faire plusieurs classes je suppose ?

une pour la partie interface et l'entrée de la valeur !

une pour la boucle qui créera la poutre avec les éléments existant !


Me Trompe Je ?
Avatar de l’utilisateur
Megeon
 
Message(s) : 634
Inscription : 04 Jan 2016, 15:34
Localisation : Lyon

Re: Addon Grill

Message par jemian » 30 Mars 2016, 20:43

Oui c'est plus simple(c'est pas une obligation) . ça peut paraitre complexe au départ
mais c'est bien plus simple à gérer.
Avatar de l’utilisateur
jemian
 
Message(s) : 2797
Inscription : 03 Fév 2014, 01:52
Localisation : Brest

Re: Addon Grill

Message par Megeon » 31 Mars 2016, 08:02

oui ça a l'aire compliqué, mais je doit avouer que je comprend mieux l'utilité d'une classe avec l'API de blender que dans python tout seul :roll:


du coup la classe que je doit appeler c'est celle pour entrer la valeur depuis l'interface, et celle ci apelera la suivante etc...
Avatar de l’utilisateur
Megeon
 
Message(s) : 634
Inscription : 04 Jan 2016, 15:34
Localisation : Lyon

Re: Addon Grill

Message par pistiwique » 31 Mars 2016, 15:34

En gros tu auras une classe panel
Code : Tout sélectionner
class MonPanel(bpy.types.Panel):

Dans cette classe panel, tu vas y mettre tout ce qui concerne l'affichage. Il te suffit de regarder dans les addons pour voir comment ça se goupille.
Ensuite tu auras tes classes operateurs
Code : Tout sélectionner
class MonOperateurDeLaMort(bpy.types.Operator):

Ces operateurs, tu pourras les appeler depuis ton panel en mettant par exemple:
Code : Tout sélectionner
layout.operator("bl_idname de ton operateur", text="add grid")

La encore, le mieux est de regarder plusieurs addons pour mieux comprendre ( ne pas oublier de mettre return {"FINISHED"} à la fin de l'opérateur).
Et enfin, tu auras surement également des fonctions pour les parties de code qui seront similaires à plusieurs opérateurs par exemple.
Avatar de l’utilisateur
pistiwique
 
Message(s) : 590
Inscription : 10 Août 2014, 10:35
Localisation : le sud ou il fait trop chaud

Re: Addon Grill

Message par Megeon » 31 Mars 2016, 15:52

pistiwique a écrit : Il te suffit de regarder dans les addons pour voir comment ça se goupille.


c'est ce que j'avais commencé a faire aujourd'hui :lol:

c'est encore complexe pour moi mais ça va j'arrive a peux prés a comprendre de quoi il en retourne ^^
Avatar de l’utilisateur
Megeon
 
Message(s) : 634
Inscription : 04 Jan 2016, 15:34
Localisation : Lyon

Re: Addon Grill

Message par pistiwique » 31 Mars 2016, 21:43

Si tu ne l'as pas, tu devrais dl l'addon de Jacques Luke Autocomplete.
Il est très pratique.

Auto-promo ON:
Tu peux même dl mon pistiwique_pie_text_editor :D
Avatar de l’utilisateur
pistiwique
 
Message(s) : 590
Inscription : 10 Août 2014, 10:35
Localisation : le sud ou il fait trop chaud

Re: Addon Grill

Message par Megeon » 01 Avr 2016, 07:56

Merci pour le lien, pour les pie menu j'ai du mal mais je veux bien essayé ou est le tien ?

EDIT: a pas vu ta signature

EDIT 2 je n'arrive pas a faire fonctionner autocontrol !
(en faite il y a plein d'addon qui ne tourne pas est ce la version 2.77 ? )

EDIT 3 ok j'ai trouver comment faire pour autocontrol !

EDIT 4 donc maintenant il faut que je fasse mon truc dans blender !
Avatar de l’utilisateur
Megeon
 
Message(s) : 634
Inscription : 04 Jan 2016, 15:34
Localisation : Lyon

Re: Addon Grill

Message par Megeon » 01 Avr 2016, 12:38

Je suis en train de me perdre complétement la dedans ! plus j'avance plus je veux m'arracher les cheveux. :evil:

je pense que je peut tout prendre et tout jeter ! :evil:

Je comprend rien ! tant pi je ferais sans ! :|
merci pour l'aide apporter, mais j'arrête définitivement ce genre de connerie et je vais refaire des traits !

Code : Tout sélectionner
'''
Grill
Addon for creating quikly grill
By Kevin Megel
'''

'''
Etape 1 les barres de face
 
'''

import bpy

# Lancer l'ajout d'un grill
    # Add an element
bpy.ops.le_bl_idname_de_ta_class()

# Liste des element !
truss = [C20T50; C20T100; C20T200;]

trusslegth = [0.50; 1; 2; ]

def increment (num_list, step=1):
    return [n + step for n in num_list]
# Add Truss

class AddTruss (bpy.types.Operator):
    bl_idname = "mesh.truss"
    bl_label = "Truss"
   
    length = FloatProperty(
        name = "Length",
        description = "Truss Length",
        min = 0.25,
        default = 1.0
        )
    # generic transform props
    view_align = BoolProperty(
        name="Align to View",
        default=False,
        )
    location = FloatVectorProperty(
        name="Location",
        subtype='TRANSLATION',
        )
    rotation = FloatVectorProperty(
        name="Rotation",
        subtype='EULER',
        )
     
   

class Truss (bpy.types.___):
    bl_idname = "object.Truss"
    bl_label = "Truss"
   
    while poutre != Length :
        if trusslegth <= poutre:
           
            # append
            blendfile = "E:/testgrill.blend"
            section   = "\\Action\\"
            object    = truss[i]

            filepath  = blendfile + section + object
            directory = blendfile + section
            filename  = object

            bpy.ops.wm.append(
                filepath=filepath,
                filename=filename,
                directory=directory)
               
        else:
            #on passe a la longueur suivante dans la liste
            increment(truss)
            inrement (trusslength)
         
    # Boucle
        #tant que (while) longueur de poutre != longueur totale et que la liste n'est pas fini
            #if longueur de poutre < longueur totale
                #ajouter 1er élément de la liste
                #ajouter la longueur a la variable longueur poutre
                #retirer la longueur précédent élément a la variable longueur poutre
        #else
        #retiré le précédent élément
        #ajouter l'élément de la liste

        # Si la longueur est plus grand que L'element A, on ajoute A
        # sinon on passe a la longueur inferieur et on compare de nouveau.
Avatar de l’utilisateur
Megeon
 
Message(s) : 634
Inscription : 04 Jan 2016, 15:34
Localisation : Lyon

Re: Addon Grill

Message par pistiwique » 01 Avr 2016, 14:17

Faut pas jeter l'éponge si vite petit scarabée :D
Tu ne t'attaques pas au plus facile non plus mais dis toi que quand tu auras fini, ton code te feras gagner beaucoup de temps et qui plus est, tu seras en mesure de l'adapter si besoin.
Commence déjà par plus simple. Un panel avec un operateur pour ajouter un cube par exemple.
Par la suite, tu remplaces l'operateur par celui d'import de ton mesh.
C'est très important d'y aller par étapes sinon tu vas te retrouver avec des erreurs de partout et tu ne sauras plus ou chercher.
Avatar de l’utilisateur
pistiwique
 
Message(s) : 590
Inscription : 10 Août 2014, 10:35
Localisation : le sud ou il fait trop chaud

Suivant

Retour vers Scripts - Python - OSL

Qui est en ligne ?

Utilisateur(s) parcourant ce forum : Aucun utilisateur inscrit et 1 invité