blog

AutoLISP : sélection de filtre avec jeu de sélection

Dans le dernier didacticiel, nous avons appris à utiliser la sélection d’objets dans AutoLISP.

Cette fois, nous allons étendre la sélection d’objets en utilisant le filtre de sélection. L’utilisation du filtre dans AutoLISP est très similaire à l’utilisation du filtre AutoCAD.

Nous pouvons définir quel type d’objet nous voulons sélectionner. Nous pouvons définir des objets avec des propriétés spécifiques à sélectionner.

filtre

Par exemple, nous pouvons créer un programme pour exécuter et sélectionner des dimensions dans le dessin, et le déplacer vers la couche d’annotation. Nous allons créer ce programme dans ce tutoriel.

Ce genre de programme est probablement très simple, mais peut vous aider à maintenir la norme de dessin.

Comme nous l’avons fait auparavant, nous pouvons sélectionner tous les objets en utilisant cette ligne.

(setq sel1 (ssget « x »))

Le filtre Objet

Maintenant, nous voulons sélectionner toutes les dimensions dans notre dessin. Pour filtrer la sélection, nous pouvons utiliser ce code :

(setq sel1 (ssget « x » ‘((0 . « DIMENSION »))))

Le code complet devient :

(defun c:dimla (/ sel1 CLAYER )
(setq sel1 (ssget « X » ‘((0 . « DIMENSION »)))) ; SÉLECTIONNER TOUTES LES DIMENSIONS

(setq OLDLAYER (getvar « CLAYER »)) ;GET CURRENT LAYER
(commande « _layer » « m » « ANNO-DIMENSION » «  ») ;CRÉER UN NOUVEAU CALQUE
(setvar « CLAYER » OLDLAYER) ; RÉGLER COUCHE ACTIVE SUR PRÉCÉDENT
(commande « CHPROP » sel1 «  » ; CHANGER LA DIMENSION DE LA COUCHE EN UNE NOUVELLE COUCHE
« COUCHE » « ANNO-DIMENSION »
«  »)
);FIN DU PROGRAMME

Avec ce code simple, vous pouvez rapidement trouver et déplacer toutes les dimensions vers le calque souhaité. Très utile, non ? Vous pouvez également le modifier pour permettre à l’utilisateur de vérifier visuellement la sélection avant de déplacer les dimensions vers un autre calque.

A lire :  Projets Arduino : les LED asynchrones clignotent

En savoir plus sur le filtre de sélection

Afralisp couvre ce matériel dans un sujet plus avancé ici. Je ne le couvrirai pas davantage ici, car ils ont des explications détaillées à ce sujet. Allez-y, en savoir plus sur les opérateurs conditionnels du filtre de sélection ici.

Code DXF

Une autre chose que vous voudrez peut-être savoir est le code DXF.

(0 . « DIMENSION ») – L’utilisation du code DXF 0 vous permet de définir l’objet à sélectionner par type d’objet. Ce code vous permettra uniquement de sélectionner des dimensions.

(8 . « ANNO-DIMENSION ») – L’utilisation du code DXF 8 vous permet de définir les objets à sélectionner par leurs calques. Ce code vous permettra uniquement de sélectionner des objets sur le calque ANNO-DIMENSION.

Nous utilisons des codes DXF avec des filtres de sélection dans AutoLISP.

Voir le code associatif dxf complet ici.

Bouton retour en haut de la page