lecrabe Posté(e) le 4 mai 2008 Partager Posté(e) le 4 mai 2008 Hello Je n'ai pas trouvé mon bonheur mais j'ai peut être mal cherché ! :o Je désire trouvé le point (dessiner un point graphique en fait) qui se trouve à xx.yy unités graphiques du point de départ d'une polyligne 2D (Splinée ou Non, Lissée ou Non, Close ou Non) Et si en plus j'avais la même routine pour une polyligne 3D, ce serait Tip-Top ! :D Dans l'attente de vos lumières, je vous souhaite un bon dimanche ... :D Le Decapode (qui circule sur les polylignes) [Edité le 4/5/2008 par lecrabe] Autodesk Expert Elite Team Lien vers le commentaire Partager sur d’autres sites More sharing options...
(gile) Posté(e) le 4 mai 2008 Partager Posté(e) le 4 mai 2008 Salut, un petit truc vite fait (ptvf), qui devrait fonctionner avec tout type de polyligne (defun c:ptvf (/ sp vc ss) (or *acdoc* (setq *acdoc* (vla-get-ActiveDocument (vlax-get-acad-object))) ) (setq sp (if (= 1 (getvar "CVPORT")) (vla-get-PaperSpace *acdoc*) (vla-get-ModelSpace *acdoc*) ) ) (and (setq vc (getpoint "\nSpécifiez les coordonnées: ")) (setq vc (trans vc 1 0)) (ssget '((0 . "*POLYLINE") (-4 . "[b] (-4 . "&") (70 . 112) (-4 . "NOT>") ) ) (not (vla-StartUndoMark *acdoc*)) (vlax-for pl (setq ss (vla-get-ActiveSelectionSet *acdoc*)) (vla-addPoint sp (vlax-3d-point (mapcar '+ vc (vlax-curve-getStartPoint pl))) ) ) (vla-EndUndoMark *acdoc*) ) (princ) ) [Edité le 4/5/2008 par (gile)] Gilles Chanteau - gileCAD - GitHub Développements sur mesure pour AutoCAD Lien vers le commentaire Partager sur d’autres sites More sharing options...
zebulon_ Posté(e) le 5 mai 2008 Partager Posté(e) le 5 mai 2008 Bonjour, je n'ai pas bien compris la question. Je pense qu'il s'agit de trouver un point situé sur la polyligne à une certaine distance du départ puisque le Décapode nous dit qu'il "circule sur les polylignes". C'est le xx.yy qui n'est pas très clair dans la question. On peut penser que tu souhaites saisir un point, mais je pense que tu souhaites saisir une distance ? (defun c:ptatdist () (setq *acdoc* (vla-get-ActiveDocument (vlax-get-acad-object))) (setq sp (if (= 1 (getvar "CVPORT")) (vla-get-PaperSpace *acdoc*) (vla-get-ModelSpace *acdoc*) ) ) (setq ent (car (entsel))) (setq x (getdist "\nDistance depuis départ :")) (setq vlaobj (vlax-ename->vla-object ent) ;;; le reste est pour mémoire, pour voir ce qu'on peut faire avec les fonctions vlax-curve pt_org (vlax-curve-getStartPoint vlaobj) pt_end (vlax-curve-getEndPoint vlaobj) param_start (vlax-curve-getStartParam vlaobj) param_end (vlax-curve-getEndParam vlaobj) perim_obj (vlax-curve-getDistAtParam vlaobj param_end) ;;; fin pour mémoire ) (vla-addPoint sp (vlax-3d-point (vlax-curve-getPointAtParam vlaobj (vlax-curve-getParamAtDist vlaobj x))) ) ) ou un truc dans le genre... AmicalementVincent C'est au pied du mur que l'on reconnaît le maçon ! (Anonyme) C’est en restant au pied du mur qu’on ne voit que le mur (Anonyme aussi) Lien vers le commentaire Partager sur d’autres sites More sharing options...
lecrabe Posté(e) le 5 mai 2008 Auteur Partager Posté(e) le 5 mai 2008 Hello Zebulon & Gilles En effet je desire obtenir un point graphique AutoCAD qui se trouve à xx.yy unités graphiques du point de départ de la polyligne ! :) Gilles, je suis désolé si je me suis mal exprimé ! ;) La routine de Zebulon me convient parfaitement !! :cool: Pour Gilles, je n'ai pas compris ce que tu avais programmé suite à mon "mauvais" cahier des charges !? Sorry :P Le Decapode "confus" Autodesk Expert Elite Team Lien vers le commentaire Partager sur d’autres sites More sharing options...
zebulon_ Posté(e) le 5 mai 2008 Partager Posté(e) le 5 mai 2008 Pour Gilles, je n'ai pas compris ce que tu avais programmé suite il a additionné l'abscisse et l'ordonnée du point saisi avec l'abscisse et l'ordonnée du point de départ de la polyligne (vlax-3d-point (mapcar '+ vc (vlax-curve-getStartPoint pl))) pour faire une sorte de translation Sauf erreur de ma partAmicalement Vincent C'est au pied du mur que l'on reconnaît le maçon ! (Anonyme) C’est en restant au pied du mur qu’on ne voit que le mur (Anonyme aussi) Lien vers le commentaire Partager sur d’autres sites More sharing options...
jobs Posté(e) le 20 octobre 2008 Partager Posté(e) le 20 octobre 2008 Bonjour, je n'ai pas bien compris la question. Je pense qu'il s'agit de trouver un point situé sur la polyligne à une certaine distance du départ puisque le Décapode nous dit qu'il "circule sur les polylignes". C'est le xx.yy qui n'est pas très clair dans la question. On peut penser que tu souhaites saisir un point, mais je pense que tu souhaites saisir une distance ? (defun c:ptatdist () (setq *acdoc* (vla-get-ActiveDocument (vlax-get-acad-object))) (setq sp (if (= 1 (getvar "CVPORT")) (vla-get-PaperSpace *acdoc*) (vla-get-ModelSpace *acdoc*) ) ) (setq ent (car (entsel))) (setq x (getdist "\nDistance depuis départ :")) (setq vlaobj (vlax-ename->vla-object ent) ;;; le reste est pour mémoire, pour voir ce qu'on peut faire avec les fonctions vlax-curve pt_org (vlax-curve-getStartPoint vlaobj) pt_end (vlax-curve-getEndPoint vlaobj) param_start (vlax-curve-getStartParam vlaobj) param_end (vlax-curve-getEndParam vlaobj) perim_obj (vlax-curve-getDistAtParam vlaobj param_end) ;;; fin pour mémoire ) (vla-addPoint sp (vlax-3d-point (vlax-curve-getPointAtParam vlaobj (vlax-curve-getParamAtDist vlaobj x))) ) ) ou un truc dans le genre... AmicalementVincent Lien vers le commentaire Partager sur d’autres sites More sharing options...
jobs Posté(e) le 20 octobre 2008 Partager Posté(e) le 20 octobre 2008 Bonjour Je débute sur le forum et je n'utilise peut être pas la bonne formule pour poser ma question. J'ai récupéré sur ce site la routine que tu Zébulon à donné pour positionner un point sur une polyligne en donnant la valeur depuis le départ. Je m'en sert pas mal, et elle est très pratique. Par contre, quand je l'utilise, j'insère plusieur point sur la même polyligne à des distances différente du départ. Je sélectionne donc ma polyligne puis je rentre la distance et je recommence pour chaque point. Est ce que c'est possible d'avoir la même chose mais en sélectionnant une seul fois la polyligne et en rentrant ensuite tous les points à suivre sans avoir à relancer la commande et à resélectionner la polyligne.Mercia+ Lien vers le commentaire Partager sur d’autres sites More sharing options...
zebulon_ Posté(e) le 20 octobre 2008 Partager Posté(e) le 20 octobre 2008 Bonjour, heureux que ça te serve et bienvenu parmi nous jobs. (defun c:ptatdist () (setq *acdoc* (vla-get-ActiveDocument (vlax-get-acad-object))) (setq sp (if (= 1 (getvar "CVPORT")) (vla-get-PaperSpace *acdoc*) (vla-get-ModelSpace *acdoc*) ) ) (setq ent (car (entsel))) (while (setq x (getdist "\nDistance depuis départ : ")) (setq vlaobj (vlax-ename->vla-object ent)) (vla-addPoint sp (vlax-3d-point (vlax-curve-getPointAtParam vlaobj (vlax-curve-getParamAtDist vlaobj x))) ) ) (princ) ) En espérant te relire souvent ;) AmicalementVincent C'est au pied du mur que l'on reconnaît le maçon ! (Anonyme) C’est en restant au pied du mur qu’on ne voit que le mur (Anonyme aussi) Lien vers le commentaire Partager sur d’autres sites More sharing options...
lovecraft Posté(e) le 20 octobre 2008 Partager Posté(e) le 20 octobre 2008 Bonjour, (defun c:ptatdist () (vl-load-com) (setq *acdoc* (vla-get-ActiveDocument (vlax-get-acad-object))) (setq sp (if (= 1 (getvar "CVPORT")) (vla-get-PaperSpace *acdoc*) (vla-get-ModelSpace *acdoc*) ) ) (setq ent (car (entsel))) (setq compteur 1) (while (/= (setq x (getdist "\nDistance depuis départ :")) nil) (setq vlaobj (vlax-ename->vla-object ent) ;;; le reste est pour mémoire, pour voir ce qu'on peut faire avec les fonctions vlax-curve pt_org (vlax-curve-getStartPoint vlaobj) pt_end (vlax-curve-getEndPoint vlaobj) param_start (vlax-curve-getStartParam vlaobj) param_end (vlax-curve-getEndParam vlaobj) perim_obj (vlax-curve-getDistAtParam vlaobj param_end) ;;; fin pour mémoire ) (vla-addPoint sp (vlax-3d-point (vlax-curve-getPointAtParam vlaobj (vlax-curve-getParamAtDist vlaobj x))) ) );fin du while ) Voici le code de Zebulon modifié @plus LB http://www.youtube.com/user/CADMINATOR?feature=mhee Lien vers le commentaire Partager sur d’autres sites More sharing options...
zebulon_ Posté(e) le 20 octobre 2008 Partager Posté(e) le 20 octobre 2008 Bip Bip, j'ai été plus rapide... http://www.lecoyote.net/coybip/bipbip.jpg AmicalementVincent C'est au pied du mur que l'on reconnaît le maçon ! (Anonyme) C’est en restant au pied du mur qu’on ne voit que le mur (Anonyme aussi) Lien vers le commentaire Partager sur d’autres sites More sharing options...
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