zebulon_ Posté(e) le 25 juin 2008 Posté(e) le 25 juin 2008 Dans le même esprit que ce sujet, je me suis demandé comment on pouvait savoir si un point est à droite ou à gauche d'un objet. Droite et gauche s'entendant par rapport au sens de progression de l'objet. Un peu comme dans la commande DECALER, comment autocad fait pour savoir s'il faut décaler de pi/2 ou de 3pi/2 ? J'ai regardé du côté des fonctions vlax-curve et ça donne ceci (defun PTaDroiteObj (obj pt / PTN PM fder PT1DERIV) (setq PTN (vlax-curve-GetClosestPointTo obj PT)) (setq PM (vlax-curve-GetParamAtPoint obj PTN)) (setq fder (vlax-curve-getfirstderiv obj PM)) (setq PT1DERIV (mapcar '+ ptn fder)) (< (sin (- (angle PTN PT) (angle PTN PT1DERIV))) -1e-14) ) (defun c:test () (vl-load-com) (setq ENAM (car (entsel))) (setq obj (vlax-ename->vla-object ENAM)) (setq PTCOT (trans (getpoint "\nCôté : ") 1 0)) (if (PTaDroiteObj obj PTCOT) (alert "à droite") (alert "à gauche") ) (princ) ) où on sélectionne un objet du type "curve" (droite, polyligne, arc, spline ...) et on donne un point. Puis le lisp nous dit si le point est à droite ou à gauche de l'objet.La fonction vlax-curve-getFirstDeriv m'a particulièrement intéressée, puisqu'elle donne la pente instantanée d'une courbe à un point via un paramètre (enfin, c'est comme ça que je l'ai compris). Par contre, j'ai regardé aussi la fonction vlax-curve-getSecondDeriv, et là je n'ai pas trop compris ce que c'est. Je soumets tout cela à votre critique et vos remarques amicalementVincent [Edité le 12/4/2011 par zebulon_] C'est au pied du mur que l'on reconnaît le maçon ! (Anonyme) C’est en restant au pied du mur qu’on ne voit que le mur (Anonyme aussi)
Messages recommandés
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 compteSe connecter
Vous avez déjà un compte ? Connectez-vous ici.
Connectez-vous maintenant