ldidber Posté(e) le 2 décembre 2004 Posté(e) le 2 décembre 2004 Bonjour,je suis parti d'un lisp trouvé sur ce ofrum qui me donne la somme de toutes les longueurs de mes lignes d'un calque.Une fois que j'ai ce résultat, qui apparit dans une boite de dialogue, j'ai voulu l'écrire. Là pas de problème sauf qu'il faut que j'ai des points d'insertions pour que en face de chaque calque apparaissent les linéaires. Si je modifie une ligne dans un claque, je relance le lisp et pour l'instant, je suis obligé d'effacer l'ancien texte et d'en réecrire un nouveau.J'ai rajouté dans le lisp un ssget pour pouvoir modifier ce texte, mais ça ne marche pas et à mon avis c'est normal. Voilà ce que j'ai: (setq textmodif (ssget))(command "ddedit" (ssget) longueur) sachant que longueur est une variable Merci je suis sûr que quelqu'un sait....
Patrick_35 Posté(e) le 2 décembre 2004 Posté(e) le 2 décembre 2004 SalutC'est la fonction substExtrait de l'aide (subst newitem olditem lst)Arguments newitem An atom or list. olditem An atom or list. lst A list. Par exemple(setq mon_nouv_texte (subst (cons 1 "NOUVEAU TEXTE") (assoc 1 anc_texte) anc_texte)) Ne pas oublier de faire un entmod sur l'entité pour la mettre à jour et un entupd pour rafraichir à l'écran l'objet @+ Les Lisps de PatrickLe but n'est pas toujours placé pour être atteint, mais pour servir de point de mire.Joseph Joubert, 1754-1824
ldidber Posté(e) le 2 décembre 2004 Auteur Posté(e) le 2 décembre 2004 euhh...... J'ai pas tout compris :casstet: Mais c'est pas grave bon tant pis :P
bonuscad Posté(e) le 2 décembre 2004 Posté(e) le 2 décembre 2004 En appliquant ce que t'a dit Patrick_35 Il te faut abandonner l'usage de la commande DDEDITEn employant plutôt (entsel) -> 1 seule sélection au lieu de (ssget) -> un jeu de sélection de 1 ou plusieurs entités, cela donne : (setq textmodif (entget (car (entsel "\nChoix du texte à modifier: ")))) (entmod (subst (cons 1 (rtos longueur)) (assoc 1 textmodif) textmodif)) Choisissez un travail que vous aimez et vous n'aurez pas à travailler un seul jour de votre vie. - Confucius
ldidber Posté(e) le 2 décembre 2004 Auteur Posté(e) le 2 décembre 2004 Merci beaucoup Bonuscad :D :D Juste une petite modif, il ne faut pas de rtos avant longueur dans la deuxième ligne ;) (setq textmodif (entget (car (entsel "\nChoix du texte à modifier: "))))(entmod (subst (cons 1 longueur) (assoc 1 textmodif) textmodif))
bonuscad Posté(e) le 2 décembre 2004 Posté(e) le 2 décembre 2004 Je ne sais pas comment est définie ta variable longueur! Si ta variable est une chaine de texte , ta remarque est bonne.Si ta variable est un réel ou un entier, il faudra la convertir avant de l'associer au groupe 1 du code DXF de l'entité texte, car ce groupe n'accepte qu'une chaine de caractères. Choisissez un travail que vous aimez et vous n'aurez pas à travailler un seul jour de votre vie. - Confucius
ldidber Posté(e) le 2 décembre 2004 Auteur Posté(e) le 2 décembre 2004 Autant pour moi :cool: C'est bien une chaine de texte Merci encore ;)
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