nikjust Posté(e) le 29 septembre 2009 Posté(e) le 29 septembre 2009 Bonsoir,Quelqu'un pourrait il venir à mon aide : j'ai une polyligne et un point A(x,y), je veux trouver un point A'(x',y') de telle sorte que A' soit le projété orthogonale de A sur la polyligne.Merci bcp de venir à mon aide.
bonuscad Posté(e) le 29 septembre 2009 Posté(e) le 29 septembre 2009 Bonsoir, Il faut que tu regarde la fonction vlax-curve-getClosestPointTo dans l'aide, elle fait exactement ce que tu désires. Un p'tit exemple en dynamique (defun c:test ( / js dxf_obj PatObj EndDist StartPoint Endpoint tmp) (princ "\nSélectionnez un objet curviligne.") (while (null (setq js (ssget "_+.:E:S" (list '(0 . "*LINE,ARC,CIRCLE,ELLIPSE") (cons 67 (if (eq (getvar "CVPORT") 1) 1 0)) (cons 410 (if (eq (getvar "CVPORT") 1) (getvar "CTAB") "Model")) '(-4 . " '(-4 . " '(0 . "MLINE") '(-4 . "NOT>") '(-4 . " '(-4 . "&") '(70 . 112) '(-4 . "NOT>") '(-4 . "AND>") ) ) ) ) (princ "\nCe n'est pas un objet curviligne valable pour cette fonction!") ) (setq dxf_obj (entget (ssname js 0))) (setq PathObj (vlax-ename->vla-object (ssname js 0))) (setq EndDist (vlax-curve-getDistAtParam PathObj (vlax-curve-getEndParam PathObj)) StartPoint nil EndPoint nil) (princ "\nDonnez l'origine du point") (while (= 5 (car (setq tmp (grread t 5 1)))) (cond ((= 5 (car tmp)) (if StartPoint (grdraw (trans StartPoint 0 1) tmp0 -1)) (setq StartPoint (vlax-curve-getClosestPointTo PathObj (trans (cadr tmp) 1 0)) tmp0 (cadr tmp)) (grdraw (trans StartPoint 0 1) (cadr tmp) -1) (print (trans StartPoint 0 1)) ) (T (princ "\nArrêt anormal de la commande ")) ) ) (vlax-release-object PathObj) (redraw) (prin1) ) Choisissez un travail que vous aimez et vous n'aurez pas à travailler un seul jour de votre vie. - Confucius
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