jarod34 Posté(e) le 13 octobre 2010 Posté(e) le 13 octobre 2010 Bonjour Je ne sais pas si ça a été déjà abordé mais je ne trouve rien pour le moment! J'ai une polyligne pour axe et des points à côté. Je souhaiterai ramener ces points de manière perpendiculaire sur mon axe. Cela peut-il être possible sans rentrer dans quelque chose de complexe et long? Pour le moment je n'arrive pas à voir par quel bout prendre ce problème avant de me lancer dans un lisp! Comment aborderiez-vous la chose? Merci pour vos lumières ;) Py
(gile) Posté(e) le 13 octobre 2010 Posté(e) le 13 octobre 2010 Salut, Regarde la fonction vlax-curve-getClosestPointTo Gilles Chanteau - gileCAD - GitHub Développements sur mesure pour AutoCAD
jarod34 Posté(e) le 14 octobre 2010 Auteur Posté(e) le 14 octobre 2010 Merci (gile) j'essaye de regarder ça! Existe-t-il un lexique de ces fonction V-lisp ave cun descriptifs?
(gile) Posté(e) le 14 octobre 2010 Posté(e) le 14 octobre 2010 Dans l'aide aux développeurs, les fonctions vl-*, vlax-* et vlr-* sont dans AutoLISP Reference > AutoLISP Functions > V Functions. Pour les fonction vla-*, il faut regarder dans ActiveX and VBA Reference ou utiliser Ctrl+F1. L'aide pour ces fonctions (en fait objets, méthodes, propriétés) n'existe plus dans A2011. Gilles Chanteau - gileCAD - GitHub Développements sur mesure pour AutoCAD
jarod34 Posté(e) le 14 octobre 2010 Auteur Posté(e) le 14 octobre 2010 Merci beaucoup je vais commencer par AutoLISP Reference!
bonuscad Posté(e) le 14 octobre 2010 Posté(e) le 14 octobre 2010 J'ai une polyligne pour axe et des points à côté. Je souhaiterai ramener ces points de manière perpendiculaire sur mon axe. Et dans l'autre sujet: un miroir sur une série de point et ce par rapport à une polyligne Bien que la démarche soit similaire voici,sans rentrer dans quelque chose de complexe et longun code répondant à la seconde question. Pas tester en profondeur, mais le principe est là. (vl-load-com) (defun c:mirr_point ( / js obj_vla e_name js_pt n l_dxf pt pt_proj pt_new) (princ "\nChoix de la polyligne représentant l'axe mirroir.") (while (null (setq js (ssget "_+.:E:S" '((0 . "LWPOLYLINE"))))) (princ "\nCe n'est pas un objet valable!") ) (setq obj_vla (vlax-ename->vla-object (setq e_name (ssname js 0)))) (redraw e_name 3) (princ "\nChoix des points a reporter symétriquement.") (while (null (setq js_pt (ssget '((0 . "POINT"))))) (princ "\nCe ne sont pas des points!") ) (redraw e_name 4) (repeat (setq n (sslength js_pt)) (setq pt (cdr (assoc 10 (setq l_dxf (entget (ssname js_pt (setq n (1- n))))))) pt_proj (vlax-curve-getClosestPointTo obj_vla pt) pt_new (polar pt (angle pt pt_proj) (* (distance (list (car pt) (cadr pt)) (list (car pt_proj) (cadr pt_proj))) 2.0)) pt_new (list (car pt_new) (cadr pt_new) (caddr pt)) ) (foreach n l_dxf (if (member (car n) '(-1 -2 5 330)) (setq l_dxf (vl-remove n l_dxf)) ) ) (entmake (subst (cons 10 pt_new) (assoc 10 l_dxf) l_dxf)) (grdraw (trans pt 0 1) (trans pt_new 0 1) 3 1) ) (prin1) ) Libre à toi d'agrémenter la procédure... Choisissez un travail que vous aimez et vous n'aurez pas à travailler un seul jour de votre vie. - Confucius
jarod34 Posté(e) le 15 octobre 2010 Auteur Posté(e) le 15 octobre 2010 Merci Bonuscad c'est parfait! Je vais me plonger dans ton code pour le comprendre! Un grand merci à toi et à (gile) pour votre aide!
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