Aller au contenu

Dans l'attente d'un point ou d'un texte


Messages recommandés

Bonjour,

Est-il possible en lisp d'avoir soit un point à cliquer ou soit une option à saisir ?

Comme la commande ligne par exemple.

Cela me servirai pour changer de commande sans annuler.

Merci

Patrice

Lien vers le commentaire
Partager sur d’autres sites

Coucou,
J'ai retrouvé une fonction LISP (get-string-or-entity) crée par (gile) qui semble répondre à ton besoin.

;--- LISP de (gile) publié sur CADxp.com le 25/03/2020 17:56

; Permet de récupérer une chaîne de caractères ou une liste similaire à (nentsel) pour une entité :
;--- La fonction (Get-string-or-entity) possède 2 arguments
;--- cr si non nil, accepte les espaces dans la chaîne comme (getstring)
;--- msg correspond au message d'invite à afficher sur la ligne de commande

;--- Renvoie la chaîne de caractères, une liste de la forme (<entityname> . (x y z)) (similaire à (nentsel)) ou nil
(defun GetStringOrEntity (cr msg / break result gr pt ent str)
  (prompt msg)
  (while
    (and
      (not break)
      (setq gr (grread nil 12 2))
    )
    (cond
      ( (= 3 (car gr)) ;; Clic gauche
        (setq
          ent (nentselp (cadr gr))
          result (cond ((null ent) nil) ((= (length ent) 2) ent) (T (list (last (last ent)) (cadr gr))))
          break  T
        )
      )
      ( (equal gr '(2 13)) ;; Validation par Entrée
        (setq
          result str
          break T
        )
      )
      ( (and (not cr) (equal gr '(2 32))) ;; Validation par Espace
        (setq
          result str
          break T
        )
      )
      ( (= 2 (car gr)) ;; Récupération des entrées au clavier
        (if (= (cadr gr) 8) ;; 8 = retour/effacer
          (or
            (and
              str
              (/= str "")
              (setq str (substr str 1 (1- (strlen str))))
              (princ (chr 8))
              (princ (chr 32))
            )
            (setq str nil)
          )
          (or
            (and
              str
              (setq str (strcat str (chr (cadr gr))))
            )
            (setq str (chr (cadr gr)))
          )
        )
        (and
          str
          (princ (chr (cadr gr)))
        ) ;; affichage sur la ligne de commande
      )
    )
  )
  result
) ;; End of (defun GetStringOrEntity)

Bisous,
Luna

Lien vers le commentaire
Partager sur d’autres sites

  • 1 mois aprè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 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é