Aller au contenu

Une nouvelle petite question sur le SCU


coyotte

Messages recommandés

Ouch, tu peux reformuler stp ? 1er point à savoir, c'est qu'AutoCAD utilise un repère direct (règle de la main droite) : http://fr.wikipedia.org/wiki/R%C3%A8gle_de_la_main_droite

 

L'axe X correspond au pouce de ta main droite, l'index à l'axe Y et le Z correspond à ton majeur.

Maxence DELANNOY

Développement de compléments aux logiciels Autodesk : AutoCAD, Revit, Inventor, Vault, Navisworks... et autres logiciels de CAO

WIIP - http://wiip.fr

Lien vers le commentaire
Partager sur d’autres sites

Bonjour Maxence,

 

je me doutais bien que cela n'allait pas être clair :(rires forts):

 

Donc je m'explique :

 

En SCU général, l'axe des X va de la gauche vers la droite. L'axe des Y va du bas vers le haut.

 

Si je modifie mon SCU je peux parfaitement faire en sorte que L'axe des X aille toujours de la gauche vers la droite, mais que mon axe des Y aille du haut vers le bas. Commet savoir que la direction des Y a changée ?

 

Merci.

http://www.carpetdiem.net

Plugins pour AutoCAD

Lien vers le commentaire
Partager sur d’autres sites

Salut

 

Un SCU correspond à un repère orthonormé soit une origine et 3 axes déterminés par 3 vecteurs de norme 1.0 et perpendiculaires entre eux. Comme le dit dit Maxence le repère est direct, ce qui définit le sens des vecteurs entre eux.

 

L'axe Y est donc toujours perpendiculaire à l'axe X et le sens de rotation entre les axes X et Y est le sens trigonométrique (antihoraire), mais, en 3 dimensions, on ne peut parler de sens de rotation que s'il existe un vecteur de référence. Pour le sens de rotation entre X et Y, ce vecteur est le vecteur directeur de l'axe Z qui est toujours.

En bref, on ne peut déterminer un axe Y en fonction d'un axe Z qu'en faisant intervenir l'axe Z, plus généralement, dans un repère orthonormé, on ne peut définir un axe qu'à partir des deux autres*.

 

Le produit vectoriel (cross product) de deux vecteurs retourne le vecteur perpendiculaire à ces deux vecteurs. Ce n'est pas une opération commutative le sens du vecteur retourné dépend donc de l'ordre des arguments :

 

Vector3d.XAxis.CrossProduct(Vector3d.YAxis) retourne Vector3d.ZAxis

Vector3d.YAxis.CrossProduct(Vector3d.ZAxis) retourne Vector3d.XAxis

Vector3d.ZAxis.CrossProduct(Vector3d.XAxis) retourne Vector3d.YAxis

 

Si tu ne travailles qu'en 3d l'axe Z sera toujours Vector3d.ZAxis.

 

PS : un sujet sur l'utilisation des vecteurs en LISP. La théorie reste vraie quelque soit le langage et la classe Geometry.Vector3d fournit des méthodes prédéfinies qu'il faut implémenter en LISP.

 

* Dans certains cas, le Système de Coordonnées Object (OCS ou ECS) de certaines entités 2d (bloc, texte, polyligne, etc.) est déterminé uniquement à partir du vecteur normal (direction d'extrusion) de l'entité. Pour ce faire AutoCAD utilise un "Algorithme d'axe arbitraire". Le vecteur normal de l'entité definit le vecteur Z du SCO, son origine est toujours Point3d.Origin (0.0, 0.0, 0.0). Rest à définir les vecteurs X et Y. Si le vecteur normal est très proche de l'axe Z du SCC (précisément si ses coordonnées X et Y sont toutes les deux inférieures à 1/64), l'axe X est définit par le produit vectoriel de Vector3d.YAxis et du vecteur normal de l'entité, sinon l'axe X est le résultat du produit vectoriel de Vector3d.ZAxis et du vecteur normal de l'entité. Le vecteur Y est ensuite calculé avec le produit vectoriel du vecteur normal de l'entité par le vecteur X précédemment calculé.

Gilles Chanteau - gileCAD - GitHub
Développements sur mesure pour AutoCAD

Lien vers le commentaire
Partager sur d’autres sites

Si tu fais le produit vectoriel de ton vecteur X par ton vecteur Y, la composante en Z du vecteur résultat est positive si Y est vers le "haut", et négatif si le Y est vers le "bas".

Maxence DELANNOY

Développement de compléments aux logiciels Autodesk : AutoCAD, Revit, Inventor, Vault, Navisworks... et autres logiciels de CAO

WIIP - http://wiip.fr

Lien vers le commentaire
Partager sur d’autres sites

Invité Patrick

Ouch, tu peux reformuler stp ? 1er point à savoir, c'est qu'AutoCAD utilise un repère direct (règle de la main droite) : http://fr.wikipedia...._la_main_droite

 

L'axe X correspond au pouce de ta main droite, l'index à l'axe Y et le Z correspond à ton majeur.

 

Tout à fait et pour tester cela il suffit de ramener sa main droite le plus possible derrière son dos (sans toutefois se démonter l'épaule), on s'aperçoit que l'axe X reste comme il est (il va vers votre droite), et que l'axe Y qui pointait vers "le haut" pointe maintenant vers "le bas".

J'adore ces manipulations du type "la géométrie pour les nuls"; la géométrie est une belle chose et qui plus est qui permet de maintenir son corps souple.

 

 

 

Lien vers le commentaire
Partager sur d’autres sites

Merci de vos réponses.

 

J'ai fait ceci.

 

ed.CurrentUserCoordinateSystem.CoordinateSystem3d.Xaxis.CrossProduct(ed.CurrentUserCoordinateSystem.CoordinateSystem3d.Yaxis).Z

 

Est que cela vous parait correct. J'ai bien une valeur posite dans un cas et négative dans l'autre.

 

Je ne sais pas très bien à quoi tu veux utiliser cette expression, mais elle retourne la coordonnée Z du vecteur résultat du produit vectoriel des vecteurs X et Y du SCU, plus simplement dit la coordonnée Z du Vecteur Z du SCU.

 

Tu auras le même résultat plus directement avec :

ed.CurrentUserCoordinateSystem.CoordinateSystem3d.Zaxis.Z

Gilles Chanteau - gileCAD - GitHub
Développements sur mesure pour AutoCAD

Lien vers le commentaire
Partager sur d’autres sites

Créer un compte ou se connecter pour commenter

Vous devez être membre afin de pouvoir déposer un commentaire

Créer un compte

Créez un compte sur notre communauté. C’est facile !

Créer un nouveau compte

Se connecter

Vous avez déjà un compte ? Connectez-vous ici.

Connectez-vous maintenant
×
×
  • Créer...

Information importante

Nous avons placé des cookies sur votre appareil pour aider à améliorer ce site. Vous pouvez choisir d’ajuster vos paramètres de cookie, sinon nous supposerons que vous êtes d’accord pour continuer. Politique de confidentialité