Aller au contenu

Projeter un point sur une ligne


jujugeometre

Messages recommandés

Bonsoir,

 

Je souhaite aligner des blocs sur des lignes proches, du coup je ne vois pas trop comment commencer à chercher à partir d'un point les lignes les plus proches jusqu'à une valeur seuil à fixer? Si quelqu'un a une orientation (grosse allusion au sujet...) pour démarrer ce programme.

 

Après la lectures de plusieurs posts, je précise que je ne cherche pas un LISP tout fait ou que je ne demande à personne de le faire pour moi, je ne vois juste pas dans quel sens chercher, hormis un truc bourrin du genre répertorier toutes les lignes du dessin et/ou faire un tri sur les coordonnées.

 

Pour info, je cherche en 2D et je suis sur 2016.

Geometre - Autocad 2016 - Covadis v17.0

Lien vers le commentaire
Partager sur d’autres sites

Tu peux explorer les fonctions de la famille des "curve"

(vlax-curve-getClosestPointTo visualobj point))

Si tu connais le VisualLisp....

L'objet visualobj peut être obtenu ainsi :

(setq visualobj (vlax-ename->vla-object (car(entsel))))

Le point est entré sous la forme classique autolisp.

Bureau d'études dessin.

Spécialiste Escaliers

Développement - Formation

 

./__\.
(.°=°.)
Lien vers le commentaire
Partager sur d’autres sites

Coucou,

 

J'ai également pensé à la fonction (vlax-curve-getclosestpointto), cependant si je comprend bien la demande de jujugeometre et l'application de la fonction Visual...cela ne pourra pas correspondre.

Pour moi la fonction Visual récupère la projection orthogonal d'un point quelconque sur un objet linéaire spécifique...En d'autre termes, la ligne en question à déjà été sélectionnée par le programme, or le soucis ici c'est justement de "trouver" la ligne en question...

 

Dans tous les cas cette fonction te sera utile pour trouver la distance minimale (via les fonction (min) et (distance)) mais si tu cherches également à déterminer la ligne la plus proche, je regarderais parmi les filtres de la fonction (ssget) associée aux code -4. Pour cela, tu peux aller voir le site/cours de (gile) qui traite de ce sujet (Chapitre 16.4 Filtre de sélection, page 39 sur le PDF "Introduction à AutoLISP") mais également sur le site de Didier (https://www.da-code.fr/ssget/) qui en parle un peu aussi.

 

Je n'ai pas testé personnellement, mais je suis sûre que tu devrais pouvoir limiter ton jeu de sélection en limitant les coordonnées du code DXF 10 via des coordonnées relatives à la position de ton bloc. Cela devrait réduire le nombre d'entité à traiter pour la comparaison des point obtenus via (vlax-curve-getClosestPointTo) :3

 

Autrement tu peux voir les références en anglais pour étayer tes recherches comme AfraLISP ou LeeMac pour ne citer qu'eux... ^^

 

Bisous,

Luna

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é