lecrabe Posté(e) le 25 juillet 2007 Posté(e) le 25 juillet 2007 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
Bred Posté(e) le 25 juillet 2007 Posté(e) le 25 juillet 2007 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...
lecrabe Posté(e) le 25 juillet 2007 Auteur Posté(e) le 25 juillet 2007 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
Didier-AD Posté(e) le 25 juillet 2007 Posté(e) le 25 juillet 2007 (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.
Bred Posté(e) le 26 juillet 2007 Posté(e) le 26 juillet 2007 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...
oran Posté(e) le 26 juillet 2007 Posté(e) le 26 juillet 2007 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 ;) ;)
Bred Posté(e) le 26 juillet 2007 Posté(e) le 26 juillet 2007 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...
oran Posté(e) le 26 juillet 2007 Posté(e) le 26 juillet 2007 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 ;)
Bred Posté(e) le 26 juillet 2007 Posté(e) le 26 juillet 2007 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...
lecrabe Posté(e) le 26 juillet 2007 Auteur Posté(e) le 26 juillet 2007 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
Bred Posté(e) le 26 juillet 2007 Posté(e) le 26 juillet 2007 J'ai en sortie de tes routines Lisp, la micro-erreur suivante :; erreur: no function definition: PRINC_INFOHop 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...
lecrabe Posté(e) le 26 juillet 2007 Auteur Posté(e) le 26 juillet 2007 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
Bred Posté(e) le 26 juillet 2007 Posté(e) le 26 juillet 2007 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...
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