Bred Posté(e) le 19 mars 2007 Posté(e) le 19 mars 2007 Salut, Quand je veux faire demande une selection de plusieurs objets précis, en ce moment je fait ça :(princ "\nChoix des objets rouges :") (setq sel (ssget))ce qui donneCommande: 'VLIDEChoix des objets rouges :Choix des objets:... ce qui n'est pas terrible... Autriez-vous dans vos archives une routine de selection équivalente à SSGET (avec possibilité de filtre de selection idem), mais dont on peut mettre le texte à loisir ? merci d'avance ! Si vous êtes persuadés de tout savoir sur un sujet, c''est que vous en ignorez quelque chose...
Bred Posté(e) le 19 mars 2007 Auteur Posté(e) le 19 mars 2007 ElpanovEvgeniy m'a répondu (setq sel(ssget '((62 . 1))))mais ce n'est pas ce que je voudrais (merci quand même!)Je voudrais (exemple): (setq sel(ssget '((62 . 1)))[b]"choisissez les objets rouges"[/b] : )(je sais, c'est faux, mais c'est plus compréhensible je pense...) Si vous êtes persuadés de tout savoir sur un sujet, c''est que vous en ignorez quelque chose...
stephan35 Posté(e) le 19 mars 2007 Posté(e) le 19 mars 2007 Salut ! Perso, je n'ai pas de réponse allant dans ton sens ! Je suis le sujet, car la réponse m'interesse aussi ..... ;) J'ai bien peur qu'il faille faire sans ! Sinon tu as le (ssget "X") qui, par défaut te selectionne toutes tes entités suivant une liste de critères ... (Mais plus de question !)puis tu peux refaire un filtre après selection en scrutant ton jeu de selection ? A+ [Edité le 19/3/2007 par stephan35]
(gile) Posté(e) le 19 mars 2007 Posté(e) le 19 mars 2007 Salut, Une petite routine qui répond peut-être à la demande.Attention avec la variable NOMUTT en cas d'annulation, gestion des erreurs obligatoire. (defun ssprompt (filtre invite / ss) (prompt invite) (setvar "NOMUTT" 1) (setq ss (vl-catch-all-apply 'ssget (list filtre))) (setvar "NOMUTT" 0) (if (vl-catch-all-error-p ss) nil ss ) ) Exemple : (ssprompt '((62 . 1)) "\nSélectionnez les objets rouges: ") Gilles Chanteau - gileCAD - GitHub Développements sur mesure pour AutoCAD
bonuscad Posté(e) le 19 mars 2007 Posté(e) le 19 mars 2007 Gilles m'a soufflé la réponse a propos de la variable NOMUTT, par contre j'aurais oublié la gestion pertinente d'erreur qu'il a proposé. C'est une variable que habituellement je n'utilise pas (les conséquences peuvent être déroutantes pour un utilisateur, car il n'y a plus aucun message en ligne de commande en cas de non restoration de celle-ci) Donc la proposition de Gilles est excellente si suivie à la lettre. Choisissez un travail que vous aimez et vous n'aurez pas à travailler un seul jour de votre vie. - Confucius
Bred Posté(e) le 19 mars 2007 Auteur Posté(e) le 19 mars 2007 Comme d'habitude, c'est du grand art !!!....merci une "énième fois" encore (gile) ! Si vous êtes persuadés de tout savoir sur un sujet, c''est que vous en ignorez quelque chose...
Bred Posté(e) le 19 mars 2007 Auteur Posté(e) le 19 mars 2007 ... ouh là !... par contre, ne pas faire un test comme ça : (setq sel nil) (while (not sel) (setq sel (ssprompt '((62 . 1)) "\nSélectionnez les objets rouges: ")) ) car si vous n'avez aucun objet '((62 . 1)), la question ne s'arrêtte jamais !!!.... Si vous êtes persuadés de tout savoir sur un sujet, c''est que vous en ignorez quelque chose...
(gile) Posté(e) le 20 mars 2007 Posté(e) le 20 mars 2007 Pour éviter la boucle sans fin avec (while (not ...)), il faut que la routine ne retourne pas nil en cas d'annulation, ça semble marcher avec un (princ) (defun ssprompt (filtre invite / ss) (prompt invite) (setvar "NOMUTT" 1) (setq ss (vl-catch-all-apply 'ssget (list filtre))) (setvar "NOMUTT" 0) (if (vl-catch-all-error-p ss) (princ) ss ) ) Gilles Chanteau - gileCAD - GitHub Développements sur mesure pour AutoCAD
Bred Posté(e) le 20 mars 2007 Auteur Posté(e) le 20 mars 2007 Super ! ... 6h43 la réponse... c'et ton heure on dirait ! merci. Pour info, si l'on à d'autre selection à faire après le ssprompt, il faut faire un test sur sel, car sinon si on fait un echap, sel n'est pas nil, (malgé qu'il ne soit rien) : comme ça :(setq sel nil) (while (not sel) (setq sel (ssprompt '((62 . 1)) "\nSélectionnez les objets rouges: ")) ) (if [b](equal (type sel) 'PICKSET)[/b] (progn ................ etc Si vous êtes persuadés de tout savoir sur un sujet, c''est que vous en ignorez quelque chose...
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