Aller au contenu

Séparer des textuels numériques


fabcad

Messages recommandés

Bonjour à tous,

 

je souhaiterais trier des textuels (textes et mtextes) par leur contenu, c'est a dire si l'objet textuel est un nombre alors le placer dans un calque autocad "NUMERIQUE" sinon placer l'objet soit dans son calque d'origine ou dans un calque "NON_NUMERIQUE".

 

Ou simplement changer la couleur en rouge des textuels numériques.

Ceci afin de faire un traitement sur un ensemble de textuels.

 

Merci,

 

Bonne journée,

 

Fabcad

 

[Edité le 8/6/2010 par fabcad]

Lien vers le commentaire
Partager sur d’autres sites

Salut,

 

La fonction distof est probablement le moyen le plus simple d'évaluer si une chaîne est constituée d'une valeur numérique valide :

 

(distof "toto") retourne nil

(distof "25 b") retourne nil

(distof "A6") retourne nil

(distof "12") retourne 12

(distof "25.4") retourne 25.4

à noter toutefois :

(distof ".1") retourne 0.1

(distof "1/4") retourne 0.25

 

donc avec un test : (if (distof (cdr (assoc 1 dxf_lst))) (entmod ...)) ça devrait fonctionner.

Gilles Chanteau - gileCAD - GitHub
Développements sur mesure pour AutoCAD

Lien vers le commentaire
Partager sur d’autres sites

Merci Gile,

 

Voici mon code simplifiable j'imagine,

 

(defun traitement_jeu_de_selection (js /)
(setvar "cmdecho" 0)
(setq nbr (sslength js))
(setq i 0)
(while (<= i (- nbr 1))
(setq obj_acad (ssname js i))
(setq obj_vl (vlax-ename->vla-object obj_acad))
(setq obj_index (vla-get-TextString obj_vl))
(if (/= (distof obj_index) nil)
	(vla-put-color obj_vl acRed)
	(vla-put-color obj_vl acGreen)
);fin if
(vlax-release-object obj_vl)
(setq i (+ i 1))
); fin while
);fin defun
;;;------------------------------------------------------------------------
;; Fonction principale
(defun c:NUMERIQUES ()
(setvar "cmdecho" 0)
(vl-load-com)
(setq js (ssget))
(traitement_jeu_de_selection js)
(setq js nil)

(prompt "\n---Créé le 08/06/2010 Par Fabrice DEMIEL---")
nil
); fin c:NUMERIQUES
;;;------------------------------------------------------------------------
(prompt "\npour lancer Tapez : NUMERIQUES ")
(princ)

[Edité le 8/6/2010 par fabcad]

 

[Edité le 9/6/2010 par fabcad]

Lien vers le commentaire
Partager sur d’autres sites

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é