PATRICE69 Posté(e) le 15 mars 2024 Posté(e) le 15 mars 2024 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
Luna Posté(e) le 15 mars 2024 Posté(e) le 15 mars 2024 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
Messages recommandé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 compteSe connecter
Vous avez déjà un compte ? Connectez-vous ici.
Connectez-vous maintenant