Aller au contenu

Projection orthogonale sur une polyligne


Messages recommandés

Posté(e)

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.

Posté(e)

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

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é