farfar974123 Posté(e) le 3 septembre 2009 Posté(e) le 3 septembre 2009 Salut à tous, Je débute en LISP, et je m'attaque peut-être à qq chose de costaud. mais bon Voila : J un polyligne ayant des xdata (3 en tout).Comment pourrais-je récuperer l'une de c Xdata et l'ecrire dans un texte. Merci pour le coup de pouce. :) Imposer sa volonté aux autres, c'est force. Se l'imposer à soi-même, c'est force supérieure.Lao-Tseu
bonuscad Posté(e) le 3 septembre 2009 Posté(e) le 3 septembre 2009 Salut, Comment pourrais-je récuperer l'une de c Xdata et l'ecrire dans un texte. Pour récupérer la liste des Xdata la ligne suivante devrait faire l'affaire. (setq l_xdata (assoc -3 (entget (car (entsel "\nChoix d'un objet contenant des XData: ")) (list "[color=red] NOM DE TON APPLICATION[/color]")))) En retour tu auras les codes DXF (de 1000 à 1071) concernant les données étendues attachés à l'objet. Ces codes ne sont pas unique et peuvent être présent plusieurs fois.Dans ce cas l'ordre de ces codes multiples est important et l'extraction par (assoc) n'est pas adaptée pour obtenir les valeurs. Ex: (cdr (assoc 1040 (cdadr l_xdata))) retournera que le 1er réel de la liste rencontré. Voir dans la "Documentation du développeur" -> Manuel d'utilisation DXF -> Concepts DXF avancés ->Données étendues Choisissez un travail que vous aimez et vous n'aurez pas à travailler un seul jour de votre vie. - Confucius
farfar974123 Posté(e) le 3 septembre 2009 Auteur Posté(e) le 3 septembre 2009 Merci Bonuscad pour le coup de pouce Jusque la, j'ai réussi à récupérer L'xdata voulu : (defun c:XD() (setq l_xdata (assoc -3 (entget (car (entsel "\nChoix d'un objet contenant des XData: ")) (list "SUPF")))) (setq b (cdr (assoc 1000 (cdadr l_xdata)))) (princ) ) Comme il n'y a qu'un seul réel dans la liste, sa ne me pose pas de problème. Par contre à ce stade, mon soucis c que la valeur retourné est de la forme suivante : "00006546" et pour la suite il ne me faut ni les "", ni les 0000 présent devant le nombre. Une idée? :casstet: Imposer sa volonté aux autres, c'est force. Se l'imposer à soi-même, c'est force supérieure.Lao-Tseu
farfar974123 Posté(e) le 3 septembre 2009 Auteur Posté(e) le 3 septembre 2009 J trouve fonction (atoi b) Imposer sa volonté aux autres, c'est force. Se l'imposer à soi-même, c'est force supérieure.Lao-Tseu
farfar974123 Posté(e) le 3 septembre 2009 Auteur Posté(e) le 3 septembre 2009 Voici mon œuvre : (defun c:cc() (setq l_xdata (assoc -3 (entget (car (entsel "\nChoix d'un objet contenant des XData: ")) (list "SUPF")))) (setq b (atoi(cdr (assoc 1000 (cdadr l_xdata))))) (setq q(getpoint"\nPosition du texte ")) (command "texte" q 100 (strcat (rtos b) " m² ")) (princ) ) Bon ca casse pas des briques, mais c mon petio. Merci Bonuscad Imposer sa volonté aux autres, c'est force. Se l'imposer à soi-même, c'est force supérieure.Lao-Tseu
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