Aller au contenu

passage d\'arguments créés avec (ssadd)


Messages recommandés

Posté(e)

Bonjour à tous...

 

Dans une routine, j'ai :

  (setq jspoly (ssadd))
 (command "_.pline"
          (while (not (zerop (getvar "cmdactive")))
            (command pause)
          ) ;_ Fin de while
 ) ;_ Fin de command
 (setq jspoly (ssadd (entlast) jspoly))
(.......)
(.......)
(getVertices jspoly)
(.......)
(.......)

 

Et dans une autre (qui n'est pas de moi, j'ai :

(defun getVertices (ename / plineGet vertex vertexGet )
 (setq return nil)
 (cond
   ((or (/= (type ename) 'ENAME) (not (setq plineGet (entget ename)))) (setq return nil))
   ((= "POLYLINE" (cdr (assoc 0 plineGet)))
    (setq vertex (entnext ename))
    (while (= "VERTEX" (cdr (assoc 0 (setq vertexGet (entget vertex)))))
      (setq return (cons (cdr (assoc 10 vertexGet)) return))
      (setq vertex (entnext vertex))
    ) ;_ Fin de while
    (setq return (reverse return))
   )
   ((= "LWPOLYLINE" (cdr (assoc 0 plineGet)))
    (setq return (mapcar 'cdr (vl-remove-if '(lambda (x) (/= (car x) 10)) plineGet)))
   )
   (t (setq return nil))
 ) ;_ Fin de cond
 ;return
) ;_ Fin de defun

 

Et maintenant ... ... ... Ma question :

 

Est'il possible de passer un argument "jspoly" de cette façon ?

 

Là, je nage, et en plus, je suis creuvé...

 

Je m'en vais me coucher ! !

 

Au revoir et bonne nuit à tous,

 

Denis... (qui baaaAAAaaayyyye... zzZZZzzzzZZZzzzZZZ)

Windows 11 / AutoCAD 2024

Sur terre, il y a 10 types de personnes, celles qui comptent en binaire et les autres (developpez.net).
Davantage d'avantages, avantagent davantage (Bobby Lapointe).
La connaissance s'accroît quand on la partage (Socrate).
Tant va la cruche à l'eau que l'habit n'amasse pas mousse avant de l'avoir tué. (Moi)

Posté(e)

Je t'ai déjà répondu ici !

 

Tu les lis, réponses qu'on te fait ? :casstet:

 

(setq ent (entlast)) -> ?

 

(type ent) -> ?

 

(setq ss (ssadd)) -> ?

 

(type ss) -> ?

 

(ssadd ent ss) -> ?

 

(ssname ss 0) -> ?

 

[Edité le 18/10/2006 par (gile)]

Gilles Chanteau - gileCAD - GitHub
Développements sur mesure pour AutoCAD

Posté(e)

Je suis désolé, mais je n'ai pas compris, je me reprend :

 

dans ma première routine, mon jeu de sélection "jspoly" ne comporte qu'une polyligne et est correcte pour l'utilisation de "(getVertices jspoly)" (qui ne veut qu'une polyligne)

 

Mais arrivé dans la fonction "getVertices", ename est vide...

 

Si non, mon jeux de sélection est bon, puisque dans la première routine, je fais un décalage de "jspoly" et ça fonctionne ...

 

Soit, j'ai mal exposé mon problème, soit je n'ai pas compris ta réponse...

 

Tu les lis, réponses qu'on te fait ?
:(

Je n'en donne peut-être pas toujours l'impression mais, oui, je lis toujours vos réponses, et avec le plus grand intérêt... Si non, je n'arriverais à rien...

 

C'est ma faculté à comprendre le Lisp qui n'est pas toujours là ;)

 

 

Merci encore, je vais quand même voir si je peut comprendre,

 

Denis...

Windows 11 / AutoCAD 2024

Sur terre, il y a 10 types de personnes, celles qui comptent en binaire et les autres (developpez.net).
Davantage d'avantages, avantagent davantage (Bobby Lapointe).
La connaissance s'accroît quand on la partage (Socrate).
Tant va la cruche à l'eau que l'habit n'amasse pas mousse avant de l'avoir tué. (Moi)

Posté(e)

Certaines commandes de modification (decaler, deplacer, rotation ...) acceptent, comme argument, un jeu de sélection (PICKSET) ou un nom d'entité (ENAME), donc en LISP, avec la fonction (command ...) on peut passer un PICKSET ou un ENAME comme argument.

 

Les fonctions LISP (prédéfinies ou définies avec defun ou lambda) sont plus rigoureuse et leurs arguments ne peuvent être que d'un seul type.

L'argument pour getVertices doit être du type ENAME.

Gilles Chanteau - gileCAD - GitHub
Développements sur mesure pour AutoCAD

Posté(e)

Alors je dois passer par le nom de l'entité et non par un jeu de sélection ?

 

comme ça :

 

(setq ename (ssname jspoly 0))
 (getVertices ename)

 

Bon, ici ça marche, je dois avoir bon...

 

Merci (gile) pour toutes ces précisions,

 

Denis...

Windows 11 / AutoCAD 2024

Sur terre, il y a 10 types de personnes, celles qui comptent en binaire et les autres (developpez.net).
Davantage d'avantages, avantagent davantage (Bobby Lapointe).
La connaissance s'accroît quand on la partage (Socrate).
Tant va la cruche à l'eau que l'habit n'amasse pas mousse avant de l'avoir tué. (Moi)

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é