Boutique Cinema 4D
Page 1 sur 2 12 DernièreDernière
Affichage des résultats 1 à 30 sur 49

Discussion: Scripts divers python by oli_d

  1. #1
    Pilier Avatar de oli_d
    Date d'inscription
    avril 2004
    C4D version
    Autre
    OS
    MacOS X
    Messages
    707

    Scripts divers python by oli_d

    Je me rends compte que je commence à semer des petits scripts un peu partout dans le forum, je vais tenter d'en regrouper quelques un dans ce sujet, jusqu'à ce que je me sorte les pouces et que je fasse un jour un site web avec des plugins plutôt que des scripts

    Les bouts de code sont à coller dans le menu python/gestionnaire de scripts puis bouton créer un script. Le script apparaitra après redémarrage dans python script personnalisé

    Import automatique d'un dossier d'images :

    premières versions dans ce sujet ici

    Importe toutes les images d'un dossier en créant une texture et un plan avec la texture appliquée


    1. première boîte de dialogue pour choisir le dossier
    2. attention la seconde boîte de dialogue est discrète ; il y a 3 cases à cocher
      chemin absolu si la texture n'est pas dans le dossier tex
      canal alpha : si l'image a un alpha que l'on veut retrouver dans le canal du même nom
      plan pour chaque texture : si on veut créer les objets plan avec la texture appliquée
    3. Si vous avez beaucoup d'images ou si elles sont lourdes, il faut être patient (mais c'est toujours plus rapide qu'à la mano)

    retours sur bugs , crises de nerf, orgasmes, améliorations souhaitées, bienvenus ...

    Code PHP:
    import c4d
    import os
    ,glob
     
    ABSOLU 
    1101
    ALPHA 
    1102
    PLAN 
    1103
    OK 
    1201
    CANCEL 
    1202
    lst_ext 
    = ['.jpg','.tif','.tga','.png','.psd','.b3d','.gif']
    class 
    ImportImages():
        
    def __init__(self,dossier,absolu,alpha,plan):
            
    self.pos c4d.Vector(0)
            
    os.chdir(dossier)
            if 
    plan :
                
    grpe c4d.BaseObject(c4d.Onull)
                
    path,name os.path.split(dossier)
                
    grpe.SetName(name)
            for 
    fn in os.listdir(dossier):
                
    nom,ext os.path.splitext(fn)
                if 
    absolu fn os.path.abspath(fn)
                if 
    ext in lst_ext:
                    
    mat self.creer_mat(fn,nom,alpha)
                    if 
    plan :
                        
    #affiche = self.creer_plan_image(fn,nom,mat)
                        
    affiche self.creer_poly_image(fn,nom,mat)
                        if 
    affiche :
                            
    affiche.InsertUnder(grpe)
            if 
    plan doc.InsertObject(grpe)
            
        
    def creer_mat(self,fn,nom,alpha=True):
            
    mat c4d.BaseMaterial(c4d.Mmaterial)
            
    mat.SetName(nom)
            
    doc.InsertMaterial(mat)
            
    shd c4d.BaseList2D(c4d.Xbitmap)
            
    shd[c4d.BITMAPSHADER_FILENAME] = fn
            mat
    [c4d.MATERIAL_COLOR_SHADER] = shd
            mat
    .InsertShader(shd)
            
    mat[c4d.MATERIAL_USE_SPECULAR]=False
        
            
    if alpha :
                
    mat[c4d.MATERIAL_USE_ALPHA]=True
                shda 
    c4d.BaseList2D(c4d.Xbitmap)
                
    shda[c4d.BITMAPSHADER_FILENAME] = fn 
                mat
    [c4d.MATERIAL_ALPHA_SHADER]=shda
                mat
    .InsertShader(shda)
                
            
    mat.Message(c4d.MSG_UPDATE)
            
    mat.Update(TrueTrue)
            return 
    mat   
            
        def creer_plan_image
    (self,fn,nom,mat):
            
    bmp c4d.bitmaps.BaseBitmap()
            if 
    bmp.InitWith(fn)[0]== c4d.IMAGERESULT_OK:
                
    larg,haut bmp.GetSize()
                
    bmp.FlushAll()
                
    plan c4d.BaseObject(c4d.Oplane)
                
    plan.SetAbsPos(self.pos)
                
    self.pos.x+=larg
                plan
    .SetName(nom)
                
    plan[c4d.PRIM_PLANE_WIDTH]=larg
                plan
    [c4d.PRIM_PLANE_HEIGHT]=haut
                plan
    [c4d.PRIM_PLANE_SUBW]=1
                plan
    [c4d.PRIM_PLANE_SUBH]=1
                plan
    [c4d.PRIM_AXIS]=5
                tag 
    c4d.TextureTag()
                
    tag.SetMaterial(mat)
                
    tag[c4d.TEXTURETAG_PROJECTION]=6
                plan
    .InsertTag(tag)
            
                return 
    plan #doc.InsertObject(plan)
            
    else : return None
            
        def creer_poly_image
    (self,fn,nom,mat):
            
    bmp c4d.bitmaps.BaseBitmap()
            if 
    bmp.InitWith(fn)[0]== c4d.IMAGERESULT_OK:
                
    larg,haut bmp.GetSize()
                
    self.pos.x+=larg/2
                mi_l
    =larg/2
                bmp
    .FlushAll()
                
    plan c4d.PolygonObject(4,1)
                
    plan.SetAbsPos(self.pos)
                
    plan.SetName(nom)
                
    plan.SetPoint(0,c4d.Vector(mi_l,0,0))
                
    plan.SetPoint(1,c4d.Vector(mi_l,haut,0))
                
    plan.SetPoint(2,c4d.Vector(-mi_l,haut,0))
                
    plan.SetPoint(3,c4d.Vector(-mi_l,0,0))
                
    plan.SetPolygon(0,c4d.CPolygon(0,1,2,3))
                
    self.pos.x+=larg/2
                
                tag 
    c4d.TextureTag()
                
    tag.SetMaterial(mat)
                
    tag[c4d.TEXTURETAG_PROJECTION]=6
                plan
    .InsertTag(tag)
                
                
    tuvw c4d.UVWTag(1)
                
    tuvw.SetSlow(0,c4d.Vector(0,1,0),
                               
    c4d.Vector(0,0,0),
                               
    c4d.Vector(1,0,0),
                               
    c4d.Vector(1,1,0))
                
    plan.InsertTag(tuvw)
                
    plan.Message(c4d.MSG_UPDATE)        
                return 
    plan #doc.InsertObject(plan)
            
    else : return None
    class MonDlg(c4d.gui.GeDialog):
        
    def __init__(self):
            
    self.dossier c4d.storage.LoadDialog(flags=c4d.FILESELECT_DIRECTORY,title="Dossier contenant les images")
            
    self.absolu True
            self
    .alphaTrue
            self
    .plan True
                
        def CreateLayout
    (self):
            
    self.SetTitle("Options d'importation")
            
    self.GroupBegin(1100,flags=c4d.BFH_SCALEFITcols=1rows=3)
            
    self.GroupBorderSpace(10101010)                                  
            
    self.AddCheckbox(ABSOLU,flags=c4d.BFH_MASKinitw=250,inith=15,name="chemin absolu ")                                  
            
    self.AddCheckbox(ALPHA,flags=c4d.BFH_MASKinitw=250,inith=15,name='canal alpha')                                  
            
    self.AddCheckbox(PLAN,flags=c4d.BFH_MASKinitw=250,inith=15,name='plan pour chaque texture'
            
    self.GroupEnd()
            
    self.GroupBegin(1200,flags=c4d.BFH_SCALEFITcols=2rows=1)
            
    self.GroupBorderSpace(10101010)
            
    self.AddButton(OK,flags=c4d.BFH_MASKinitw=50,inith=15,name='OK'
            
    self.AddButton(CANCEL,flags=c4d.BFH_MASKinitw=50,inith=15,name='Annuler'
            
    self.GroupEnd()
            return 
    True
                
        def InitValues
    (self):
            
    self.SetBool(ABSOLU,True)
            
    self.SetBool(ALPHA,True)
            
    self.SetBool(PLAN,True)
            
    self.absolu True
            self
    .alphaTrue
            self
    .plan True
            
            
    return True
            
        def Command
    (self,id,msg):
            if 
    id == ABSOLU self.absolu self.GetBool(ABSOLU)
            if 
    id == ALPHA self.alpha self.GetBool(ALPHA)
            if 
    id == PLAN self.plan self.GetBool(PLAN)
            
            if 
    id == OK:
                
    self.Close()
                
    ImportImages(self.dossier,self.absolu,self.alpha,self.plan)
            if 
    id == CANCEL:
                
    self.Close()
                
            return 
    True
     
    if __name__=='__main__':
        
        
    dlg MonDlg()
        
    dlg.Open(c4d.DLG_TYPE_MODAL_RESIZEABLE)
        
        
    c4d.EventAdd() 
    Dernière modification par oli_d ; 06/05/2011 à 17h29.

  2. #2
    Big Boss Avatar de NiKo
    Date d'inscription
    novembre 2002
    C4D version
    R12 Studio
    OS
    OSX
    Messages
    6 469
    Génial! J'avais raté ça!
    Super script, et super initiative...
    (ok, c bon, je vais passer en R12... ;-) )

  3. #3
    Vieux Croûton Avatar de Sir Gong
    Date d'inscription
    juillet 2002
    C4D version
    R19 Studio
    OS
    10.13.4 High Sierra
    Messages
    10 353
    Billets dans le blog
    2
    Merci Oli-D, t'es un chef !
    ÷ R19 Studio ÷ cacahuètes ÷

  4. #4
    Vieux Croûton Avatar de shtl
    Date d'inscription
    octobre 2004
    C4D version
    S22 Souscription
    OS
    osX 12.3.1
    Messages
    13 880
    Billets dans le blog
    5
    Ah bah oui ça tombe bien ça. Super! Merci Oli_d
    2x6coreXéon2.66(24T);64Gram; GTX 1080; OSX10.13.6 ////
    Mac Studio 128 Ram ; OSX 12.3.1 ; papiercrayoncerveau;S22Studio;Redshift;Zbrush2022; CS2022
    ///SHTL 2011 DEMO HERE : http://demo.shtl.org/ /// NEW! 2014 WIP

  5. #5
    Pilier Avatar de oli_d
    Date d'inscription
    avril 2004
    C4D version
    Autre
    OS
    MacOS X
    Messages
    707
    Appliquer aléatoirement des textures à des sous-objets :

    Pour appliquer aléatoirement les matériaux sélectionnés aux sous-objets de l'objet actif. Si un tag texture existe déjà il remplace simplement le lien du matériau (discussion initiale )

    1. sélectionner les matériaux
    2. sélectionner l'objet parent contenant les objets à texturer
    3. lancer le script

    Code PHP:
    import c4d
    import random

    def main
    ():
        
    matsdoc.GetActiveMaterials()
        if 
    mats :
            
    parent doc.GetActiveObject()
            if 
    parent:
                for 
    obj in parent.GetChildren():
                    
    tg c4d.TextureTag()
                    
    tg[c4d.TEXTURETAG_MATERIAL]=random.choice(mats)
                    
    obj.InsertTag(tg)
        
    c4d.EventAdd()
                    

    if 
    __name__=='__main__':
        
    main() 

  6. #6
    Pilier Avatar de oli_d
    Date d'inscription
    avril 2004
    C4D version
    Autre
    OS
    MacOS X
    Messages
    707
    Objet extrusion en objet polygonal :

    Transforme un objet extrusion spline en polygone en connectant les chanfreins et couvercles et en optimisant


    1. Sélectionner l'objet extrusion
    2. Lancer le script
    3. Cliquer sur le bouton ok de la boîte de dialogue optimiser

    Fait un peu la même chose que le script COFFEE de Majoul opti-connect. Je ne l'ai pas testé avec d'autres objets type extrusion contrôlée mais cela devrait également fonctionner.

    Code PHP:
    import c4d


    def main
    ():
        
    c4d.CallCommand(12236)# Autoriser les modifications
        
    obj doc.GetActiveObject()
        if 
    obj :
            for 
    o in obj.GetChildren():
                
    o.SetBit(c4d.BIT_ACTIVE)
                for 
    o2 in o.GetChildren():
                    
    o2.SetBit(c4d.BIT_ACTIVE)
            
    c4d.CallCommand(16768)#Connecter+Supprimer
            
    c4d.CallCommand(14039)# Optimiser...

    if __name__=='__main__':
        
    main() 
    Merci pour les commentaires, ça fait toujours plaisir les retours

  7. #7
    Touriste
    Date d'inscription
    septembre 2007
    OS
    Mac OS X
    Messages
    16
    Merci oli_d pour la nouvelle version de l'import automatique avec les plans, c'est vraiment super pratique! Je vais m'empresser les 2 autres scripts…

  8. #8
    Pilier Avatar de oli_d
    Date d'inscription
    avril 2004
    C4D version
    Autre
    OS
    MacOS X
    Messages
    707
    Regrouper les passes :

    selon sujet de Gyom ici


    Crée un dossier par type de passe ou par masque et y déplace les images correspondantes.

    1. Lancer le script une fois le rendu multipasses effectué
    2. Choisir le dossier contenant le rendu dans la boîte dialogue
    3. Normalement les sous-dossiers sont créés et les images rangées à l'intérieur (tous les fichiers ne contenant pas d' '_' (underscore) sont ignorés

    Code PHP:
    import c4d
    import os
    import shutil


    def regrouperImages
    ():

        
    dir c4d.storage.LoadDialog(flags=c4d.FILESELECT_DIRECTORY
        if 
    dir:
            
    listdir =  os.listdir(dir)
            
            for 
    file in listdir:
                if 
    os.path.isfile:
                    
    basenameos.path.basename(file)#nom avec extension
                    
    name os.path.splitext(basename)[0]#sans extension
                    
    try :
                        
    name name.split('_',1)[1]#on enlève toute la partie avant le premier_
                    
    except:continue
                    
                    
    cnt len(name)-1
                    r 
    name[cnt].isdigit()
                    while (
    r==1):
                        
    cnt-=1
                        r 
    name[cnt].isdigit()
                    
    dir2 os.path.join(dir ,name[:cnt+1])
                    if 
    not os.path.exists(dir2):
                        
    os.makedirs(dir2)
                    
    dst os.path.join(dir2,basename)
                    
    file os.path.join(dir,file)
                    
    shutil.move(filedst)
                
        
    if 
    __name__=='__main__':
        
    regrouperImages() 
    Dernière modification par oli_d ; 06/05/2011 à 18h16.

  9. #9
    Dépendant Avatar de chatbraque
    Date d'inscription
    janvier 2011
    C4D version
    R11.5
    OS
    court
    Messages
    320
    Superbe !
    Tiens !… ben! je vais tester l'extrusion de spline en polygones sur la 11.5…


    merci !
    Dernière modification par chatbraque ; 06/05/2011 à 18h39.
    "Athos pour un !… un Porthos !" (devise des 3 mousquetaires, lorsqu'ils n'étaient encore que 2)

  10. #10
    Pilier Avatar de oli_d
    Date d'inscription
    avril 2004
    C4D version
    Autre
    OS
    MacOS X
    Messages
    707
    Citation Envoyé par chatbraque Voir le message
    Tiens !… ben! je vais tester l'extrusion de spline en polygones sur la 11.5…
    merci !
    C'est pas dit que ça fonctionne sur la 11.5, tiens moi au courant...

  11. #11
    Vieux Croûton Avatar de shtl
    Date d'inscription
    octobre 2004
    C4D version
    S22 Souscription
    OS
    osX 12.3.1
    Messages
    13 880
    Billets dans le blog
    5
    Je vais essayer de pas m'emballer à chacun de tes posts, histoire de pas trop encombrer ce thread, pour les recherches ultérieures, alors je le dit maintenant, comme ça c'est fait:


    Hey mais… je t'aime toi !
    2x6coreXéon2.66(24T);64Gram; GTX 1080; OSX10.13.6 ////
    Mac Studio 128 Ram ; OSX 12.3.1 ; papiercrayoncerveau;S22Studio;Redshift;Zbrush2022; CS2022
    ///SHTL 2011 DEMO HERE : http://demo.shtl.org/ /// NEW! 2014 WIP

  12. #12
    Dépendant Avatar de chatbraque
    Date d'inscription
    janvier 2011
    C4D version
    R11.5
    OS
    court
    Messages
    320
    Citation Envoyé par oli_d Voir le message
    C'est pas dit que ça fonctionne sur la 11.5, tiens moi au courant...
    En tous cas, la manip de changement d'heure marche impec…
    (et en effet, comme tu le dis sur l'autre fil, on peut remettre la date correcte juste après l'ouverture de C4D, puisque py4D reste actif tant que le logiciel est ouvert… le fichier restera donc "à la bonne heure" ;o))

    … pour la suite, c'est surtout que je n'ai jamais pratiqué, il me faudrait un mini-tuto… ou bien, un ou deux conseils…
    Je l'entre où le script :
    - plutôt quelque part en "A" ?
    - dans le python generator en "B" ?
    - Ailleurs ? ;o)) … je suis une bille !… c'est clair !

    merci pour le tuyau…
    Miniatures attachées Miniatures attachées python.jpg  
    Dernière modification par chatbraque ; 06/05/2011 à 20h49.
    "Athos pour un !… un Porthos !" (devise des 3 mousquetaires, lorsqu'ils n'étaient encore que 2)

  13. #13
    Big Boss Avatar de NiKo
    Date d'inscription
    novembre 2002
    C4D version
    R12 Studio
    OS
    OSX
    Messages
    6 469
    Back... Je viens d'essayer l'import automatique de fichiers image, j'ai une erreur. La console me donne:
    AttributeError: 'module' object has no attribute 'FILESELECT_DIRECTORY'

    Je suis en 11.5. ça viendrai de là?

  14. #14
    Pilier Avatar de oli_d
    Date d'inscription
    avril 2004
    C4D version
    Autre
    OS
    MacOS X
    Messages
    707
    Bon avec la 11.5 c'est pas gagné, j'ai testé il n'y a que objet extrusion en objet polygonal qui fonctionne.

    En plus la doc n'existe plus sur le site de py4d, donc pour modifier le code c'est galère (sans parler des fonctions qui manquent réellement ou qui ne fonctionnent pas)

    Citation Envoyé par chatbraque Voir le message
    - plutôt quelque part en "A" ?
    - dans le python generator en "B" ?
    En A Dans le Script Manager, mais bon pour l'instant un seul script fonctionne ...

  15. #15
    Dépendant Avatar de chatbraque
    Date d'inscription
    janvier 2011
    C4D version
    R11.5
    OS
    court
    Messages
    320
    Citation Envoyé par oli_d Voir le message
    En A Dans le Script Manager, mais bon pour l'instant un seul script fonctionne ...
    OK !… j'avais commencé par là, mais il me donne un message d'erreur à chaque fois (même avec le script "objet extrusion en objet polygonal")

    1- Existerait-ll un petit descriptif pour chacune des fonctions de Py C4D ?
    2- cette versionde Py C4D pour C4D 11.5 est-elle toujours compatible avec le code python tel qu'il existe aujourd'hui ?


    (besides that : Il apporte quoi de plus qu'un "curent state to object" ce scipt ?… pakompri ?)
    Dernière modification par chatbraque ; 07/05/2011 à 08h40.
    "Athos pour un !… un Porthos !" (devise des 3 mousquetaires, lorsqu'ils n'étaient encore que 2)

  16. #16
    Pilier Avatar de oli_d
    Date d'inscription
    avril 2004
    C4D version
    Autre
    OS
    MacOS X
    Messages
    707
    Citation Envoyé par chatbraque Voir le message
    mais il me donne un message d'erreur à chaque fois (même avec le script "objet extrusion en objet
    Quel message ?
    1- Existerait-ll un petit descriptif pour chacune des fonctions de Py C4D ?
    Malheureusement la doc pour py4d de la r11.5 était en ligne et n'est plus disponible, à moins que quelqu'un l'aie "aspirée"
    Sinon il y a toujours celle de la 12 disponible chez Maxon (http://www.maxon.net/fr/support/plugin-cafe.html)

    cette versionde Py C4D pour C4D 11.5 est-elle toujours compatible avec le code python tel qu'il existe aujourd'hui ?
    La plupart des fonctions sont semblables, mais il suffit d'une fonction où on a changé une virgule pour que le code ne marche plus.

    Par exemple j'utilise la fonction c4d.storage.LoadDialog() qui fonctionne également sur la 11.5 et qui sert à lancer la boîte de dialogue de choix d'un fichier, mais si on veut choisir un dossier cela devient :c4d.storage.LoadDialog(flags=c4d.FILESELECT_DIRECTORY) et ça ne marche pas dans la 11.5 d'où le message d'erreur reporté par Nico ci-dessus.

    Pour les tags textures il y avait aussi un bug qu'avait signalé miro dans ce sujet (dernier message) et que je confirme.

    Enfin la 11.5 était vraiment une version beta ...


  17. #17
    Pilier Avatar de xs_yann
    Date d'inscription
    février 2005
    C4D version
    R19 Studio
    OS
    Mac OS X 10.13
    Messages
    1 990
    En R12 les constantes ont été toutes regroupées dans le module c4d. En R11.5 non, cela donne donc :

    Code:
     dir = c4d.storage.LoadDialog(flags=c4d.storage.FILESELECT_DIRECTORY)
    ou
    Code:
     dir = storage.LoadDialog(flags=storage.FILESELECT_DIRECTORY)
    avec
    Code:
    from c4d import storage
    au début.

  18. #18
    Dépendant Avatar de chatbraque
    Date d'inscription
    janvier 2011
    C4D version
    R11.5
    OS
    court
    Messages
    320
    Citation Envoyé par oli_d Voir le message
    Quel message ?
    ce message :
    Miniatures attachées Miniatures attachées erreure.jpg  
    "Athos pour un !… un Porthos !" (devise des 3 mousquetaires, lorsqu'ils n'étaient encore que 2)

  19. #19
    Dépendant Avatar de chatbraque
    Date d'inscription
    janvier 2011
    C4D version
    R11.5
    OS
    court
    Messages
    320
    … J'ai donc remplacé la première ligne de code par celle proposée par xs-yann… et maintenant, c'est à la ligne 3 qu'il y a un blème…
    "Error in line 3, col 17: def main():"

    …c'est la "tuile" !…




    (et même la "python-tuile"… comme disent les Alsaciens qui roulent au 2-temps)
    Dernière modification par chatbraque ; 07/05/2011 à 14h27.
    "Athos pour un !… un Porthos !" (devise des 3 mousquetaires, lorsqu'ils n'étaient encore que 2)

  20. #20
    Dépendant Avatar de chatbraque
    Date d'inscription
    janvier 2011
    C4D version
    R11.5
    OS
    court
    Messages
    320
    Sinon, j'ai aussi essayé le script de texture aléatoire sur sous-objets…
    … en changeant la première ligne, plus de message d'erreur…
    Alors j'ai cliqué :
    - "execute" = rien
    - "render icon" = ça m'affiche une jolie icône qui reprend les objets de mon écran principal
    - "create script" = il me demande un nom, je lui donne un nom, il me rétorque : "create sucess"… je lui dis "Ok"…
    … et on se quitte bons amis…

    … mais mes textures ne bronchent pas !



    (c'est une tuerie python )
    Dernière modification par chatbraque ; 07/05/2011 à 14h30.
    "Athos pour un !… un Porthos !" (devise des 3 mousquetaires, lorsqu'ils n'étaient encore que 2)

  21. #21
    Pilier Avatar de xs_yann
    Date d'inscription
    février 2005
    C4D version
    R19 Studio
    OS
    Mac OS X 10.13
    Messages
    1 990
    Citation Envoyé par chatbraque Voir le message
    … J'ai donc remplacé la première ligne de code par celle proposée par xs-yann… et maintenant, c'est à la ligne
    Cela ne sert a rien, le 'from c4d import x' se met après 'import c4d'. Et chez moi le script de oli_d s'execute sans erreur (en R11.5).

  22. #22
    Pilier Avatar de Vcyrille
    Date d'inscription
    novembre 2003
    C4D version
    R16 Visualize
    OS
    WIN 7
    Messages
    963
    Cette discussion va vite devenir un "incontournable", merci Oli_d

  23. #23
    Gourou Avatar de clemz
    Date d'inscription
    février 2009
    C4D version
    R15 Studio
    OS
    windaube x64
    Messages
    2 165
    merci Oli_D ! je suis toujours en apprentissage et tes scripts sont de super tutoriaux !

    clem

  24. #24
    Pilier Avatar de oli_d
    Date d'inscription
    avril 2004
    C4D version
    Autre
    OS
    MacOS X
    Messages
    707
    [QUOTE=xs_yann;959020]En R12 les constantes ont été toutes regroupées dans le module c4d. En R11.5 non, cela donne donc :

    Code:
     dir = c4d.storage.LoadDialog(flags=c4d.storage.FILESELECT_DIRECTORY)
    Merci xs_yann, donc si on remplace c4d.storage.LoadDialog(flags=c4d.FILESELECT_DIRECT ORY) par c4d.storage.LoadDialog(flags=c4d.storage.FILESELEC T_DIRECTORY) le script regrouper les passes fonctionne en 11.5 (en tous cas chez moi).

    Par contre pour les autres y a encore d'autres constantes à changer et c'est pas gagné ... j'ai pas trop le temps de tout regarder en détail

    Pour les tutos, je me prépare psychologiquement, mais j'aimerais plutôt essayer de partir dans des tut'vidéos (avec mon accent suisse super sexy ça va être l'émeute!)

    (et même la "python-tuile"… comme disent les Alsaciens qui roulent au 2-temps)
    :biggrin::biggrin::biggrin:

    - "create script" = il me demande un nom, je lui donne un nom, il me rétorque : "create sucess"… je lui dis "Ok"…
    il faudra redémarrer c4d et après il devrait apparaître dans le menu py4d/script (mais s'il ne fonctionnait pas, il ne marchera pas mieux)

  25. #25
    Dépendant Avatar de chatbraque
    Date d'inscription
    janvier 2011
    C4D version
    R11.5
    OS
    court
    Messages
    320
    Citation Envoyé par oli_d Voir le message
    il faudra redémarrer c4d et après il devrait apparaître dans le menu py4d/script (mais s'il ne fonctionnait pas, il ne marchera pas mieux)
    effectivement, le script apparait après redémarrage…

    Je ne veux pas polluer trop ton fil, qui s'annonce très utile à tous…
    … je te propose donc (si tu le veux bien) de continuer la discussion sur ce fil dédié pyC4d et 11.5 :
    http://frenchcinema4d.fr/showthread....-pour-la-R11.5

    Merci de ton aide…
    Dernière modification par chatbraque ; 08/05/2011 à 11h34.
    "Athos pour un !… un Porthos !" (devise des 3 mousquetaires, lorsqu'ils n'étaient encore que 2)

  26. #26
    Pilier Avatar de oli_d
    Date d'inscription
    avril 2004
    C4D version
    Autre
    OS
    MacOS X
    Messages
    707
    C'est bizarre tu as toujours cette erreur à la première ligne.

    Essaie juste de coller ce code dans le script manager et dis moi si le mot "test" apparaît dans la console (menu py4d/console)

    Code PHP:
    import c4d

    print 'test' 
    sinon essaie de voir si tu n'as pas un caractère bizarre après import c4d
    Dernière modification par oli_d ; 08/05/2011 à 11h54.

  27. #27
    Dépendant Avatar de chatbraque
    Date d'inscription
    janvier 2011
    C4D version
    R11.5
    OS
    court
    Messages
    320
    Je suis sûr que je fais une grosse boulette de newbie de base…

    j'ai copié/collé ton petit bout de code-test : "message d'erreur" ! (grrrr!)

    …Du coup, je l'ai "re-copié", re-collé… et là, ça à l'air de marcher (voir capture d'écran jointe)
    … il y aurait moyen de faire des pâtés juste en copiant/collant ????

    c'est vraiment étrange, lorsque j'enlève l'espace entre"import" et "c4d", le message d'erreur disparaît, et passe à la ligne suivante…
    … là si j'enlève l'espace entre "c4d" et "import", le nouveau message disparaît également… pour laisser la place a un message d'erreur en ligne 6… pfuuuuu !
    Miniatures attachées Miniatures attachées bleme-1.jpg  
    Dernière modification par chatbraque ; 08/05/2011 à 12h15.
    "Athos pour un !… un Porthos !" (devise des 3 mousquetaires, lorsqu'ils n'étaient encore que 2)

  28. #28
    Pilier Avatar de oli_d
    Date d'inscription
    avril 2004
    C4D version
    Autre
    OS
    MacOS X
    Messages
    707
    Dans le message de la console il my a un EOL qui doit signifier End Of Line donc il y a effectivement le caractère de fin de ligne qu'il ne doit pas digérer...

    Si tu arrives à ne plus avoir le message d'erreur teste déjà le script qui fonctionne (objet extrusion ...).
    Pour répondre à ta question sur l'utilité de ce script, quand tu fais simplement convertir en objet une extrusion, les couvercles et chanfreins viennent dans des objets polygonaux séparés en enfant. Si tu veux n'avoir qu'un seul objet polygonal, il faut ensuite les sélectionner, les connecter puis otimiser les points pour les souder. Le script fait tout ça en un seul clic.

  29. #29
    Dépendant Avatar de chatbraque
    Date d'inscription
    janvier 2011
    C4D version
    R11.5
    OS
    court
    Messages
    320
    Citation Envoyé par oli_d Voir le message
    Dans le message de la console il my a un EOL qui doit signifier End Of Line donc il y a effectivement le caractère de fin de ligne qu'il ne doit pas digérer...
    Donc un blème au "copié/collé" ?!… je vais essayer de passer par simpletext pour voir si ça marche mieux.

    Citation Envoyé par oli_d Voir le message
    Si tu arrives à ne plus avoir le message d'erreur teste déjà le script qui fonctionne (objet extrusion ...).
    Pour répondre à ta question sur l'utilité de ce script, quand tu fais simplement convertir en objet une extrusion, les couvercles et chanfreins viennent dans des objets polygonaux séparés en enfant. Si tu veux n'avoir qu'un seul objet polygonal, il faut ensuite les sélectionner, les connecter puis optimiser les points pour les souder. Le script fait tout ça en un seul clic.
    Yeaaaah ! les fameux couvercles !


    …//… édité …//…

    En passant par simpletext, je n'ai plus ces messages de fin de ligne… en revanche, j'ai ça maintenant :
    (pas son truc le "x", il a tendance à censurer… faut peut-être éviter "les animes de boules" )
    Miniatures attachées Miniatures attachées bleme.jpg  
    Dernière modification par chatbraque ; 08/05/2011 à 12h35.
    "Athos pour un !… un Porthos !" (devise des 3 mousquetaires, lorsqu'ils n'étaient encore que 2)

  30. #30
    Pilier Avatar de oli_d
    Date d'inscription
    avril 2004
    C4D version
    Autre
    OS
    MacOS X
    Messages
    707
    from c4d import *(astérisque) et pas x

    Mais tu n'es pas obligé de le mettre (ça sert juste à éviter de mettre c4d. avant chaque fonction ou classe de la bibliothèque c4d.

    Mais encore une fois celui-ci ne marche pas chez moi en 11.5 il y un truc qui bloque à cause du TextureTag

Discussions similaires

  1. MDD Reader python
    Par valkaari dans le forum Programmation
    Réponses: 6
    Dernier message: 21/02/2011, 00h41
  2. Py4D : le language python dans C4D
    Par oli_d dans le forum Xpresso/Programmation
    Réponses: 47
    Dernier message: 27/09/2010, 11h18
  3. Py4D: Python dans c4d, c'est maintenant possible.
    Par shtl dans le forum Programmation
    Réponses: 3
    Dernier message: 28/02/2009, 09h02
  4. Petit scripts d'acceuil (pour se connecter)
    Par kyoshiro dans le forum Le site
    Réponses: 10
    Dernier message: 21/03/2005, 16h41
  5. Quelques scripts de COFFEE
    Par blazouf dans le forum Xpresso
    Réponses: 6
    Dernier message: 05/08/2002, 17h10

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