Aller au contenu

Distance entre un point et une polyligne


Messages recommandés

Posté(e)

Bonjour,

 

Je voudrais développer une macro VBA qui permet de calculer la distance entre un point et une polyligne. L'utilisateur va sélectionner n points et 1 polyligne. La macro devra, pour chaque point, calculer la distance entre le point et la polyligne.

 

Autrement dit, la macro devra faire comme quand on fait _dist, on sélection le point, _per, on sélection la polyligne.

 

Je sais programmer en VBA, je sais demander à l'utilisateur de sélectionner des points et une polyligne. Ce que je ne sais pas c'est calculer la distance. Où même juste trouver le points d'intersection entre la droite passant par le point et perpendiculaire à la polyligne.

 

Si vous avez la moindre piste, je suis preneur.

 

Cordialement.

 

Un développeur perdu.

 

Posté(e)

Bonjour,

 

si tu sais en vba tracer ta droite qui va du point et qui arrive perpendiculaire à la polyligne souhaitée (qu 'elle la coupe ou non), la méthode "intersectwith" doit te donner la coordonnée du point d 'intersection de ta droite et de ta polyligne.

Et donc ces coordonnées (intersection et point) appliquées comme "startpoint" et "endpoint" de la droite permettent ensuite de renvoyer la longueur de cette droite et donc la distance.

 

je ne sais pas si je suis bien clair ou si j 'ai bien compris?.

Le problème est peut-être de tracer cette droite ?

Posté(e)

Salut Nazemrap,

 

Tout d'abord, merci de ta réponse.

Ensuite, j'ai tout compris mais le problème est de trouver la droite en question.

 

Je pense qu'il n'y a pas de solution. La seule solution que je vois est de reposer le problème. si l'utilisateur donne une ligne ou un arc, je sais faire (c'est un pur problème de math pour connaître l'équation d'une droite perpendiculaire à une autre). Si c'est une polyligne, je n’ai aucune info qui m'aide.

 

Si quelqu’un a d'autres infos, c'est toujours bon a prendre.

 

Imanfo.

 

Posté(e)

Je ne pratique pas le VBA,

 

Mais un faisant une recherche dans l'aide sur une fonction avec "getClosestPointTo" ou quelque chose de proche.

 

Car en Vlisp cette fonction existe, exemple colle ceci en ligne de commande:

 

(trans (vlax-curve-getClosestPointTo (vlax-ename->vla-object (car (entsel))) (trans (getpoint "\nDonner un point: ") 1 0)) 0 1)

 

Cela devrait te retourner le point le plus proche (dans les SCU courant) sur la polyligne par rapport au point fourni.

 

NB: Il sera peut être nécessaire d'utiliser (vl-load-com) auparavant.

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é