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

Discussion: ajouter un nouveau paramètre a un container ?

  1. #1
    Pilier Avatar de paspas
    Date d'inscription
    février 2004
    Messages
    990

    ajouter un nouveau paramètre a un container ?

    salut

    voilas le souci :

    je voudrait rajouter une valeur dans un container , je m' explique :

    le but est de placer dans un objet une nouvelle valeur dans son container , de facon a pourvoir savoir si cette objet a été modifier par un autre coffee

    en gros un programme coffee modifie une spline , ce programme crée une valeur dans le container de cette spline , un autre programme teste une spline , si il trouve dans le container cette valeur in fait une action sinon si pas il fait une autre action

    j' ai en partie solutionner avec :


    Code:
    var cont = new (BaseContainer);
    
    cont = objet ->GetContainer();
    var MaValeur = cont->GetInt(0);
    
    cont->InsData(MaValeur,1);
    cont->SetData(MaValeur1); // pas forcement utile mais ca marche mieux :shock:
    
    var index= MaValeur->GetIndexData(); 
    
    println(index);
    je recupere ce que je trouve comme valeur d'index
    et dans le second programme


    et je récupère la valeur avec un GetData(valeur trouvée dans le println(index))

    mais ça me parait un peut chipot et peux fiable :oops:

    si quelque qu' un a une autre soluce ou une explication suis preneur

    paspas










  2. #2
    Invité
    Date d'inscription
    juin 2002
    C4D version
    R16 Studio
    OS
    Win 7 Pro
    Messages
    4 252

    Re : ajouter un nouveau paramètre a un container ?

    pour stocker une valeur dans un container il faut d'abord définir un ID (numéro d'identifiant qui permet de pointer directement la valeur parmis les autres paramètres) ensuite tu écris la valeur avec SetData (ID, valeur) ou tu la lis GetData(ID).

    Cet ID peut être n'importe quelle valeur définie de manière absolue, par exemple ID=123456789.
    Ce qu'il faut éviter c'est de définir un ID déjà utiliser pour les paramètres du container, c'est à dir un ID correspondant déjà au stockage d'un paramètre de l'objet, sinon bien sûr, tu vas écraser ce paramètre avec ta valeur perso, et ça risque de partir en vrille ! :lol:

    l'ideal c'est de se définir un ID (12345 par exemple) ensuite de vérifier si il est dispo ou pas, en lisant la valeur de cet ID avec GetData(ID), si ça ne renvoit rien, if (!GetData(ID)), alors tu peux logiquement y mettre ta valeur perso.

    pour vérifier plus rapidement quels ID utilisent C4D pour pointer vers les paramètres des objets, tu vas dans le dossier de C4D \resource\res\description\
    là il y a des fichier en extension .h (header) tu les ouvres avec un editeur de texte, ils contiennent les ID (noms et identifiant associés) des paramètres pour chaque type d'objet.

    Pour un objet Nurbs Bezier par exemple, les ID utilisés sont
    BEZIEROBJECT_SUBRX = 1000,
    BEZIEROBJECT_SUBRY = 1001,
    BEZIEROBJECT_SUBX = 1002,
    BEZIEROBJECT_SUBY = 1003,
    BEZIEROBJECT_CLOSEX = 1004,
    BEZIEROBJECT_CLOSEY = 1005

    :wink:

  3. #3
    Invité
    Date d'inscription
    juin 2002
    C4D version
    R16 Studio
    OS
    Win 7 Pro
    Messages
    4 252

    Re : ajouter un nouveau paramètre a un container ?

    Pour un objet SPline :

    SPLINEOBJECT_INTERPOL = 820,
    SPLINEOBJECT_TYPE = 1000,
    SPLINEOBJECT_TYPE_LINEAR = 0,
    SPLINEOBJECT_TYPE_CUBIC = 1,
    SPLINEOBJECT_TYPE_AKIMA = 2,
    SPLINEOBJECT_TYPE_BSPLINE = 3,
    SPLINEOBJECT_TYPE_BEZIER = 4,
    SPLINEOBJECT_INTERPOLATION = 1001,
    SPLINEOBJECT_INTERPOLATION_NONE = 0,
    SPLINEOBJECT_INTERPOLATION_NATURAL = 1,
    SPLINEOBJECT_INTERPOLATION_UNIFORM = 2,
    SPLINEOBJECT_INTERPOLATION_ADAPTIVE = 3,
    SPLINEOBJECT_INTERPOLATION_SUBDIV = 4,
    SPLINEOBJECT_CLOSED = 1002,
    SPLINEOBJECT_SUB = 1003,
    SPLINEOBJECT_ANGLE = 1004,
    SPLINEOBJECT_MAXIMUMLENGTH = 1005

  4. #4
    Pilier Avatar de paspas
    Date d'inscription
    février 2004
    Messages
    990

    Re*: ajouter un nouveau paramètre a un container ?

    merci ```

    il faut d'abord définir un ID
    comment ?

    container ->InsData(12345); // avec ca ??
    container->SetData(12345,10);

    avec le test que tu preconise bien sur . :lol:






  5. #5
    Invité
    Date d'inscription
    juin 2002
    C4D version
    R16 Studio
    OS
    Win 7 Pro
    Messages
    4 252

    Re : ajouter un nouveau paramètre a un container ?

    non normalement tu as juste à définir ta valeur comme tu l'as fait dans ton exemple avec MaValeur, c'est ton ID.

    var monID=12345;

    container->SetData(monID, 1); // ça écrit la valeur 1 accessible avec son ID 12345
    edit : SetContainer(container);// redéfini le container avec ce nouveau paramètre

    var valeur=container->GetData(monID); // retourne 1 si tu la lis

    container->SetData(monID, 2); // remplace ta valeur perso 1 par 2
    edit : SetContainer(container);// redéfini le container avec ce changement de valeur

  6. #6
    Pilier Avatar de paspas
    Date d'inscription
    février 2004
    Messages
    990

    Re*: ajouter un nouveau paramètre a un container ?

    merciiiiiii

    je test ca ce soir :poucehaut:

    paspas

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

    Re*: ajouter un nouveau paramètre a un container ?

    J'ai testé exactement ça ce midi Tengaal, mais lorsque que j'ai essayé d'y accéder avec une autre expressions coffee il retourne nil. :coup:

    edit : autant pour moi, j'avais oublié le SetContainer(); :oops:



  8. #8
    Invité
    Date d'inscription
    juin 2002
    C4D version
    R16 Studio
    OS
    Win 7 Pro
    Messages
    4 252

    Re : ajouter un nouveau paramètre a un container ?

    oui moi aussi j'avais oublié de préciser qu'il fallait terminer par un SetContainer() pour actualiser le changement de valeur. :wink:

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