Boutique Cinema 4D
Affichage des résultats 1 à 13 sur 13

Discussion: Sélectionner les polygones de même orientation

  1. #1
    Gourou Avatar de César Vonc
    Date d'inscription
    avril 2006
    C4D version
    Autre
    OS
    Windows 10
    Messages
    2 483

    Sélectionner les polygones de même orientation



    v1.1

    Voici un script Python sélectionnant tous les polygones ayant la même orientation que le polygone sélectionné.

    Avec une valeur de tolérance pour une utilisation plus souple !





    Code PHP:
    import c4d
    import math
    from c4d import gui
    Vector
    from c4d
    .utils import GetAngle
    from math import isnan

    # César Vonc - v 1.1

    class Dialogue(gui.GeDialog) :
        
    annuler True
        tolerance 
    0
        
        def CreateLayout
    (self) :
            
    self.GroupBegin(10c4d.BFH_SCALEFIT12)
            
    self.AddEditNumberArrows(11c4d.BFH_SCALEFIT)
            
    self.AddButton(12c4d.BFH_SCALEFITinitw 100inith 20name "Valider")
            
    self.GroupEnd()
            return 
    True
        
        def InitValues
    (self) :
            
    self.SetTitle("Tolérance")
            
    self.SetDegree(110)
            return 
    True
        
        def Command
    (selfidmsg) :
            if 
    id == 12 :
                
    self.annuler False
                self
    .tolerance self.GetReal(11)
                
    self.Close()
            return 
    True

    def recup_norm
    (index) :
        
    poly op.GetPolygon(index)
        
    pA op.GetPoint(poly.a)
        
    pB op.GetPoint(poly.b)
        
    pC op.GetPoint(poly.c)
        
    pD op.GetPoint(poly.d)
        
    normale = (pA pC).Cross(pB pD)
        
    normale.Normalize()
        return 
    normale

    def verif
    (vavbtol) :
        
    angle GetAngle(vavb)
        if 
    isnan(angle) : return True
        
    if tol >= angle : return True
        
    else : return False


    def main
    () :
        if 
    not op : return
        if 
    op.GetType() != c4d.Opolygon : return
        
        
    bs op.GetPolygonS()
        
    nbsel bs.GetCount()
        if 
    nbsel == : return 
        
        
    dial Dialogue()
        
    dial.Open(c4d.DLG_TYPE_MODAL)
        if 
    dial.annuler is True : return
        
        
    nbpol op.GetPolygonCount()
        
    normale_ref Vector(000)
        
        
    doc.StartUndo()
        
    doc.AddUndo(c4d.UNDOTYPE_CHANGE_SELECTIONop)
        
        for 
    indexselec in enumerate(bs.GetAll(nbpol)) :
            if 
    not selec: continue
            
    normale recup_norm(index)
            
    normale_ref += normale
        
        normale_ref
    .Normalize()
        
    tolerance dial.tolerance
        
        
    for i in xrange(nbpol) :
            
    normale recup_norm(i)
            if 
    verif(normale_refnormaletoleranceis True :
                
    bs.Select(i)
        
        
    doc.EndUndo()
        
    c4d.EventAdd()
        
    if 
    __name__=='__main__':
        
    main() 
    Télécharger
    Dernière modification par César Vonc ; 20/05/2012 à 13h28. Motif: Mise à jour v1.1

  2. #2
    Vieux Croûton Avatar de Fluffy
    Date d'inscription
    septembre 2003
    C4D version
    R18 Studio
    OS
    Win 10 Pro
    Messages
    13 711
    Billets dans le blog
    1
    Ouh, fichtrement utile, ça.
    Un grand merci!!!

    Avec tous ces scripts que vous nous pondez depuis un moment, je me demande si on ne devrait pas les référencer correctement dans les ressources du site?
    Fluffy mais costaud...www.fluffy4d.com

  3. #3
    Big Boss Avatar de Seb-bbl
    Date d'inscription
    mai 2005
    C4D version
    R13 Studio
    OS
    Mac OSX 10.7
    Messages
    6 507
    Billets dans le blog
    8
    Oui, d'une part. D'autre part, je vais les référencer aussi sur c4dextensions, commence à y avoir un joli vivier ici !
    Par contre, je pense qu'il serait pas mal de générer les fichiers .py et icône, tout le monde ne sait pas comment utiliser un script d'après des lignes de codes.

  4. #4
    Pilier Avatar de user4D
    Date d'inscription
    août 2006
    Messages
    1 708
    Merci pour le partage César Vonc

  5. #5
    Gourou Avatar de César Vonc
    Date d'inscription
    avril 2006
    C4D version
    Autre
    OS
    Windows 10
    Messages
    2 483
    Ah oui, bonne idée !

    J'ai joint une archive contenant le script et son icône.

  6. #6
    Gourou Avatar de Teutch
    Date d'inscription
    décembre 2008
    C4D version
    R10
    OS
    Vista 32bit
    Messages
    2 651
    Euh, ben merci !

    Là, ça tape !
    Cinema 4D R10 de base, sur ordi de base (PC RIP - décembre 2008 - février 2017 ), avec cerveau de base...

  7. #7
    Pilier Avatar de catrax
    Date d'inscription
    juillet 2011
    C4D version
    R13 Studio
    OS
    Windows 7, 1 seul coeur !!! 4 Go de Ram et une grande patience.
    Messages
    805
    Billets dans le blog
    1
    Alors ça c'est un script utiles ! Merci.
    C'est en pratiquant que l'on apprend...

  8. #8
    Pilier Avatar de Fredaubailly
    Date d'inscription
    février 2004
    C4D version
    R11.5
    OS
    OSX
    Messages
    1 883
    Mortel !!!!
    Bravo et merci pour le partage !

  9. #9
    Pilier Avatar de Wonders
    Date d'inscription
    juillet 2011
    C4D version
    S22 Souscription
    OS
    Win10
    Messages
    968
    Splendide !
    Merci pour le script.

  10. #10
    Big Boss Avatar de Seb-bbl
    Date d'inscription
    mai 2005
    C4D version
    R13 Studio
    OS
    Mac OSX 10.7
    Messages
    6 507
    Billets dans le blog
    8
    Je l'ai ajouté à c4dextensions.info. Les autres vont suivre.
    http://c4dextensions.info/index.php/...same-direction

  11. #11
    Gourou Avatar de César Vonc
    Date d'inscription
    avril 2006
    C4D version
    Autre
    OS
    Windows 10
    Messages
    2 483
    Aïe, le nombre de visite a explosé et mon site, hébergé chez OVH, a carrément planté... « trafic illimité » qu'ils m'ont dit, tu parles !

    Édition : ça a l'air d'aller mieux, cliquez avec douceur. ^^
    Re-Édition : Ah ben non. Le serveur semble instable, je vais aller gueuler un coup.
    Dernière modification par César Vonc ; 25/04/2012 à 14h09.

  12. #12
    Big Boss Avatar de Seb-bbl
    Date d'inscription
    mai 2005
    C4D version
    R13 Studio
    OS
    Mac OSX 10.7
    Messages
    6 507
    Billets dans le blog
    8
    Trafic illimité ? Tu t'es fait rouler ! Le site n'a enregistré que 330 visites aujourd'hui !

  13. #13
    Gourou Avatar de César Vonc
    Date d'inscription
    avril 2006
    C4D version
    Autre
    OS
    Windows 10
    Messages
    2 483
    Tiens, j'ignore ce qu'il se passe sur c4dextensions.info mais tout a l'air d'avoir changé, je ne retrouve plus ce que tu avais ajouté, Seb.



    Petite correction du script (v1.1) : la fonction GetAngle() me renvoyait parfois NaN quand elle comparait deux vecteurs quasi identiques... étrange.

    En tout cas, je recommande vivement cette mise à jour !

Discussions similaires

  1. Sélectionner objets de même nature ( dans une hierarchie complexe )
    Par Cybjer dans le forum Général Cinema 4D
    Réponses: 6
    Dernier message: 19/09/2008, 17h28
  2. Je ne peux plus sélectionner les points !
    Par phanault dans le forum Nouveaux membres
    Réponses: 2
    Dernier message: 10/11/2005, 01h28
  3. Sélectionner un segment
    Par smateo dans le forum Général Cinema 4D
    Réponses: 16
    Dernier message: 26/08/2004, 16h38
  4. Sélectionner les polygones d'un HyperNURBS...
    Par Mikl dans le forum Modélisation
    Réponses: 5
    Dernier message: 02/04/2004, 10h10
  5. Réponses: 12
    Dernier message: 16/03/2004, 17h57

Règles de messages

  • Vous ne pouvez pas créer de nouvelles discussions
  • Vous ne pouvez pas envoyer des réponses
  • Vous ne pouvez pas envoyer des pièces jointes
  • Vous ne pouvez pas modifier vos messages
  •  
Mediaworks - Logiciels 3D | Design Internet - Creation site internet