Salut tous, j'ai un problème xpresso, oui moi, saloperie
Bon j'ai deux nuls avec un nombre egal d'objet dans chaque.
J'aimerais que les objets du null 2 soit automatiquement placé et orienté comme ceux dans le premier null.
Quand j'utilise deux noeud Hiérarchie ça foire.
Visitez www.base80.com et www.youtube.com/base80
J'ai trouvé ça
http://www.frenchcinema4d.fr/forum/i...p?topic=6718.0
excellent mais ca ne me donne pas la rotation
paspas? majoul, XS_yann ?
Visitez www.base80.com et www.youtube.com/base80
Malheureusement ca me donne pas la rotationCode:main() { if((!g_lum)&&(!g_sphere)) return ; var i , lum = g_lum->GetDown() , sphere = g_sphere->GetDown(); for(i=0;i<nb;i++) { var pos_sph = sphere->GetMg()->GetV0() ; var mat = lum->GetMg() ; mat->SetV0(pos_sph); lum->SetMg(mat); sphere=sphere->GetNext() ; lum = lum->GetNext() ; if((!lum)||(!sphere)) return; } }
Visitez www.base80.com et www.youtube.com/base80
normal il ne prend en compte que vo donc la position et pas les direction X Y Z
tente CA (
la normalement toute la matrice est prise en compte position et orientationCode:main() { if((!g_lum)&&(!g_sphere)) return ; var i , lum = g_lum->GetDown() , sphere = g_sphere->GetDown(); for(i=0;i<nb;i++) { var pos_sph = new(Matrix); pos_sph = sphere->GetMg() ; lum->SetMg(pos_sph); sphere=sphere->GetNext() ; lum = lum->GetNext() ; if((!lum)||(!sphere)) return; } }
paspas
edit je vient de le tester ca marche
Wow tout bon merci BEAUCOUP :love:
C'est très pratique ce machin.
Ca me permet de faire des perforations booléennes qui suivent des objet qui doivent être visible dans les trous.
En français: je peux placer librement des fenêtres dans un bâtiment et les ouvertures (booléennes) suivent le mouvement et l'orientation de ces fenêtres.
Pratique rapide....
En plus dans ,ma mise en place tu peux librement multiplier les instances fenêtre et le nombre de trous suit, magique.
merci paspas
Visitez www.base80.com et www.youtube.com/base80
Excellent, merci pour ce noeud COFFEE (on a jamais assez de coffee :wink: ), petit détail intéressant pour ceux qui nont pas encore essayé, la contrainte est en postition relative, donc si on bouge les deux nulls l'un par rapport à l'autre on obtient un décalage de l'ensemble des objets qui restent cependant fixés à leurs positions relatives. Très utile et ouvrant des perspectives d'animation intéressantes sur des nuées d'objets sans passer par mograph...
Grand merci à la triplette de l'Xpresso+COFFEE!
Th. still alive
voila le résultat
c'est excellent le truc. les booléennes sont a 100% automatique, le nombre de trous, leur placement et orientation sont géré par l'xpresso
Visitez www.base80.com et www.youtube.com/base80
Zut, j'arrive trop tard :coup:
En tout cas le résultat est cool :poucehaut:
Presque aussi bien voir mieux (la fenêtre qui pivote) que Vectorworks dis-donc :efface:
Tu vas faire un malheur avec ce setup!!
je l'ai vendu :bounce:
(grâce a paspas et majoul) <-- je vous dois une bière
C'est compliqué a expliquer tellement c'est simple ce bazar
Visitez www.base80.com et www.youtube.com/base80
c' est noter :mrgreen:je vous dois une bière
surtout majoul je n' ai jamais fait que le modifier , mais si il ne boit pas sa bierre :mrgreen: suis preneur lolgrâce a paspas et majoul
en passant il est possibe le le fair en 100 % pour 100 % expresso , je te le laisse cogiter quelque heure quand meme lol
paspas
EDITha bon ?? :?: poutant on est en matrice global etrange cala contrainte est en postition relative, donc si on bouge les deux nulls l'un par rapport à l'autre on obtient un décalage de l'ensemble des objets qui restent cependant fixés à leurs positions relatives
Arf, effectivement ça doit surprendre (je ne connais pas assez le COFFEE pour avoir noté ça) ceci dit je trouve que c'est bien justement, ça permet un controle plus intéressant des effets.
Th. still alive
100% xpresso? il me semble que ce soit possible. Je suis même sur de l'avoir fait un jour.
Mais j'ai totalement oublié comment et j'ai regardé sur le site de base80.com et même là il n'y avais rien. le con
pour ce qui est du global, ça marche comme prévus
si je bouge les canetons le canard bouge pas d'un poil mais quand je bouge le canard les canetons suivent.
Visitez www.base80.com et www.youtube.com/base80
je ne dis pas que c' est pas bien je me demande comment c'est possible :arg:ceci dit je trouve que c'est bien justement, ça permet un controle plus intéressant des effets.
pour le 100 % pour 100% expresso j ai utiliser une noeud " liste de lien " mais ce reste plus pratique avec ce système parent -> enfant
paspas
liste de lien ne se met pas a jour.
mes nulls sont très dynamique, le nombre d'objet change tout le temps.
Visitez www.base80.com et www.youtube.com/base80
C'est sans aucun doute possible parce que je suis un abruti :oops: ... Oubliez ce que j'ai dit au-dessus sur l'usage du script initial... j'ai tapé 'GetMl()' et 'SetMl' au lieu de 'GetMg()' et 'SetMg' (j'aime bien retaper mes scripts pour comprendre ce que je fais, mais comme je ne connais pas tout mon 'vocabulaire' COFFEE j'ai machinalement écrit celui que j'utilise le plus)... Au temps pour moi donc, ceci dit comme ça j'ai nettement mieux compris ce script :nono:
Finalement, cette simple manip' permet d'avoir deux applications du script pour le prix d'un... merci les gars!
Th. still alive
:mrgreen: je comprend mieux pq c' était possible .'GetMg()' et 'SetMg'
oui oui c 'est ce que je voulais dire parmes nulls sont très dynamique
paspasest plus pratique avec ce système parent -> enfant
Dit paspas pense tu que c'est possible de faire un noeud coffee qui me crée un null?
avec les ports now, name, place.
Now donne un bool (one shot) au moment ou je veux un null
name.. le nom
et place , si laissé vide il met le nul en root, sinon il le met en enfant d'un endroit donné en ref
Visitez www.base80.com et www.youtube.com/base80
oui
si tu te rapelle y a quelque mois on en avait discuter et j' avait réaliser un noeud qui crée des objet parametrique
et le one shot se ferra sur le non , je m' explique bool = 1 le nul est crée un null de noms name , si tu change le noms avec le meme noeud il te créera un autre null
ben oui je n ai pas encore trouver le moyens de tester les objet qui existe dans le document autrement que pas le noms ,
tu n' avais envoyer pas mail un noeud de majoule pour la création d' instance mais impossible de remetre la main dessus :oops:
pour le fait qu' il soit enfant ou pas possible aussi
pasaps
t'as pas envie de repasser sur le chat un de ces soirs?
cet aprem je suis assez oqp.
Visitez www.base80.com et www.youtube.com/base80
pas de souci , faut juste que je replace le logicielle irc chez moi , je le ferrai ce soir comme ca serra fait
paspas
Ce serait tellement plus simple avec une fonction Coffee :mrgreen:Envoyé par base80
Et hop un null object nommé toto créer en root. :roll:Code:CreateNull(now, name, place) { var doc = GetActiveDocument(); if(now == TRUE) { var nullObject = AllocObject(Onull); nullObject->SetName(name); doc->InsertObject(nullObject, place, NULL); } } main(doc,op) { CreateNull(1, "toto", NULL); }
je dis pas :mrgreen:
je serrait pas tester mnt , mais y tourne pas en boucle ce coffee ?
il vas pas te crée un " toto " a chaque calcul tant que now = true ?
paspas
Si bien sur mais après il suffit de faire que now soit true seulement quand on le veux, exemple :
Je veux créer un null à chaque fois que le nombre d'enfant de l'objet qui possède le tag de mon expression change :
Après, je ne sais pas, dans le cas de base, quand est-ce qu'il faut créer un null, donc je ne sais pas si ça fonctionnerais. :roll:Code:CreateNull(now, name, place) { var doc = GetActiveDocument(); if(now == TRUE) { var nullObject = AllocObject(Onull); nullObject->SetName(name); doc->InsertObject(nullObject, place, NULL); } } var j; main(doc,op) { var test = FALSE; var children; var i = 0; for (children = op->GetDown(); children; children=children->GetNext()) { i++; } if(j && j!=i) test = TRUE; j=i; CreateNull(test, "toto", NULL); EventAdd(MSG_UPDATE); }
Question un peu hors sujet mais c'est juste pour information, le langage utilisé c'est de la Programmation Objet ?
Le coffee est un langage de programmation orienté objet (POO) mais ici il est juste question d'une boucle for et d'une fonction. Bien sûr ici il y a des objets mais ce n'est pas moi qui les ai définis.
Par exemple, "doc" est un objet mais tu ne le vois pas car il est déclarer à l'aide du mot clé "var" en C++ il serait déclaré "BaseDocument doc = GetActiveDocument".
Le C++ est plus typé.
Je ne sais pas trop où tu veux en venir mais la POO apparaît plus au moment où tu créés des classes pour les utiliser en tant qu'objets. La POO est aussi un peu un style de programmation, c'est respecter certaines règles, utiliser des possibilités du langage ( héritage, encapsulage...).
Une classe héritée en coffee : http://www.frenchcinema4d.fr/forum/i...4519#msg384519
Voilà :wink:
En fait c'est en rapport avec mes études. J'ai fait que du Java pour le moment mais en second semestre je vais attaquer la POO. Et je me dis qu'au final je pourrais tenter (qaund j'aurais compris comment ca fonctionne) de faire quelques scripts pour C4D.
Ca a l'air bien tordu mais en s'y mettant bien ca doit être un peu plus clair qu'un tas de lignes de codes bizares ^^.
Java EST un langage orienté pour faire de la programmation objet (cela dit, ça n'oblige personne ^^).
Le C++ aussi, et C4D est programmé en C++, et COFFEE ressemble beaucoup beaucoup au C++.
par exemple dans chaque script coffee doc est de la classe BaseObject et est le document actif et op représente l'objet sur lequel est placé le script et est donc de la classe de cet objet (CubeObject si c'est un cube ou qqc dans ce goût là).
Cela dit je vois que xs-yann à du faire plus de recherche que moi dans le coffee.
Et si tu veux t'y mettre, Tengaal avait fait un petit cours de COFFEE à la sauce v6. Si tu touches déjà un peu au code, tu devrais pouvoir te passer des 3 premiers au moins
Mmh, je dirais que doc est de la classe BaseDocument et op est plutôt de la classe BaseObject (bien que CubeObject... héritent de BaseObject), c'est une des facilitées du coffee, c'est moins typé.Envoyé par Floby
Cela dit, si tu fais du Java, tu n'aura pas de mal à te mettre au coffee ou au C++ (avec le forum ).
Tu fais quoi comme études?Envoyé par Walien