(gile) Posté(e) le 16 décembre 2005 Posté(e) le 16 décembre 2005 Pour ceux qui, comme moi, aiment bien pouvoir sélectionner un (ou des) objet(s) avant ou après avoir lancé une commande de modification et pouvoir mettre cette commande dans un menu contextuel (sélection -> clic droit -> commande dans le menu). Voici deux petites sous-routines qui retiennent la sélection d'une entité (ou un jeu de sélection) faite avant le lancement du LISP, sinon, invitent l'utilisateur à choisir un (ou des) objet(s). Les arguments requis sont une liste de filtres de sélection (ou nil) et un message d'invite (ou "").Par exemple : (setq ent (presel_ent '((0 . "CIRCLE")) "\nSélectionnez un cercle.")) pour un LISP nécessitant une entité "cercle". Pour une seule entité : ;;; Presel_ent ;;; Retourne le nom d'une entité sélectionnée avant ou après le lancement de la commande ;;; fltr_lst : la liste des filtres de sélection pour ssget (ou nil) ;;; msg : l'invite pour le choix des objets (ou "") (defun presel_ent (fltr_lst msg / set1 ent) (if (and (= 1 (getvar "pickfirst")) (setq set1 (ssget "_i" fltr_lst)) (eq 1 (sslength set1)) ) (sssetfirst nil nil) (progn (sssetfirst nil nil) (princ msg) (while (not (setq set1 (ssget "_:S" fltr_lst))) (princ msg) ) ) ) (setq ent (ssname set1 0)) ent ) Pour un jeu de sélection :;;; Presel_jsel ;;; Retourne un jeu de sélection établi avant ou après le lancement de la commande ;;; fltr_lst : la liste des filtres de sélection pour ssget (ou nil) ;;; msg : l'invite pour le choix des objets (ou "") (defun presel_jsel (fltr_lst msg / jsel) (if (and (= 1 (getvar "pickfirst")) (setq jsel (ssget "_i" fltr_lst)) ) (sssetfirst nil nil) (progn (sssetfirst nil nil) (princ msg) (while (not (setq jsel (ssget fltr_lst))) (princ msg) ) ) ) jsel ) PS : il peut être avantageux de les mettre (avec d'autres) dans un fichier "Mes_Utils.lsp" chargé à chaque démarrage, pour les appeler dans différents LISP sans avoir à les redéfinir à chaque fois. Gilles Chanteau - gileCAD - GitHub Développements sur mesure pour AutoCAD
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