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

Discussion: Création de boutons "interface" pour personnalisation de l'interface

  1. #1
    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

    Création de boutons "interface" pour personnalisation de l'interface

    Bonjour, je mets ce sujet en Programmation parce que j'ai l'impression qu'il faut un petit script pour résoudre la question.

    Je souhaiterais docker 3 boutons qui permettent de switcher entre les 3 interfaces que j'utilise le plus souvent, à savoir :
    - Interface de démarrage (utilisateur)
    - BP UV Edit (utilisateur)
    - BP 3D Paint (utilisateur)
    pour éviter de passer par la liste déroulante.

    Cliquez sur l'image pour la voir en taille réelle 

Nom : 		Capture d’écran 2015-02-17 à 10.57.31.jpg 
Affichages :	4 
Taille :		82,7 Ko 
ID : 			14242

    Si c'est faisable "simplement" ce serait bien cool...
    ÷ R19 Studio ÷ cacahuètes ÷

  2. #2
    Pilier Avatar de xs_yann
    Date d'inscription
    février 2005
    C4D version
    R19 Studio
    OS
    Mac OS X 10.13
    Messages
    1 990
    Salut Sir Gong,

    Voilà comment charger une interface :

    Code PHP:
    import os
    import c4d
    from c4d import documents
    from c4d import storage

    def main
    ():
        
    prefs storage.GeGetC4DPath(c4d.C4D_PATH_PREFS)
        
    path os.path.join(prefs"template.l4d")
        
    documents.LoadFile(path)

    if 
    __name__=='__main__':
        
    main() 
    Code PHP:
    lib_user storage.GeGetC4DPath(c4d.C4D_PATH_LIBRARY_USER)
    path os.path.join(lib_user"layout""BP UV Edit.l4d")
    documents.LoadFile(path
    Code PHP:
    lib storage.GeGetC4DPath(c4d.C4D_PATH_LIBRARY)
    path os.path.join(lib"layout""BP UV Edit.l4d")
    documents.LoadFile(path
    C4D_PATH_PREFS : /Users/username/Library/Preferences/MAXON/CINEMA 4D R15_xxxx/prefs
    C4D_PATH_LIBRARY : /Applications/MAXON/CINEMA 4D R15/library
    C4D_PATH_LIBRARY_USER : /Users/xs_yann/Library/Preferences/MAXON/CINEMA 4D R15_xxx/library

  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
    Hu.


    Heu.
    J'essaye de comprendre et je reviens.

    (Merci pour ta réponse, déjà)
    ÷ R19 Studio ÷ cacahuètes ÷

  4. #4
    Pilier Avatar de xs_yann
    Date d'inscription
    février 2005
    C4D version
    R19 Studio
    OS
    Mac OS X 10.13
    Messages
    1 990
    Un peu mieux expliqué :

    Code PHP:
    import os
    import c4d
    from c4d import documents
    from c4d import storage

    def main
    ():
        
    # on récupère le chemin /Users/username/Library/Preferences/MAXON/CINEMA 4D R15_xxx/library
        
    lib_user storage.GeGetC4DPath(c4d.C4D_PATH_LIBRARY_USER)
        
        
    # on ajoute le dossier layout et le fichier BP UV Edit.l4d au chemin
        # ce qui donne : /Users/username/Library/Preferences/MAXON/CINEMA 4D R15_xxx/library/layout/BP UV Edit.l4d
        
    path os.path.join(lib_user"layout""BP UV Edit.l4d")
        
    # on charge le fichier l4d qui modifie l’interface
        
    documents.LoadFile(path)

    if 
    __name__=='__main__':
        
    main() 
    L’interface de démarrage est : /Users/username/Library/Preferences/MAXON/CINEMA 4D R15_xxxx/prefs/template.l4d
    Les interfaces c4d sont dans : /Applications/MAXON/CINEMA 4D R15/library/layout/*.l4d
    Les interfaces utilisateur sont dans : /Users/username/Library/Preferences/MAXON/CINEMA 4D R15_xxxx/library/layout/*.l4d

    Tu peux très bien écrire seulement :
    Code PHP:
    documents.LoadFile("/Users/username/Library/Preferences/MAXON/CINEMA 4D R15_xxxx/library/layout/BP UV Edit.l4d"
    C'est juste pas très propre ni portable.

  5. #5
    Big Boss Avatar de genghiskhan
    Date d'inscription
    janvier 2003
    C4D version
    R15 Studio
    OS
    Windows 10 Pro 64bits
    Messages
    5 166
    Billets dans le blog
    1
    attention car les layouts ne sont pas dans le dossier de preferences mais dans le le dossier application.

    /Applications/MAXON/CINEMA 4D R15/library/layout/BP UV Edit.l4d
    i7 4790K/32GoDDR3/GTX1070 - Genghis Khan

  6. #6
    Pilier Avatar de xs_yann
    Date d'inscription
    février 2005
    C4D version
    R19 Studio
    OS
    Mac OS X 10.13
    Messages
    1 990
    Les layout intégrés à C4D, pas les layouts utilisateurs (par défaut en tout cas).
    Tu n'es pas censé toucher au dossier d'installation de c4d (il est même protégé en écriture depuis quelques versions).
    Les plugins vont dans : /Users/username/Library/Preferences/MAXON/CINEMA 4D R15_xxx/plugins
    et les layout dans : /Users/username/Library/Preferences/MAXON/CINEMA 4D R15_xxx/library/layout

    Voici comment utiliser ce code sous forme de script :

    Un fichier layout.py qui va contenir les fonctions :

    Code PHP:
    import os
    import c4d
    from c4d import documents
    from c4d import storage

    def load_interface
    (nameuser):
        if 
    not name.endswith(".l4d"):
            
    name += ".l4d"
        
    where c4d.C4D_PATH_LIBRARY_USER if user else c4d.C4D_PATH_LIBRARY
        lib 
    storage.GeGetC4DPath(where)
        
    path os.path.join(lib"layout"name)
        
    documents.LoadFile(path)

    def load_startup():
        
    prefs storage.GeGetC4DPath(c4d.C4D_PATH_PREFS)
        
    path os.path.join(prefs"template.l4d")
        
    documents.LoadFile(path
    Ensuite il suffit d’importer les fonctions dans chacun des scripts chargeant l’interface désirée :

    load_bp_edit.py
    Code PHP:
    import sys
    import os
    folder 
    os.path.dirname(__file__)
    if 
    folder not in sys.path:
        
    sys.path.append(folder)

    import layout

    def main
    ():
        
    layout.load_interface("BP UV Edit"user=True)

    if 
    __name__=='__main__'
        
    main() 
    load_startup.py
    Code PHP:
    import sys
    import os
    folder 
    os.path.dirname(__file__)
    if 
    folder not in sys.path:
        
    sys.path.append(folder)

    import layout

    def main
    ():
        
    layout.load_startup()

    if 
    __name__=='__main__'
        
    main() 
    @Sir Gong : Pour charger “BP 3D Paint-G (Utilisateur)”, il suffit de copier load_bp_edit.py et de remplacer “layout.load_interface("BP UV Edit", user=True)” par “layout.load_interface("BP 3D Paint-G", user=True)”

    Voici les 3 fichiers : http://www.xsyann.com/fc4d/layout.zip

    Dernière modification par xs_yann ; 17/02/2015 à 14h50.

  7. #7
    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
    Génial !
    Maintenant que tu as tout fait, ça fonctionne.

    Dans tes premières réponses tu étais trop optimiste quant à mes connaissances.
    Pour te dire le niveau, j'avais collé ton code dans la fenêtre coffee parce que ça faisait de plus jolies couleurs que dans la fenêtre python...

    Gros merci, t'es un chef
    ÷ R19 Studio ÷ cacahuètes ÷

  8. #8
    Gourou Avatar de tabou
    Date d'inscription
    juin 2002
    C4D version
    R21 Perpétuelle
    OS
    OS X 10.13.6
    Messages
    2 272
    Bonne idée Gong, moi aussi je change très souvent d'interface et le menu n'est pas pratique.

    Un grand merci Yann pour ton script et les explications très utiles pour un ignorant comme moi.

Discussions similaires

  1. interface personnalisée: créer un icône "déroulante"
    Par GUY FROG dans le forum Interface
    Réponses: 5
    Dernier message: 02/09/2013, 23h19
  2. Interface: raccourcis OU palette dockable pour le pas "Déplacement"
    Par bullecaisson dans le forum Général Cinema 4D
    Réponses: 5
    Dernier message: 23/03/2010, 20h02
  3. Personnalisation de l'interface - checkbox ?
    Par Sir Gong dans le forum Général Cinema 4D
    Réponses: 5
    Dernier message: 05/04/2007, 13h48
  4. Fonctions manquantes et "customisation" de l'interface !!!
    Par olivea dans le forum Nouveaux membres
    Réponses: 10
    Dernier message: 18/03/2007, 09h14
  5. Réponses: 10
    Dernier message: 06/02/2007, 12h08

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