Problème de pente
-
@boris vaisman said:
En fait, je n'arrive pas à bien saisir si la rotation se fait par rapport aux axes du projet ou aux axes des composants. Je pense que c'est par rapport aux axes du projet.
En fait, on devrait pouvoir faire les deux selon les besoins et donc avoir six axes de rotation possibles (peut-être une suggestion à faire aux développeurs de Google)Chaque élément tourne autour de son propre axe.
Si on avait à définir d'autres axes, on ne s'arrêterai plus si on a des composants dans des composants dans des composants... Sans compter que si l'axe de rotation n'est pas interne à l'objet, si on doit déplacer et tourner l'objet (autour d'un autre axe) il faudrait dire si on tourne puis on bouge ou si on bouge puis on tourne, ça ne fait pas la même chose
Dans ton cas, avec l'axe de l'arêtier au bout, les pistes d'adebeo vers la trigonométrie et Pythagore devraient te permettre de calculer les angles de rotation et la longueur de l'élément. -
Ah, ben voila une réponse qui m'intéresse mais me met également dans l'embarras...
Donc, si je comprends bien, tu me dis que dans les composants dynamiques, ROTX, ROTY et ROTZ correspondent aux rotations par rapport aux axes des composants ?
Moi, je croyais naïvement que c'était les rotations par rapport aux axes du projet.
Quelqu'un peut confirmer ou infirmer, s'il vous plait ?
Désolé de vous embêter avec des questions triviales mais je suis un bleu dans le domaine...
-
@boris vaisman said:
Donc, si je comprends bien, tu me dis que dans les composants dynamiques, ROTX, ROTY et ROTZ correspondent aux rotations par rapport aux axes des composants ?
Moi, je croyais naïvement que c'était les rotations par rapport aux axes du projet.
Quelqu'un peut confirmer ou infirmer, s'il vous plait ?Petit test simple :
Test.skp Peu importe où tu place le composant, quand tu modifies les angles de rotation, il tourne autour de la pointe de la flèche.Regarde aussi les trois fichiers que j'ai posté ici, tu verra que chaque fois que la rotation est utilisée, c'est autour de l'axe propre du composant.
-
A DC ROTates relative to its axes.
It's easy to test: make a DC that rotates about its Z-axis, with onClick.
Lay it on its side and it still rotates about its Z-axis, never that of the model.
Un DC tourne par rapport à ses axes.
C'est facile à tester: faites un DC qui tourne autour de son axe Z, avec onClick.
Déposez-le sur le côté et il tourne encore sur son axe Z, jamais celle du modèle. -
Alors, vous avez surement remarqué que dans les exemples que vous m'avez fournis ainsi que dans le mien posté ici, on ne peut pas tourner à la fois autour de deux axes simultanément (quand on change une valeur sur un axe, il remet les deux autres à 0) , la seule solution que j'ai trouvée pour contrer ça est de créer trois variables et de dire que ROTX=VARX, ROTY=VARY et ROTZ=VARZ.
Dans mon exemple ici, comment expliquez vous que suite à mes deux rotations autour de Y et Z, le chevron ait aussi fait une rotation autour de son propre axe X ?
C'est ce qui me fait dire que c'est par rapport aux axes du projet et non par rapport à ses propres axes.
Je suis dubitatif (et ce n'est pas un gros mot...)
-
@boris vaisman said:
Alors, vous avez surement remarqué que dans les exemples que vous m'avez fournis ainsi que dans le mien posté ici, on ne peut pas tourner à la fois autour de deux axes simultanément (quand on change une valeur sur un axe, il remet les deux autres à 0)
Oui, ça c'est "normal", du moins connu... On ne peut pas attaquer directement une rotation sans qu'elle se remette à 0. Si on veut le faire dans la fenêtre des "Attributs du composant" il faut mettre un "=" avant pour conserver la valeur.@unknownuser said:
Dans mon exemple ici, comment expliquez vous que suite à mes deux rotations autour de Y et Z, le chevron ait aussi fait une rotation autour de son propre axe X ?
C'est ce qui me fait dire que c'est par rapport aux axes du projet et non par rapport à ses propres axes.
Ce sont les joies de la rotation sur trois axes. Si tu fait une rotation de 180° sur les Y et de 180° sur les Z, c'est comme faire une rotation de 180° sur les X ! Étonnant, non !
C'est donc normal que quand on tourne sur deux axes on trouve une composante qui pourrait être effectuée sur le troisième axe.
Pour ton cas, pour ton arêtier, tu ne travailleras essentiellement qu'avec deux angles (azimut et relèvement) parce que la pièce reste sur son champ, elle ne déverse pas. -
Bon, ok pour le signe égal je saurais pour la prochaine fois. Merci beaucoup...
Par contre, si les trois axes sont indépendants et sont bien les axes du composant, pourquoi une rotation sur deux des trois axes me donne aussi une rotation sur le troisième ???
(dans l'exemple précis que tu donnes, ROTY=180 et ROTZ=180 équivaut bien à ROTX=180, ce sont deux façons différentes de positionner au même endroit le composant mais ça ne signifie pas que tourner autour de deux axes fait aussi tourner autour du troisième)Excusez moi encore d'essayer de bien comprendre mais je suis vraiment largué, là
-
En fait, quand on travaille sur trois axes, quand on fait des rotations, l'ordre a une importance. Dans les composants dynamiques, Sketchup a choisi de les faire dans l'ordre autour des axes X, Y puis Z. Dans ton exemple, la logique est respectée et le résultat est bien une rotation sur l'axe Y (l'élément se lève) puis sur l'axe Z (il bascule sur le coté). Je pense d'ailleurs que ça doit âtre pour ça que si on attaque directement les angles de rotation par une valeur, il remet les autres à 0.
Pour revenir à ton cas, on est bien dans une logique azimut et élévation, mais l'ordre pose en effet un problème...
J'explore ça, et je reviens... -
Si l'axe X était l'axe vertical, tout marcherait bien... mais c'est pas comme ça
Donc, une solution possible, c'est de mettre ce composant dans un autre qui permet de tourner le monde localement pour avoir les X verticaux. Du coup, on manipule le sous-composant avec les rotations autour des axes X et Y, X pour régler l'azimut et Y pour l'élévation. Pour la longueur ça se règle avec le LenZ. Il ne reste plus qu'à calculer ces valeurs à partir des données que tu as.
-
Effectivement, ta solution est valide, je n'aurais franchement pas trouvé...
Par contre, je crois sincèrement que Sketchup est buggé sur les composants dynamiques. Cela fait un petit mois que je suis dessus et j'ai déjà trouvé je ne sais combien de parades pour arriver à mes fins.
Dans le cas qui nous intéresse et dans l'hypothèse où on fait les rotations dans l'ordre X, Y et Z, si je fais une rotation sur Y et une autre sur Z, je persiste à penser qu'il ne devrait pas y avoir de rotation sur X. Donc on peut en conclure qu'il faut s'arranger pour faire des rotations simultanées uniquement sur X et Y...
Franchement c'est lourd...
-
En reprenant ta méthode et en l'adaptant un peu, j'ai réussi à faire enfin ce que je voulais...
D'abord, mon composant chevron
Je fais un trait dessus, je crée un autre composant avec le trait et le composant chevron -> Composant 2 (le trait sert uniquement à faire en sorte que le chevron devienne un sous composant)
Je masque le trait .
Je fais d'abord ma rotation sur Y dans le sous composant puis ma rotation sur Z dans le composant... Et miracle !!! (en PJ)
Advertisement