Aller au contenu

simuler la commande ligne


bseb67

Messages recommandés

Salut!

 

Je cherches à simuler la commande ligne, enfin surtout la ligne qui apparait lorsque

l'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 le

point final de la ligne, je trace la ligne et relance la fonction avec comme point de départ

le 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...

Lien vers le commentaire
Partager sur d’autres sites

Salut,

Je cherches à simuler la commande ligne, enfin surtout la ligne qui apparait lorsque

l'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...

Lien vers le commentaire
Partager sur d’autres sites

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

Lien vers le commentaire
Partager sur d’autres sites

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...

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é