# Liste des calques selon leur début de nom

**URL:** https://dessein-tech.com/t/liste-des-calques-selon-leur-debut-de-nom/8460
**Category:** AutoLISP
**Tags:** lisp, programmation
**Created:** 2025-09-09T19:51:52Z
**Posts:** 5

## Post 1 by @DenisH — 2025-09-09T19:51:52Z

Bonjour à la communauté.  
J’éssai d’écrire un lisp et je n’arrive pas à utiliser «&nbsp;_tblsearch_&nbsp;» (ou «&nbsp;_tblnext_&nbsp;»).  
J’aimerai, par exemple, activer tous les calques commençant par «&nbsp; **PH\_00** &nbsp;», ou les verrouiller, ou les inactiver… Bref, je pense que vous avez compris le truc.  
Cordialement.  
DenisH…

---

## Post 2 by @Patrick — 2025-09-09T20:13:14Z

Alors l’IA te donnes quelques pistes ci-dessous, pas à prendre au pied de la lettre ce n’est qu’une IA mais il te donne le principe, d’utilisation de ces fonctions:

Voici comment fonctionnent ces fonctions :

- `tblsearch` sert à rechercher une entrée dans une table de symboles par nom de manière précise.
- `tblnext` permet de parcourir séquentiellement toutes les entrées d’une table, avec une option pour revenir au début (rewind).

Dans votre cas, pour activer/verrouiller/inactiver tous les calques dont le nom commence par «&nbsp;PH\_00&nbsp;», il faut parcourir la table des calques (`LAYER`), ce que vous faites avec `tblnext`, et tester pour chaque entrée si son nom correspond à votre critère (par exemple avec `wcmatch` qui fait une comparaison avec joker).

Ensuite, on modifie la définition du calque en intervenant dans la liste associée de propriétés retournée par `tblnext` (par exemple, le groupe DXF 62 pour la couleur, 70 pour les drapeaux comme gelé ou verrouillé, et 290 pour verrouillage, selon les valeurs à changer), puis on applique cette modification avec `entmod`.

Voici un exemple de script AutoLISP adapté à votre besoin :

```
(defun c:ActiverCalquesPH00 ( / layerData layerName modData )
  (setq layerData (tblnext "LAYER" T)) ; commencer au premier calque
  (while layerData
    (setq layerName (cdr (assoc 2 layerData))) ; nom du calque
    (if (wcmatch layerName "PH_00*") ; test du début du nom
      (progn
        ;; Modification exemple : activer calque (drapeau 70 et état couleur)
        ;; Remplacez ou ajoutez selon besoin pour verrouiller/inactiver
        (setq modData
              (subst (cons 70 0) (assoc 70 layerData) layerData) ; dégelé (0 = dégelé)
        )
        (setq modData
              (subst (cons 62 7) (assoc 62 modData) modData) ; couleur = 7 (blanc par défaut)
        )
        (entmod modData)
      )
    )
    (setq layerData (tblnext "LAYER")) ; calque suivant
  )
  (princ "\nCalques PH_00 traités.")
  (princ)
)
```

Quelques remarques :

- `wcmatch` est la fonction idéale pour comparer le nom du calque à un patron avec joker `*`.
- Les codes DXF utilisés dans les listes retournées par `tblnext` sont documentés dans la référence AutoLISP (par ex. 2=nom, 62=couleur, 70=flags).
- `entmod` applique les modifications à la table des calques (c’est une opération valide même pour des tables symboliques).
- Une fois les changements faits, il peut être nécessaire d’exécuter une régénération du dessin (commande AutoCAD® `REGEN`) pour que les modifications d’affichage prennent effet visuellement.

Avec ce script, vous pouvez facilement adapter les modifications invoquées dans la partie `(subst ...)` selon que vous souhaitiez verrouiller, désactiver, ou autre. Par exemple, verrouiller un calque revient à modifier le groupe 290 pour la propriété lock, ou geler via le groupe 70 en utilisant les bits appropriés.

---

## Post 3 by @Patrick — 2025-09-09T20:18:12Z



---

## Post 4 by @DenisH — 2025-09-09T20:24:09Z

Un grand merci Patrick !  
Je ne savais pas qu’on pouvait utiliser _tblnext_ comme créateur de listes !  
Je connaissais déjà _wcmatch_ et les _paires pointées_ (merci à **Maître Gile C.** ).  
Encore merci, je vais lire ce code avec la plus grande attention.  
(il va falloir que je me penche sur l’IA)  
Cordialement.  
DenisH…

---

## Post 5 by @Patrick — 2025-09-09T20:25:31Z

Voir:

> [@Perplexity AI pour AutoLISP est un moteur de recherche conversationnel IA gratuit !](https://dessein-tech.com/t/perplexity-ai-pour-autolisp-est-un-moteur-de-recherche-conversationnel-ia-gratuit/3367):
>
> [Perplexity AI pour AutoLISP](https://dessein-tech.com/autolisp-ia) est un moteur de recherche conversationnel IA qui révolutionne l’accès à l’information technique, particulièrement utile pour les professionnels experts AutoCAD® cherchant des réponses précises et sourcées sur la programmation AutoLISP et Vlisp. [[autolisp-autocad-perplexity-ai-ia]](https://dessein-tech.com/autolisp-ia) [!note] L’intelligence artificielle que nous vous proposons ici n’a pas pour but de remplacer l’expertise humaine dans le domaine de la programmation. Elle vise plutôt à guider le progra…

---

## Post 6 by @Patrick — 2025-09-09T21:31:11Z



---

## Post 7 by @system — 2025-09-12T21:31:42Z

Ce sujet a été automatiquement fermé après 3 jours. Aucune réponse n’est permise dorénavant.
