Code Vonc

Sélectionner les contours

Script Python pour Cinéma 4D R13.

Comment installer ?How to install ?
CommentairesComments

Une nouvelle version est disponible dans le module Sélections Supplétives.

Contrairement à l'outil sélection de contours de C4D, ce script sélectionne TOUS les contours de l'objet.

Ceci est également un exemple d'utilisation de la classe Neighbor.



import c4d
from c4d.utils import Neighbor

def main():
    if not op: return
    nb_pol = op.GetPolygonCount()
    
    bs = c4d.BaseSelect()
    n = Neighbor()
    n.Init(op)
    
    for i in range(nb_pol):
        pol = op.GetPolygon(i)
        
        pa = pol.a
        pb = pol.b
        pc = pol.c
        pd = pol.d
        
        nab = n.GetNeighbor(pa, pb, i)
        nbc = n.GetNeighbor(pb, pc, i)
        ncd = n.GetNeighbor(pc, pd, i)
        nda = n.GetNeighbor(pd, pa, i)
        
        cotes = n.GetPolyInfo(i)["edge"]
        
        if nab == -1:
            bs.Select(cotes[0])
        if nbc == -1:
            bs.Select(cotes[1])
        if ncd == -1:
            if pc != pd: bs.Select(cotes[2])
        if nda == -1:
            bs.Select(cotes[3])
    
    doc.StartUndo()
    doc.AddUndo(c4d.UNDOTYPE_CHANGE_SELECTION, op)
    
    op.SetSelectedEdges(n, bs, 0)
    
    doc.EndUndo()
    c4d.EventAdd()
    
if __name__=='__main__':
    main()