Idées Scripts

Ici on parle des scripts

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

Re: Idées Scripts

Message par lapineige » 06 Juil 2014, 15:58

Intéressant.
Faisable.
Pas trop long. Ni trop dur :P
Je prends ! :lol:
M'enfin dissoudre les vertex c'est un peu chiant. Peut-être un simple remove double ? Il ferait la même chose.
edit: en fait le bisect le propose de base ^^

Tu m'a donné envie, je m'y lance tout de suite ! :D ;)
Mon terrier/blog: https://lapineige.fr/wp (l'ancien: le-terrier-de-lapineige.over-blog.com) | Mon GitHub: https://github.com/lapineige/Blender_add-ons | Lapineige's Tools: http://cgcookiemarkets.com/blender/all- ... ompilation
Avatar de l’utilisateur
lapineige
 
Message(s) : 3717
Inscription : 25 Juin 2014, 07:06

Re: Idées Scripts

Message par jemian » 06 Juil 2014, 16:20

arf non, ça risque de déplacer les vertex de l'axe
faudrait snapper les vertex proches avant avec un GG

dissoudre je pense pas c'est compliqué
Marge = position pivot +0.5mm
-sélection de la loop du bisect (les vertex qui ont la position pivot)
-Ctrl+
if position vertex != position pivot && position vertex < Marge
disolve ou snap
et je pensais laisser la marge en paramètre 0.5 par défaut
avec possibilité de changer dans le F6
Dernière édition par jemian le 06 Juil 2014, 17:01, édité 7 fois.
Avatar de l’utilisateur
jemian
 
Message(s) : 2797
Inscription : 03 Fév 2014, 01:52
Localisation : Brest

Re: Idées Scripts

Message par lapineige » 06 Juil 2014, 16:28

Mince j'ai édité trop tard ^^
Le bisect propose l'outil qui va bien. :)
Mon terrier/blog: https://lapineige.fr/wp (l'ancien: le-terrier-de-lapineige.over-blog.com) | Mon GitHub: https://github.com/lapineige/Blender_add-ons | Lapineige's Tools: http://cgcookiemarkets.com/blender/all- ... ompilation
Avatar de l’utilisateur
lapineige
 
Message(s) : 3717
Inscription : 25 Juin 2014, 07:06

Re: Idées Scripts

Message par lapineige » 06 Juil 2014, 19:10

Bon pas trop eu le temps de coder, voici déjà un script à l'arrache qui fait le boulot:
Code : Tout sélectionner
import bpy

X = 0
Y = 1
Z = 0


x1, y1, z1 = bpy.context.scene.cursor_location

current_area = bpy.context.area.type
bpy.context.area.type = "VIEW_3D"
bpy.ops.view3d.snap_cursor_to_selected()
bpy.context.area.type = current_area
x2, y2, z2 = bpy.context.scene.cursor_location


if bpy.context.object.mode != "EDIT":
    bpy.ops.object.mode_set(mode="EDIT")
   

bpy.ops.mesh.select_all(action='SELECT')

bpy.ops.mesh.bisect(plane_co=(x2, y2, z2), plane_no=(Y, X, Z), use_fill=False, clear_inner=True, clear_outer=False, threshold=0.0001)

bpy.ops.object.modifier_add(type='MIRROR')
bpy.context.object.modifiers[-1].use_x = Y
bpy.context.object.modifiers[-1].use_y = X
bpy.context.object.modifiers[-1].use_z = Z


bpy.context.scene.cursor_location = x1, y1, z1


Dès que j'ai le temps je transforme le tout en opérateur, puis add-on, et je rajoute des options. :)
Mon terrier/blog: https://lapineige.fr/wp (l'ancien: le-terrier-de-lapineige.over-blog.com) | Mon GitHub: https://github.com/lapineige/Blender_add-ons | Lapineige's Tools: http://cgcookiemarkets.com/blender/all- ... ompilation
Avatar de l’utilisateur
lapineige
 
Message(s) : 3717
Inscription : 25 Juin 2014, 07:06

Re: Idées Scripts

Message par jemian » 06 Juil 2014, 19:14

Merci Lapineige
je regarde ça si j'y comprends qq chose
Avatar de l’utilisateur
jemian
 
Message(s) : 2797
Inscription : 03 Fév 2014, 01:52
Localisation : Brest

Re: Idées Scripts

Message par lapineige » 06 Juil 2014, 19:17

Oui je vais commenté le code, pas encore fait :o

Sinon voici une version sous forme d'opérateur (tape AutoMirror pour le trouver):
Code : Tout sélectionner
import bpy

class AutoMirror(bpy.types.Operator):
    """ Automatically cu an object along an axis """
    bl_idname = "object.automirror"
    bl_label = "AutoMirror"

    @classmethod
    def poll(cls, context):
        return True

    def execute(self, context):
        X = 0
        Y = 1
        Z = 0


        x1, y1, z1 = bpy.context.scene.cursor_location

        current_area = bpy.context.area.type
        bpy.context.area.type = "VIEW_3D"
        bpy.ops.view3d.snap_cursor_to_selected()
        bpy.context.area.type = current_area
        x2, y2, z2 = bpy.context.scene.cursor_location


        if bpy.context.object.mode != "EDIT":
            bpy.ops.object.mode_set(mode="EDIT")
           

        bpy.ops.mesh.select_all(action='SELECT')

        bpy.ops.mesh.bisect(plane_co=(x2, y2, z2), plane_no=(Y, X, Z), use_fill=False, clear_inner=True, clear_outer=False, threshold=0.0001)

        bpy.ops.object.modifier_add(type='MIRROR')
        bpy.context.object.modifiers[-1].use_x = Y
        bpy.context.object.modifiers[-1].use_y = X
        bpy.context.object.modifiers[-1].use_z = Z


        bpy.context.scene.cursor_location = x1, y1, z1
        return {'FINISHED'}


def register():
    bpy.utils.register_class(AutoMirror)


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


if __name__ == "__main__":
    register()

Ça marche en mode object, pour être encore plus rapide ! ;)
Mon terrier/blog: https://lapineige.fr/wp (l'ancien: le-terrier-de-lapineige.over-blog.com) | Mon GitHub: https://github.com/lapineige/Blender_add-ons | Lapineige's Tools: http://cgcookiemarkets.com/blender/all- ... ompilation
Avatar de l’utilisateur
lapineige
 
Message(s) : 3717
Inscription : 25 Juin 2014, 07:06

Re: Idées Scripts

Message par lapineige » 06 Juil 2014, 19:30

Et hop j'ai supprimé tout les trucs inutiles, et ajouté quelques commentaires...
Code : Tout sélectionner
import bpy

class AutoMirror(bpy.types.Operator):
    """ Automatically cu an object along an axis """
    bl_idname = "object.automirror"
    bl_label = "AutoMirror"

    @classmethod
    def poll(cls, context):
        return True

    def execute(self, context):
        X = 0 # 0 ==> don't use X, 1 ==> use X
        Y = 1 # same
        Z = 0 # same

        current_mode = bpy.context.object.mode # Save the current mode
       
        if bpy.context.object.mode != "EDIT":
            bpy.ops.object.mode_set(mode="EDIT") # Go to edit mode
           

        bpy.ops.mesh.select_all(action='SELECT') # Select all the vertices

        bpy.ops.mesh.bisect(plane_co=(bpy.context.object.location[0], bpy.context.object.location[1], bpy.context.object.location[2]), plane_no=(Y, X, Z), use_fill=False, clear_inner=True, clear_outer=False, threshold=0.0001) # Cut the mesh
       
        bpy.ops.object.mode_set(mode=current_mode) # Reload previous mode

        bpy.ops.object.modifier_add(type='MIRROR') # Add a mirror modifier
        bpy.context.object.modifiers[-1].use_x = Y # Choose the axis to use, based on the cut's axis
        bpy.context.object.modifiers[-1].use_y = X
        bpy.context.object.modifiers[-1].use_z = Z
       
        return {'FINISHED'}


def register():
    bpy.utils.register_class(AutoMirror)


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


if __name__ == "__main__":
    register()
Mon terrier/blog: https://lapineige.fr/wp (l'ancien: le-terrier-de-lapineige.over-blog.com) | Mon GitHub: https://github.com/lapineige/Blender_add-ons | Lapineige's Tools: http://cgcookiemarkets.com/blender/all- ... ompilation
Avatar de l’utilisateur
lapineige
 
Message(s) : 3717
Inscription : 25 Juin 2014, 07:06

Re: Idées Scripts

Message par jemian » 06 Juil 2014, 19:37

Oulà j'ai du rater un tuto
Faut déjà que j'arrive à le mettre dans Blender
ok j'ai trouvé
ok ça marche pour l'axe X c'est top :D
je l'adore déjà
Dernière édition par jemian le 06 Juil 2014, 19:47, édité 1 fois.
Avatar de l’utilisateur
jemian
 
Message(s) : 2797
Inscription : 03 Fév 2014, 01:52
Localisation : Brest

Re: Idées Scripts

Message par lapineige » 06 Juil 2014, 19:46

Eu celui que je t'ai filé il coupe selon l'axe Y :lol:
Je suis en train de vous faire un add-on, avec 1 option basique.
Mon terrier/blog: https://lapineige.fr/wp (l'ancien: le-terrier-de-lapineige.over-blog.com) | Mon GitHub: https://github.com/lapineige/Blender_add-ons | Lapineige's Tools: http://cgcookiemarkets.com/blender/all- ... ompilation
Avatar de l’utilisateur
lapineige
 
Message(s) : 3717
Inscription : 25 Juin 2014, 07:06

Re: Idées Scripts

Message par cedric » 06 Juil 2014, 19:51

Hé hé bien sympa !!
Le code n'est pas compliqué en plus !
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: Idées Scripts

Message par lapineige » 06 Juil 2014, 19:53

Bon maintenant tu l'oubli et tu essaye de le refaire :P
SI tu y arrive pas on se refait une aprem skype :P (mince j'aurai du lui filer un script plus compliqué :lol:)

L'add-on arrive ! :D
Mon terrier/blog: https://lapineige.fr/wp (l'ancien: le-terrier-de-lapineige.over-blog.com) | Mon GitHub: https://github.com/lapineige/Blender_add-ons | Lapineige's Tools: http://cgcookiemarkets.com/blender/all- ... ompilation
Avatar de l’utilisateur
lapineige
 
Message(s) : 3717
Inscription : 25 Juin 2014, 07:06

Re: Idées Scripts

Message par cedric » 06 Juil 2014, 19:58

Oula, non, faut d'abord que je matte mieux ton script, j'ai regardé rapidement, mais j'ai tout capté, donc je devrais y arriver ^^

Suis toujours partant pour du skype/python ^^ C'est vraiment sympa pour apprendre !
Dommage que personne d'autre ne soit intéressé.
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: Idées Scripts

Message par lapineige » 06 Juil 2014, 20:01

Bah on va les forcer jeudi soir à faire du python ^^
Mon terrier/blog: https://lapineige.fr/wp (l'ancien: le-terrier-de-lapineige.over-blog.com) | Mon GitHub: https://github.com/lapineige/Blender_add-ons | Lapineige's Tools: http://cgcookiemarkets.com/blender/all- ... ompilation
Avatar de l’utilisateur
lapineige
 
Message(s) : 3717
Inscription : 25 Juin 2014, 07:06

Re: Idées Scripts

Message par cedric » 06 Juil 2014, 20:07

hu hu hu !

Sinon, pour le script, il faut être sur d'être bien au centre, mais ça va bien m'être utile !
Dans l'absolue, comme pour les autres scripts, il faudrait pouvoir choisir le centre du mesh, via le pivot, ou le cursor etc.
Là si on prend une sphère, qu'on al déplace, freeze ses transforms et qu'on lance le script, ça va ajouter des edges.
Mais comme je le disais, en général on bosse bien au centre ^^
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: Idées Scripts

Message par jemian » 06 Juil 2014, 20:17

Si si moi ça m’intéresse d'apprendre
Je pige le code mais je suis bien incapable
de retrouver les chemins des objets et de leurs paramètres
Avatar de l’utilisateur
jemian
 
Message(s) : 2797
Inscription : 03 Fév 2014, 01:52
Localisation : Brest

PrécédentSuivant

Retour vers Scripts - Python - OSL

Qui est en ligne ?

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