Aller au contenu

Routines pour TEXT/MTEXT - Inférieur/Supérieur


Messages recommandés

Posté(e)

 

Hello

 

Merci d'avance à Bred, Gilles, Patrick, etc

 

Dans un genre un peu différent de ce que j'avais demandé il y a une semaine, j'aurais besoin SVP d'une routine "simple" sur les TEXT/MTEXT numériques pour pouvoir sélectionner CEUX dont la velur numérique est soit inférieur, soit supérieur à une valeur donnée !

 

Par exemple, trouvez TOUS les textes du dessin (Dessin entier dans tous les onglets) ou une SELECTION "manuelle classique" pour les sélectionner dont la valeur est soit inférieure, soit supérieure, afin de par exemple les transférer sur un autre calque, forcer la couleur, écraser globalement la valeur par la case de dialogue des propriétés, les effacer, etc ...

 

Trouves TOUS les TEXT/MTEXT (Dessin entier) dont la valeur est supérieure à 15.50 par exemple ...

 

Trouves les TEXT/MTEXT de ma sélection dont la valeur est inférieure à 10 (ou à ZERO) par exemple ...

 

Le Decapode qui tripote les textes comme un fou !

 

 

 

 

 

Autodesk Expert Elite Team

Posté(e)

Salut,

à tester :

 

(defun c:selvaltxt (/ I Q SEL SEL-T VAL VAL-MAXI VAL-MINI)
 (princ "\n Sélection de Texte numérique par Fourchette de valeur.")
 (setq val-mini (getreal "\n Valeur minimum :")
val-maxi (getreal "\n Valeur Maximum :")
sel-T (ssadd))
 (initget "S T")
 (setq Q (getkword "\n Sélection ou Tous (S/T) ? < S >"))
 (if (equal Q "T")
   (setq sel (ssget "_X" (list (cons 0 "TEXT,MTEXT"))))
   (setq sel (ssget (list (cons 0 "TEXT,MTEXT"))))
   )
 (sssetfirst nil nil)
 (repeat (setq i (sslength sel))
   (setq val (atof (cdr (assoc 1 (entget (ssname sel (setq i (1- i))))))))
   (if (and (>= val val-mini)
     (<= val val-maxi))
     (ssadd (ssname sel i) sel-T)
     )
   )
 (sssetfirst nil sel-T)
(if (> (sslength sel-T) 1)
   (princ (strcat "\n"(rtos (sslength sel-T)) " Textes sélectionnés." ""))
   (princ (strcat "\n"(rtos (sslength sel-T)) " Texte sélectionné." "")))
 (princ)
 )

 

[Edité le 26/7/2007 par Bred]

Si vous êtes persuadés de tout savoir sur un sujet, c''est que vous en ignorez quelque chose...

Posté(e)

 

Hello Bred

 

Je teste actuellement sur AutoCAD 2005 ... :P

 

Merci cela semble bien marcher ! :)

 

Le Decapode "Trieur de Textes numériques"

 

Autodesk Expert Elite Team

Posté(e)
(if (> (sslength sel-T) 1)
   (princ_info (sslength sel-T) " Textes sélectionnés." "")
   (princ_info (sslength sel-T) " Texte sélectionné." ""))
 (princ)
 )

 

Et même avec une orthographe correcte.....

Cà c'est classe !

 

Bravo Bred.

Posté(e)
Et même avec une orthographe correcte.....

Cà c'est classe !

 

Bravo Bred.

 

merci ! :D

... c'est le détail qui tue !....

Si vous êtes persuadés de tout savoir sur un sujet, c''est que vous en ignorez quelque chose...

Posté(e)

Bonjour,

Je confirme c'est nickel sur la version 2005 et de surcroît très interressant et tès utile.

Une toute petite question par contre, peut-on faire en sorte qu'il ne prenne pas en compte une ou plusieurs valeurs entre le mini et le maxi choisis préalablement...?

EXEMPLE:

valeur mini ==> 1

valeur maxi ==> 10

.....mais je ne veux pas qu'il y ait le 3 et le 7 (ou plus d'ailleurs) pris en compte.

Oran ;) ;)

Posté(e)

Salut,

.....mais je ne veux pas qu'il y ait le 3 et le 7 (ou plus d'ailleurs) pris en compte.

à tester :

 

;;;;;;;;;;;;;;;;;;;
;;; Selectionne texte valeur numérique compris entre ...
;;; mais exclus valeur donné
(defun c:selvaltxtex (/ I Q SEL SEL-T VAL VAL-MAXI VAL-MINI LST-VAL-EXCLU VAL-EXCLU)
 (princ "\n Sélection de Texte numérique par Fourchette de valeur.")
 (setq val-mini (getreal "\n Valeur minimum :")
val-maxi (getreal "\n Valeur Maximum :")	
sel-T (ssadd)
lst-val-exclu nil
val-exclu 1)
 
 (while val-exclu
   (setq val-exclu (getreal "\n Valeur à exclure : < Q >"))
   (if val-exclu
     (setq lst-val-exclu (append (list val-exclu) lst-val-exclu)))
   )     
   
 (initget "S T")
 (setq Q (getkword "\n Sélection ou Tous (S/T) ? < S >"))
 (if (equal Q "T")
   (setq sel (ssget "_X" (list (cons 0 "TEXT,MTEXT"))))
   (setq sel (ssget (list (cons 0 "TEXT,MTEXT"))))
   )
 (sssetfirst nil nil)
 
 (repeat (setq i (sslength sel))
   (setq val (atof (cdr (assoc 1 (entget (ssname sel (setq i (1- i))))))))
   (if (and (>= val val-mini)
     (<= val val-maxi)
     (not (member val lst-val-exclu)))
     (ssadd (ssname sel i) sel-T)
     )
   )
 (sssetfirst nil sel-T)
(if (> (sslength sel-T) 1)
   (princ (strcat "\n"(rtos (sslength sel-T)) " Textes sélectionnés." ""))
   (princ (strcat "\n"(rtos (sslength sel-T)) " Texte sélectionné." "")))
 (princ)
 )

 

Edit : hop là : le bbcode "< S >" me barrait le code....

 

[Edité le 26/7/2007 par Bred]

Si vous êtes persuadés de tout savoir sur un sujet, c''est que vous en ignorez quelque chose...

Posté(e)

OK ça fonctionne à merveille....chapeau bas, c'est clair, c'est net et c'est rapide.... ;)

Je vous envie de pouvoir faire ce genre de programmation. Comment apprendre lorsque l'on est GRAND débutant ??? Y a t-il des ouvrages préconisés, des sites (français si possible...et oui..!!) faut-il faire un stage....etc ??

 

Oran ;)

Posté(e)
Comment apprendre lorsque l'on est GRAND débutant ??? Y a t-il des ouvrages préconisés, des sites (français si possible...et oui..!!) faut-il faire un stage....etc ??

Cela dépends de chacun : pour moi, j'ai commencé en ne savant rien, et en cherchant, et surtout en demandant de l'aide dans CADxp, j'en suis là....

 

Si vous êtes persuadés de tout savoir sur un sujet, c''est que vous en ignorez quelque chose...

Posté(e)

 

Hello Bred

 

J'ai en sortie de tes routines Lisp, la micro-erreur suivante : :exclam:

 

; erreur: no function definition: PRINC_INFO

 

Mais cela fonctionne bien - MERCI !!! :D :cool:

 

Le Decapode "pointilleux"

 

Autodesk Expert Elite Team

Posté(e)
J'ai en sortie de tes routines Lisp, la micro-erreur suivante :

; erreur: no function definition: PRINC_INFO

Hop là !

Une sous-routine d'info que je n'ai pas mis... mais inutile.

j'ai modifié les codes ci-dessus.

Si vous êtes persuadés de tout savoir sur un sujet, c''est que vous en ignorez quelque chose...

Posté(e)

 

ReHello

 

Maintenant j'ai une autre erreur :

; erreur: type d'argument incorrect: stringp 6

 

Tu n'aurais pas oublié un RTOS qq part !?

 

Mais la routine fonctionne - Merci ! :cool:

 

Le Decapode "Testeur / Emmerdeur"

 

Autodesk Expert Elite Team

Posté(e)
Maintenant j'ai une autre erreur :

; erreur: type d'argument incorrect: stringp 6

 

Tu n'aurais pas oublié un RTOS qq part !?

 

C'est S'là oui....

 

Corrigé....

 

Désolé .... :calim:

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é