blog

Modifier des objets avec AutoLISP : travailler avec la sélection

Nous avons couvert plusieurs sujets sur la façon dont nous pouvons dessiner plus efficacement en utilisant AutoLISP. Il est maintenant temps de passer à autre chose. Nous allons apprendre comment modifier des objets existants dans notre dessin.

La chose la plus importante à propos de l’édition d’objets est de les sélectionner. Comme nous le savons, après avoir activé une commande de modification d’AutoCAD (comme déplacer, copier, etc.), AutoCAD nous demandera de sélectionner l’objet.

sélection_autocad

Enregistrer la sélection dans une variable

La fonction qui nous permet de le faire est SSGET.

Exemple 1 : Déplacer vers la gauche

Cet exemple de programme vous permettra de sélectionner des objets et de les déplacer de 5 unités vers la gauche.

(defun c:mleft ()

(setq sel1 (ssget))

(commande « déplacer » sel1 «  » « 0,0,0 » « -5,0,0 »)

)

SSGET enregistrera votre sélection dans la variable sel1. Ensuite, vous pouvez l’ajouter pour déplacer la commande.

N’oubliez pas que vous devez ajouter «  » pour terminer la sélection. Si vous ne l’ajoutez pas, AutoCAD continuera à vous demander de sélectionner l’objet.

Exemple 2 : Réinitialiser les propriétés sur ByLayer

Une chose qui peut nous ennuyer lorsque nous essayons d’appliquer la norme CAO, c’est que les propriétés des objets soient remplacées. Définir sur autre que ByLayer.

Vous pouvez modifier les propriétés de l’objet à l’aide de CHPROP. Ensuite, vous pouvez choisir les propriétés que vous souhaitez définir sur ByLayer. Essayez d’utiliser CHROP pour comprendre ce que nous faisons ci-dessous.

(defun c:rst ()

(setq sel1 (ssget))

(commande « CHPROP » sel1 «  »

« COULEUR » « PARCOUCHE »

« LÉGER » « PARCOUCHE »

« LTYPE » « PARCOUCHE »

«  »)

)

Utilisation d’un autre mode de sélection

Parfois, nous devons sélectionner des objets sans demander aux utilisateurs de donner leur avis. Ou limitez la méthode à utiliser par l’utilisateur.

A lire :  Quoi de neuf dans AutoCAD : l'interface

L’utilisation du code ci-dessus permettra aux utilisateurs d’utiliser le mode par défaut d’AutoCAD.

Vous pouvez utiliser ces codes pour sélectionner un objet dans le programme :

(setq sel1 (ssget « w » ‘(0 0) ‘(10 10)))

Ce code sélectionnera tous les objets à l’intérieur de la fenêtre rectangulaire de 0,0 à 10,10.

Les autres codes que nous pouvons utiliser sont :

setq sel1 (ssget « c » ‘(0 0) ‘(10 10)) pour sélectionner l’objet à l’intérieur et touchant la fenêtre rectangulaire (polygone traversant).

setq sel1 (ssget « l »)) pour sélectionner le dernier objet créé.

setq sel1 (ssget « p »)) pour sélectionner des objets dans la sélection précédente.

setq sel1 (ssget « x »)) tous les objets du dessin.

Si vous n’êtes pas familier avec le mode de sélection ci-dessus, lisez l’utilisation de la sélection AutoCAD ci-dessous.

Pour la sélection de fenêtres et de polygones de croisement, nous pouvons également demander l’entrée de l’utilisateur.

Par exemple:

(setq pt1 (getpoint « 
Choisissez le premier point : »))

(setq pt2 (getpoint « 
Choisissez un autre point d’angle : « ))

(setq sel1 (ssget « c » pt1 pt2))

Nous allons étendre cette sélection à l’aide du filtre.

Si vous avez un exemple simple que nous pouvons utiliser dans cet exercice, faites-le moi savoir. Je vais ajouter votre code ici, et vous serez crédité.

Autres lectures :

  • Ensembles de sélection. Bonne explication par Kenny Ramage sur AfraLISP.

  • Utilisation de la sélection AutoCAD. Voici la liste de la façon dont vous pouvez sélectionner des objets dans AutoCAD.

  • Liste des fonctions AutoLISP. Voir toutes les fonctions LISP que vous pouvez utiliser pour étendre votre programme LISP.

  • A lire :  Utilisation des gabarits de vue Revit

    Bouton retour en haut de la page