bseb67 Posté(e) le 30 avril 2008 Posté(e) le 30 avril 2008 Salut! Je cherches à simuler la commande ligne, enfin surtout la ligne qui apparait lorsquel'on donnée le point de départ qui va du point de départ au curseur de la souris. J'ai fait une fonction récursive qui demande un point avec getpoint pour donner lepoint final de la ligne, je trace la ligne et relance la fonction avec comme point de départle point final donné avant. en simplifiant cela ressemble à cela (defun dessine( p_start / p_end) (setq p_end (getpoint)) (command "_line" p_start p_end "") (dessine p_end) ) (defun c:d( / pt ) (dessine (get_point)) ) merci. Tous pour lisp, Lisp pour tous!Avec Revit, cela ne vas trop vite...
Bred Posté(e) le 30 avril 2008 Posté(e) le 30 avril 2008 Salut,Je cherches à simuler la commande ligne, enfin surtout la ligne qui apparait lorsquel'on donnée le point de départ qui va du point de départ au curseur de la souris.Si c'est de la "ligne élastique" dont tu parles, tu la retrouve en rappelant le premier point dans la fonction getpoint : (setq p1 (getpoint "\n 1er Point :") p2 (getpoint [b]p1[/b] "\n 2nd point :")) Si vous êtes persuadés de tout savoir sur un sujet, c''est que vous en ignorez quelque chose...
(gile) Posté(e) le 30 avril 2008 Posté(e) le 30 avril 2008 Salut, Si tu ne tiens pas à conserver les lignes à la fin de la routine, tu peux utiliser grvecs (setq p1 (getpoint)) (while (setq p2 (getpoint p1)) (grvecs (list p1 p2)) ; ou (command "_.line" p1 p2) (setq p1 p2) ) Toujours avec grvecs, si tu veux récupérer la liste de points saisis : (defun getpoints (/ pt lst) (setq pt (getpoint "\nPremier point: ") lst (list pt) ) (while (setq pt (getpoint (car lst) "\nPoint suivant: ")) (setq lst (cons pt lst)) (redraw) (grvecs (apply 'append (mapcar 'list lst (cdr lst)))) ) (reverse lst) ) Si tu veux vraiment des lignes : (defun getpoints (/ pt lst1 lst2) (setq pt (getpoint "\nPremier point: ") lst1 (list pt) ) (while (setq pt (getpoint (car lst1) "\nPoint suivant: ")) (setq lst2 (cons (entmakex (list '(0 . "LINE") (cons 10 (trans (car lst1) 1 0)) (cons 11 (trans pt 1 0)) ) ) lst2 ) lst1 (cons pt lst1) ) ) ; (mapcar 'entdel lst2) ; pour supprimer les lignes (reverse lst1) ) [Edité le 30/4/2008 par (gile)] Gilles Chanteau - gileCAD - GitHub Développements sur mesure pour AutoCAD
bseb67 Posté(e) le 5 mai 2008 Auteur Posté(e) le 5 mai 2008 Salut! Si c'est de la "ligne élastique" dont tu parles, tu la retrouve en rappelant le premier point dans la fonction getpoint : => c'est tout à fait ca !!! :) Dire qu'il fallait juste que je lise l'aide de getpoint :cool: En tout cas merci. (gile)=> je ne connaissais pas grvecs, mais pour ce qui est de la création et gestion de la ligne c'est bon, j'avais déjà tout fait. En plus tu m'avais filé une info (variable pickstyle). Si je voulais mettre la ligne élastique ce n'est que pour faciliter la saisie des points pour les lignes. Tous pour lisp, Lisp pour tous!Avec Revit, cela ne vas trop vite...
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