Aller au contenu

Texte de SelectionS ....


Messages recommandés

Posté(e)

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 donne

Commande: 'VLIDE

Choix 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...

Posté(e)

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...

Posté(e)

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]

Posté(e)

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

Posté(e)

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

Posté(e)

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...

Posté(e)

... 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...

Posté(e)

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

Posté(e)

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...

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é