PDA

Voir la version complète : SDK Maxon (merci Guedinouff)



Renaud
20/12/2004, 14h30
Bonjour à toutes et à tous,

Un de nos membres (Martin, alias Guedinouff pour ne pas le nommer ;-)) fait actuellement un effort considérable pour traduire le SDK de C4D et le mettre à disposition de la communauté.

Vous pouvez télécharger le travail déjà effectué au format PDF (zippé), ici ! (http://www.frenchcinema4d.com/divers/SDK02.zip).

Un grand merci à Martin, et n'hésitez pas à échanger avec lui si vous souhaitez l'aider.


UPDATE : une nouvelle version plus complète est désormais disponible, toujours en PDF, mais zippé, car ça commence à peser, tout ça ;-)

parksto
20/12/2004, 20h33
excellente initiative...

merci beaucoup Guedinouff :poucehaut:

padawa
20/12/2004, 20h36
Merci enormement :efface:

tabou
20/12/2004, 20h53
Merci Guedinouff, très bonne idée :poucehaut: :efface:

Stéphane HENRY
20/12/2004, 21h25
J'avais commencé à la V6 pour comprendre mais j'ai abandonné

Encore bravo Merci

Aurety
20/12/2004, 22h59
Excellent ! Bravo Guedinouf

Realzeb
20/12/2004, 23h09
Merci !! :prie:

Majoul
21/12/2004, 00h35
Dans la BaseObject tu peut rajouter ces trois fonctions. Elles n’existe pas dans le SDK,

Elles sont accessible qu’à partir de la v7, je ne suis pas sur.

SetEditorMode() ;
SetRenderMode() ;
SetDeformMode() ;

Depuis la V8 les PrimitiveObject ont changés. Les fonctions SetPrimitiveType() et GetPrimitiveType() ne sont plus valable :

Liste des primitives Objet:
CubeObject
SphereObject
PlatonicObject
ConeObject
TorusObject
DiscObject
TubeObject
FigureObject
PyramidObject
PlaneObject
FractalObject
CylinderObject
CapsuleObject
OiltankObject
ReliefObject
SinglePolyObject

Liste des primitives Spline:
SplineFormulaObject
SplineTextObject
SplineNSideObject
Spline4SideObject
SplineCircleObject
SplineArcObject
SplineCissoidObject
SplineCycloidObject
SplineProfileObject
SplineHelixObject
SplineRectangleObject
SplineFlowerObject
SplineStarObject
SplineCogwheelObject
SplineContourObject


Depuis la V8.5 on a l’accès au BaseLinks

basecontainer->SetObject(id,object) ;
mon_objet = basecontainer->GetObject(id,document,instanceof);

Guedinouff
21/12/2004, 12h37
Merci beaucoup pour vos encouragements.
Ca n'avance malheuresement pas assez vite à mon goût (Il est long le SDK). Vous pouvez cependant m'aider en rectifiant des erreurs de traductions, ou en m'envoyant des nouvelles pages traduites. Je les mettrais en forme pour essayer de garder un document pdf avec les liens. Vous pouvez me contacter à l'adresse suivante : guedinouff @ anarchie.net.
N'importe quelle page du SDK sont acceptées (donc pas obliger de continuer les parties que j'ai commencé).
Je comptes sur vous tous. :)

Guedinouff
05/01/2005, 16h58
Question
je suis entrain de continuer à traduire le SDK et je viens d'avoir un problème.
je traduisais l'exemple de la fonction stradd de la catégorie "String functions".
J'ai copier l'exemple dans une expression coffee et il y a une erreur.
Voici la ligne qui pose problème :
println(stradd(str1,<I>tostring(num)</I>,str2));
Ce sont les balises <I> et </I> qui sont considérés comme des erreurs.
Comment çà se fait qu'il y ai cette erreur ?

Pour ceux que çà intéresse, je vais essayer d'envoyer à notre webmaster Renaud une nouvelle version de traduction d'ici le 15 janvier.
Des participations mêmes petites sont les bienvenues. Elles peuvent même se présenter sous la forme de correction de la version déjà disponible au sujet de phrases mal traduites ou de mots non traduits (genre undefinined classes).
Je rappelle que vous pouvez m'envoyer un mail à guedinouff @ anarchie.net

Je remercie au passage Stephaen Henry pour son aide.:)

Tengaal
05/01/2005, 17h53
En effet les balises <X> ne sont pas reconnues par le COFFEE, il ne gère pas les styles de texte italic, gras ou autre.
C'est du texte brut utilisé en sortie console uniquement.

Il te suffit simplement d'enlever ces balises pour avoir juste
println(stradd(str1,tostring(num),str2));

Guedinouff
07/01/2005, 22h06
De nouveaux des problèmes avec les exemples du SDK... :coup:

Je viens de tester l'exemple suivant du SDK : tostring() :


var n = 47;
var message = stradd("Il y a ",tostring(n)," items.");
TextDialog(message);

Je m'attendais à voir apparaître une boîte de dialogue avec le texte mais il ne se passe rien.

Il ne se passe rien également pour les exemples suivants :


TextDialog("Hello World!", DLG_OKCANCEL);

et :


// Opens the above dialog with an exclamation mark icon
var result = TextDialog("Hello World!", DLG_OKCANCEL + DLG_ICONEXCLAMATION);

// Checks the result
if (result == DLG_R_OK)
{
TextDialog("You pressed OK!", DLG_OK);

Comment çà se fait ??

J'ai aussi un autre problème avec un exemple, celui de BaseList2D :


// Insert une propriété récemment créé après une autre
var tag = obj->GetFirstTag();
var newTag = new(SmoothingTag);
newTag->InsertAfter(tag);

// Sélectionne une clé dans la ligne de temps
var key = obj->GetFirstTrack()->GetFirstSequence()->GetFirstKey();
key->ToggleBit(BIT_AAMAN, TRUE);
GeEventAdd(TIMELINE_CHANGED);

Je reçois une erreur coffee pour GetFirstTag(), et GetFirstTrack de la forme "Variable or function exepected".
Je ne comprends pas là non plus pourquoi l'exemple donné avec le SDK ne fonctionne pas. :)

Tengaal
07/01/2005, 22h12
Les scripts COFFEE ne peuvent afficher du texte que dans la fenêtre "Console".
Le Coffee peut gérer les éléments d'interface (boite de dialogue, fenetres...) uniquement dans une structure de plugin.

Pour ton message d'erreur dans ta dernière remarque il faut que l'objet obj soit défini sinon il n'existe pas, donc on ne peut pas en extraire les infos d'animation, forcément...

Daubermman
07/01/2005, 22h36
Pour ton message d'erreur dans ta dernière remarque il faut que l'objet obj soit défini sinon il n'existe pas, donc on ne peut pas en extraire les infos d'animation, forcément...

Voui je sais, je vais faire le chiant ! :mrgreen: , mais est ce que tu pourrai détailler, je teste un peu le Coffee de mon côté et je butte toujours la dessus ...

Merci d'avance.

Tengaal
07/01/2005, 23h12
Tu buttes sur quoi ? :o
Sur le fait que obj doit être défini pour pouvoir en obtenir des paramètres ?
On ne peut pas demander le nom, l'adresse et le téléphone de quelqu'un qui n'existe pas... C'est une image mais qui résume bien.

Si tu créés une variable quelconque, ex:
var obj;
Cela créé juste une variable vide et sans type qui se nomme "obj".

Donc si tu veux que obj désigne un objet en particulier, il faut juste l'assigner avec "=", je ne vois vraiment pas où est le problème...

Par exemple dans un script Coffee, la valeur "op" est fournie par C4D, elle représente l'objet sur lequel est placé l'expression, donc on aura:
main(doc, op)
{
var obj=op;
}
Maintenant obj existe, puisqu'il représente un objet de la scène, on peut donc maintenant y accéder (paramètres, pistes d'animation...)

Daubermman
08/01/2005, 12h04
Evidemment Tengaal, ca c'est bon.Par contre moi je fais du coffe avec Wordpad sous forme de plugs, et comme dans certains exemples je met par exemple var obj = new(nullobject); et la il me met une erreur.

Tengaal
08/01/2005, 13h11
C'est parce qu'il faut respecter les majuscules-minuscules:
ce n'est pas "nullobject" mais "NullObject".

Daubermman
08/01/2005, 14h03
Merci de ton aide Tengaal, grace à toi et à l'excellent forum PluginCafe, j'ai enfin réussi a créer mon petit NullObject avec mon bouton ! :mrgreen: , j'y retourne ...

Majoul
08/01/2005, 20h15
TextDialog("Hello World!", DLG_OKCANCEL);


Pour tester et afficher ta fenêtre de dialogue utilise un nœud coffee avec une entrée booléen qui te permettra de déclencher l’action.



// Insert une propriété récemment créé après une autre
var tag = obj->GetFirstTag();
var newTag = new(SmoothingTag);
newTag->InsertAfter(tag);


Pour insérer le tag il te faut utiliser la fonction InsertTag



var tag = obj->GetFirstTag&#40;&#41;;
var newTag = new&#40;SmoothingTag&#41;;
obj->InsertTag&#40;newTag, tag&#41;;

Guedinouff
09/01/2005, 14h40
Pour ton message d'erreur dans ta dernière remarque il faut que l'objet obj soit défini sinon il n'existe pas, donc on ne peut pas en extraire les infos d'animation, forcément...

Toutes mes excuses, c'était évident...



Pour tester et afficher ta fenêtre de dialogue utilise un nœud coffee avec une entrée booléen qui te permettra de déclencher l’action.


Désolé mais je n'y arrive pas. :cry2:
J'ai créer une Xpression avec un nœud COFFEE ainsi qu'une donnée utilisateur de type case à cocher. J'ai relié cette Donnée utilisateur à une entrée Input3 de type Booléen du nœud coffee dans lequel j'ai rentré le script suivant :



main&#40;&#41;
&#123;
//Output1 = Input1 + Input2;
if &#40;Input3=TRUE&#41;
&#123;
TextDialog&#40;"Hello World!", DLG_OKCANCEL&#41;;
&#125;
&#125;

J'ai remplacer le TRUE par "TRUE" et par 1. Sans plus de succès.
Le problème vient-il du fait que je n'ai pas transformé mon expression en plugin ??



var tag = obj->GetFirstTag();
var newTag = new(SmoothingTag);
obj->InsertTag(newTag, tag);


J'ai ajouté la ligne var obj=op au début !!! mais je reçois une erreur de la forme "Variable or function expected" pour la ligne "var newTag = new(SmoothingTag)".
Ca doit probablement encore être tout bête mais je n'y arrive pas. :cry:

tabou
09/01/2005, 16h48
Guedinouff, est ce que tu as supprimé les entrées et sorties dont tu ne te sers pas ? Les nodes COFFEE ne fonctionnent pas quand ils ont des entrées ou des sorties qui ne sont reliées à rien.

Majoul
09/01/2005, 17h07
Désolé je n’ai pas fait attention le SmoothingTag n’existe pas c’est plutôt PhongTag

Pour ton texte dialogue, vérifie si les expressions sont activés l'icône avec la tasse de café on sait jamais parfois c'est des trucs tout con

Sinon tu crée un nœud avec une entrée booléen ( VAL ) et une sortie booléen ( VAL_s ) et tu les relies tout les deux a ton DU case à cocher, cela te perme de transformer ta case à cocher en un bouton OK




main&#40;&#41;
&#123;

if &#40;VAL==1&#41;
&#123;
TextDialog&#40;"Hello World!", DLG_OKCANCEL&#41; ;
VAL_s = 0 ;
&#125;
&#125;

Guedinouff
10/01/2005, 23h49
Majoul, Le problème venait effectivement d'un nom de tag invalide. Je pense que je changerais l'exemple du SDK dans sa version traduite pour le transformer en quelque chose qui fonctionne pour l'exemple de BaseList2D. En fait j'hésite entre rester totalement fidèle aux textes d'origines (:prie:) et faire quelque chose qui marche pour les utilisateurs de c4d 8.5...



Guedinouff, est ce que tu as supprimé les entrées et sorties dont tu ne te sers pas ? Les nodes COFFEE ne fonctionnent pas quand ils ont des entrées ou des sorties qui ne sont reliées à rien.


Il devait y avoir un peu de çà...En fait le nœud COFFEE ne fonctionne pas que si il y a une ou plusieurs sorties qui ne sont pas connectées. On peut ne pas connecter des entrées, çà ne pose aucun problème; Ca doit venir du fait qu'Xpresso leur assigne une valeur par défaut si elles ne sont raccordées à rien.



Pour ton texte dialogue, vérifie si les expressions sont activés l'icône avec la tasse de café on sait jamais parfois c'est des trucs tout con


Heureusement le problème ne venais pas de là, sinon je n'aurais plus oser revenir sur le forum pendant plusieurs jours.

En fait il venait du problème de la sortie non connectée et de l'oubli du double égal pour la condition.

Petites remarques au passage pour ceux qui suivent le problème de l'affichage d'une boîte de dialogue, la solution de Majoul fonctionne parfaitement, on peut juste rajouter que la ligne qui désactive la case n'est pas obligatoire. La boîte de dialogue ne s'active que lorsque l'on clique sur la case.
Je pense que je vais d'ailleurs utiliser un système avec une case à cocher pour mon expression de calcul du temps. Merci doublement donc Majoul :)

padawa
11/01/2005, 01h05
Y a aussi peut etre le fait que dans ton code pour le "if" tu met un seul " = " !
Or pour les comparaisons c'est " == ".
La tu assignes la valeur TRUE a Input3.
Je sais pas si c'est une faute de frappe, mais ca merite d'etre souligné :wink:

EDIT= Oups, j'avais lu ta reponse trop vite, désolé :oops:

Jomool
20/08/2005, 12h01
Hélas le lien que donne Renaud pour accéder à la traduction du SDK ne fonctionne plus.
C'est cruel je trouve.

Guedinouff
27/08/2005, 23h58
J'ai il y a quelque temps envoyé une mise à jour de la traduction à Renaud en insérant la traduction directement dans le nouveau sdk html (car le travail de création des liens dans la version pdf devenait très long). Il était à ce moment là en plein dans la création de la v3 et m'avait dis qu'il s'occuperait de la remettre en ligne quand il aurait un peu le temps, je ne sais pas où çà en est actuellement.
Je suis actuellement entrain de me pencher sur les sections concernant l'interface et quand j'aurais traduit correctement quelques pages, je la mettrais directement en ligne avec un lien sur ce sujet et en l'hébergeant sur deltazone sauf si Renaud arrive à trouver un peu de temps pour s'en occuper.

Renaud
28/08/2005, 18h48
C'est bon, je suis maintenant dispo pour mettre en ligne la dernière version. Est-ce que tu as avancé par rapport à ton dernier envoi (auquel cas envoie moi la dernière mouture) ?

Guedinouff
28/08/2005, 21h47
:oops: :oops: :oops:
Non Renaud je n'ai pas encore beaucoup avancé, je me penche sur l'interface utilisateur en ce moment et c'est un peu compliqué à traduire vu que je ne comprends pas tout. J'essaie de m'y remettre un peu plus sérieusement en septembre et dès que j'ai un peu avancé je t'enverrai le tout. L'avantage d'avoir repris la traduction directement dans la version html du sdk c'est que l'on pourra mettre en ligne dès qu'il y a quelques changements et ne pas attendre une mise à jour majeure.
Allez au travail :wip: :wip: