Aller au contenu

Messages recommandés

Posté(e)

Bonjour à tous

j'ai un reçu un fichier ou tous les textes dans le même calque, j'ai essayé avec superfiltre mais pas évident...

 

Auriez vous la ligne de code qui permet : de filtrer les textes (commençant par la lettre Z ou autre ) et les exporter dans un autre calque.

 

Merci

 

Michel a

 

Posté(e)

Salut,

 

Tu peux essayer en collant ça sur la ligne de commande :

 

(sssetfirst nil (ssget "_x" '((0 . "TEXT") (1 . "Z*")))) 

 

Tel quel le code sélectionne tous les textes commençant par Z.

 

Si tu veux aussi sélectionnner le MTEXT, remplace "TEXT" par "*TEXT".

Si tu veux changer la lettre de début ou chercher un groupe de lettre ou un mot, remplace "Z*" par une autre chaîne en utilisant "*" pour "n'importe quel caractère".

Attention, le filtre est sensible à la casse.

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

Posté(e)

Salut

 

Un rtext est un texte auquel on peut y mettre des expressions diesel comme l'exemple le plus utilisé avec les xrefs (de plus, c'est compatible LT).

Au clavier, tu fais par exemple rtext --> Diesel --> $(xrefs,3)

Fonctionne aussi avec les dates, les propriétés du dessin, etc...

 

 

Tu trouveras de l'aide sur cette fonction dans les espress tools.

 

@+

Les Lisps de Patrick

Le but n'est pas toujours placé pour être atteint, mais pour servir de point de mire.

Joseph Joubert, 1754-1824

Posté(e)
(1 . "Z*")

à quoi correspond le 1 et quelles sont mes possibilités de choisir plus lettres ?

 

Dans la liste des données DXF des objets AutoCAD, chauqe groupe de données a un code de groupe qui permet de les identifier et de les retrouver dans une liste.

 

Le code de groupe 1 pour les entés TEXT, MTEXT, ATTRIB etc... correspond à la valeur du texte.

 

Les filtres de sélection pour les chaînes de caractères accèptent les caractères génériques comme l'astérisque (*), par exemple qui est interprétée comme "n'importe quel caractère".

 

Exemples

(ssget "_X" '((0 . TEXT) (1 . "Z*"))) sélectionne toutes les entité TEXT qui commencent par Z comme Zéro, Zorro, Zipo etc...

si tu remplaces "Z*" par "Zé*" le texte "Zéro" sera sélectonné pas "Zorro" ni "Zipo"

si tu remplaces "Z*" par "*ro" les textes "Zéro" et "Zorro" qui finissent tous les deux par "ro" seront sélectionnés mais pas "Zipo".

si tu remplaces "Z*" par "*r*" les textes "Zéro" et "Zorro" qui contiennent tous les deux "r" seront sélectionnés mais pas "Zipo".

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

Posté(e)

Bonjour

 

j'ai posé la question (comme j'avais fait l'essai que ça ne marchait pas), c'est surement un problème de casse...

 

pour filtrer les textes c'est bon, mais si je veux filtrer tous les chiffres (de 1 à x)...comment devrais je m'y prendre

 

dans mon étape une je filtre, j'aimerais savoir comment attribuer une couleur aux éléments filtrés

et leur dire d'aller dans ce calque là (par clique à un élément éxistant ou taper le nom du calque)

 

 

@+

 

Michel a

Posté(e)

Salut,

 

Pour sélectionner tous les textes contenant des chiffres :

 

(sssetfirst nil (ssget "_x" '((0 . "TEXT") (1 . "*[0-9]*")))) 

 

Pour en savoir plus sur les filtres de sélection, regarde dans l'aide aux développeurs, à la fonction ssget, en bas de la page, il y a un lien vers la rubrique Selection Set Filter Lists et en bas de la page de cette rubrique, 3 liens :

- Wild-Card Patterns in Filter Lists pour l'utilisations des caractères génériques (groupes de type chaîne)

- Relational Tests pour des tests de relation (groupes numériques)

- Logical Grouping of Filter Tests pour les tests logiques (AND, OR, NOT, XOR)

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

Posté(e)

Bonjour

 

J'ai réussi à filtrer mes textes tout c'est bien passé......par contre pour les chiffres uniquement (il aurait fallut qu'il n'y ait que des chiffres..

 

j'ai trois types de données: (la numerotation de 1 à ...), le Z et le Point

1

Z : 100.00

P : 200

 

avec le filtre contenant : (1 . "*[0-9]*), il me selectionne tout... comment éxiger que des chiffres ?

 

Merci

 

Michel a

 

 

Posté(e)

Salut,

 

Avec les filtres de sélection et les caractères génériques, tu peux, par exemple, filtrer tous les textes qui commencent par un chiffre :

(sssetfirst nil (ssget "_x" '((0 . "TEXT") (1 . "[0-9]*"))))

 

ou encore écarter tout ceux qui commencent par une lettre :

(sssetfirst nil (ssget "_x" '((0 . "TEXT") (1 . "[~A-Z]*"))))

 

Il est possible aussi, de parcourrir le jeu de sélection de tous les textes, pour faire 3 jeux de sélection contenant soit les points (ss_pt) soit les altitudes (ss_alt) soit les numéros (ss_num) :

(and
 (setq ss (ssget "_X" '((0 . "TEXT"))))
 (setq	ss_num (ssadd)
ss_alt (ssadd)
ss_pt  (ssadd)
n      0
 )
 (while (setq txt (ssname ss n))
   (setq val (cdr (assoc 1 (entget txt)))
  n   (1+ n)
   )
   (cond
     ((numberp (read val)) (ssadd txt ss_num))
     ((= (substr val 1 1) "Z") (ssadd txt ss_alt))
     ((= (substr val 1 1) "P") (ssadd txt ss_pt))
   )
 )
) 

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

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é