AutoCAD : Définir un intervalle en LISP

Arthur.D21
Contributor
Contributor

AutoCAD : Définir un intervalle en LISP

Arthur.D21
Contributor
Contributor

Bonjour à tous,

Je viens vers vous pour vous demander un conseil sur mon programme LISP.

Je souhaiterai définir des intervalles dans une condition afin de renvoyer un texte (qui sera ensuite un bloc).

Cependant je ne trouve pas comment l'écrire; par exemple je souhaiterai écrire " 11 < x <20"...

Voici ma condition si cela peut aider...

 

(cond
((< nbrpers 10) "base vie 1-10")
((... nbrpers 11 20) "base vie 11-20")
((... nbrpers 21 30) "base vie 21-30")
))

 

Merci d'avance pour votre aide.

Mes meilleurs voeux !


Le titre du sujet a été modifié par un modérateur pour faciliter la recherche. Titre original:
Définir un intervalle en LISP

0 J'aime
Répondre
Solutions acceptées (1)
303 Visites
2 Réponses
  • Lisp
Replies (2)

_gile
Mentor
Mentor
Solution acceptée

Salut,

 

L'opérateur inférieur ou égal (<=) accepte plusieurs arguments. Pour savoir si x est supérieur ou égal à 11 et inférieur ou égal à 20, on fait simplement :

(<= 11 x 20)

Mais dans ton cas, comme la fonction cond fonctionne en "évaluation court circuit" (c'est à dire s'arrête  à la première condition non nil) il suffit d'évaluer si nbpers est inférieur ou égal à une valeur à condition que les valeurs successives soient croissantes.

(cond
  ((<= nbrpers 10) "base vie 1-10")
  ((<= nbrpers 20) "base vie 11-20") ; à ce niveau nbpers est supérieur à 10
  ((<= nbrpers 30) "base vie 21-30") ; à ce niveau nbpers est supérieur à 20
)

 



Gilles Chanteau
Programmation AutoCAD LISP/.NET
GileCAD
GitHub

Arthur.D21
Contributor
Contributor
Bonsoir Gilles,
Je vous remercie pour votre réponse 🙂
Bonne soirée !
0 J'aime