Frog Posté(e) le 25 octobre 2023 Posté(e) le 25 octobre 2023 Bonjour à toutes et à tous, Je veux traiter un objet sélectionné à l'écran. Pour cela, j'utilise "ssget" et j'obtiens son "nom" Exemple : (setq obj (ssget c:)) donne !obj => ab Ligne suivante : (command "_meshsmooth" obj "" "") L'entité devient b1. Mais j'ai encore des opérations à effectuer dessus et je ne veux pas devoir sélectionner à nouveau l'objet à l'écran. Par la suite, l'objet va être décomposé, il y aura donc plusieurs entités et je ne veux toujours pas devoir faire une sélection à l'écran. Comment faire ? D'avance merci. Frog
(gile) Posté(e) le 25 octobre 2023 Posté(e) le 25 octobre 2023 Salut, Peux tu préciser quel logiciel utilises-tu, parce que dans AutoCAD (setq obj (ssget c:)) ne donne rien (renvoie nil). Sinon, si je comprends à peu près la demande, ce que tu appelles le "nom" serait le ENAME (nom d'entité) de l'objet. Le ENAME est un identifiant unique dans la session, il est affecté par AutoCAD (ou autre) à chaque nouvel objet créé. Il est donc impossible de le modifier. Dans ton exemple, la commande _meshsmooth crée un nouvel objet (MAILLAGE) et lui affecte un nouvel identifiant. il y a 24 minutes, Frog a dit : Mais j'ai encore des opérations à effectuer dessus et je ne veux pas devoir sélectionner à nouveau l'objet à l'écran. Pour ne pas avoir à sélectionner à l'écran le nouvel objet, tu peux utiliser la fonction entlast qui revoie l'identifiant (ENAME) de la dernière entité créée. il y a 24 minutes, Frog a dit : Par la suite, l'objet va être décomposé, il y aura donc plusieurs entités et je ne veux toujours pas devoir faire une sélection à l'écran. Dans ce cas, il faut stocker le ENAME renvoyé par entlast avant de lancer la décomposition et retrouver les ENAMEs des nouvelle entités créées dans une boucle while avec la fonction entnext. Gilles Chanteau - gileCAD - GitHub Développements sur mesure pour AutoCAD
Frog Posté(e) le 26 octobre 2023 Auteur Posté(e) le 26 octobre 2023 Encore un tout grand merci, Je vais essayer de comprendre et mettre en application. J'utilise Autocad 2023. Si j'écris (setq obj (ssget c:)) dans l'invité de commande, Autocad me propose de sélectionner un objet. Mais si je le fais plusieurs fois, la valeur de la variable obj change à chaque fois. Ce qui ne me semble pas nécessairement problématique dans ce cas vu que l'objet va évoluer et la valeur ENAM va changer. Bàv, Frog
(gile) Posté(e) le 26 octobre 2023 Posté(e) le 26 octobre 2023 il y a une heure, Frog a dit : Si j'écris (setq obj (ssget c:)) dans l'invité de commande, Autocad me propose de sélectionner un objet. À moins qu'une valeur n'ait été affectée au symbole 'c:' avec setq : (setq c: ...) (ssget c:) est équivalent à (ssget nil) qui est équivalent à (ssget) Dans tout les cas cette expression propose de sélectionner des objets et renvoie un jeu de sélection (ou nil). Concernant la sélection des entités dans AutoCAD, je te recommande vivement de lire (entre autres) le chapitre 16 de Introduction à AutoLISP (sur cette page) et les sections Autolisp\Fonctions par genres\Entités graphiques et Autolisp\Fonctions par genres\Jeux de sélection sur le site da-code. Gilles Chanteau - gileCAD - GitHub Développements sur mesure pour AutoCAD
Messages recommandés
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 compteSe connecter
Vous avez déjà un compte ? Connectez-vous ici.
Connectez-vous maintenant