LISP - Si dans la sélection x, y il existe...
Polo
-
Polo -
Polo -
Bonjour,
Je cherche à réaliser une condition en lisp pour l'automatisation d'un programme.
Je souhaiterais pouvoir dire:
Si dans la sélection (x1,y1) (x2,y2) il existe quelque chose (bloc, ligne, point...) j'exécute tel instruction, sinon tel autre
les X et Y sont des entier pour définir un rectangle de sélection
Merci par avance pour votre aide
Je cherche à réaliser une condition en lisp pour l'automatisation d'un programme.
Je souhaiterais pouvoir dire:
Si dans la sélection (x1,y1) (x2,y2) il existe quelque chose (bloc, ligne, point...) j'exécute tel instruction, sinon tel autre
les X et Y sont des entier pour définir un rectangle de sélection
Merci par avance pour votre aide
3 réponses
-
UP svp
Après avoir tâtonné longuement j'en arrive à ceci
(defun c:test()
(setq ax 395 ay 275 bx 405 by 285)
(setq pt1 (strcat (itoa ax) "," (itoa ay)))
(setq pt2 (strcat (itoa bx) "," (itoa by)))
(setq valid (command "_select" "c" pt1 pt2 ""))
(if (/= valid nil)
(alert "Quelque chose")
(alert "Rien")
)
)
Mais visiblement le "/= valid nil" ne fonctionne pas
Merci -
Bonjour,
les coordonnées d'un point sont une liste de valeur numériques et non du texte.
(defun c:test() (setq ax 395 ay 275 bx 405 by 285) (setq pt1 (list ax ay)) (setq pt2 (list bx by)) ;faire une selection (setq ss1 nil) (setq ss1 (ssget "F" pt1 pt2)) (if (/= ss1 nil) (alert "Quelque chose") (alert "Rien") ) )
-
MERCI Yoda pour ta réponse
Lorsque je le lance ça me retourne
=> liste de points incorrecte
en faisant ceci, sur la ligne de commande
(setq valid (command "_select" "c" pt1 pt2 ""))
il s'affiche 20 trouvé(s), mais visiblement ce n'est stocké dans la variable valid...
J'ai également essayé avec
(setq ss1 (ssget "W" pt1 pt2))
=> chaîne du mode ssget incorrecte
Je comprend pas ...
-
-