bigsyke Posté(e) le 29 juillet 2010 Posté(e) le 29 juillet 2010 Bonjour à tous :) Je suis entrain de m'initier au joie d'Autolisp mais j'avoue que c'est pas evidant...Voilà,je pense avoir compris la difference entre entsel qui nomme une entité unique et ssget qui designe plusieurs entité sous un meme nom mais j'avoue que lorsque j'essaie d'utiliser sslenght je n'y arrive pas :P Si je crée par exemple 3 entités graphique tel qu'un cercle, un rectangle et une ellispe, que je tape (setq sg (ssget)), que je selectionne mes 3 entités et que je tape (sslenght sg),j'ai le message d'erreur suivant: Commande: (sslenght sg); erreur: no function definition: SSLENGHT Quelqu'un aurait il la gentillesse de me dire ou est mon erreur s'il vous plait? Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson
(gile) Posté(e) le 29 juillet 2010 Posté(e) le 29 juillet 2010 Salut, L'interpréteur LISP ne supporte pas les fautes d'orthographe. Essaye sslength à la place de sslenght. Un petit conseil, utilise l'éditeur Visual LISP inclus dans AutoCAD, les fonctions AutoLISP prédéfinies y sont affichées en bleu ce qui indique immédiatement si l'orthographe de la fonction est bonne. Gilles Chanteau - gileCAD - GitHub Développements sur mesure pour AutoCAD
bigsyke Posté(e) le 29 juillet 2010 Auteur Posté(e) le 29 juillet 2010 Effectivement ça fonctionne mieux avec la bonne orthographe ;) .Il faut que j'apprenne a utilser l'editeur visual lispGile je sais que j'abuse mais peux tu m'expliquer le principe de la fonction ssname? Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson
bonuscad Posté(e) le 29 juillet 2010 Posté(e) le 29 juillet 2010 Bonsoir, Pour faire court! (ssname jeu-de-sélection index) retourne le nom de l'entité d'un jeu de sélection de l'index concerné.Ce nom d'entité ne peut être exploité qu'avec une fonction comme (entget), ou avec (vlax-ename->vla-object) pour accéder à la définition de celle-ci Choisissez un travail que vous aimez et vous n'aurez pas à travailler un seul jour de votre vie. - Confucius
(gile) Posté(e) le 29 juillet 2010 Posté(e) le 29 juillet 2010 Salut, Je vais partir d'un peu plus loin (et faire un peu plus long...).ssget retourne un objet de type PICKSET pour AutoLISP (autrement dit un jeu de sélection). Cet objet n'est pas seulement une collection d'entités (type ENAME) sélectionnées mais contient aussi des informations sur la façon dont ces objets ont été sélectionnés. La plupart du temps, c'est seulement la collection d'objets sélectionnés qui nous intéresse.La fonction ssname sert précisément à accéder à chacune de ces entités. Comme la plupart des fonctions LISP*, ssname requiert des arguments (ou paramètres) et, comme toutes, retourne une valeur.Les arguments requis sont, dans l'ordre, un jeu de sélection (tel que retourné par ssget) et un nombre entier : l'indice de l'entité dans le jeu de sélection (le premier élément a un indice 0). Donc pour accéder aux entités contenues dans le jeu de sélection, il faut le "parcourir" avec une fonction itérative (repeat ou while) en incrémentant l'index jusqu'à atteindre la dernière entité. C'est là que la fonction sslength qui retourne le nombre d'entités contenues dans le jeu de sélection va servir. * Voir ce sujet pour les bases de la syntaxe AutoLISP 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