Aligol Posté(e) le 5 novembre 2017 Posté(e) le 5 novembre 2017 Bonjour, J'ai récupéré et modifié un lisp qui permet d'insérer aux sommets d'une polyligne un bloc avec un numéro de point qui s'incrémente à chaque sommet. J'ai utilisé ce lisp des dizaines de fois, sans aucun soucis. Dernièrement, je l'ai utilisé comme d'habitude, sauf que là, au lieu de mettre le numéro du point dans l'attribut, je n'obtiens que l'attribut avec sa valeur par défaut (il ne la change plus). J'ai essayé ce lisp sur un ancien dessin où il avait fonctionné, même problème, il n'indique plus que la valeur par défaut de l'attribut. En essayant le lisp sur un autre poste, cette fois-ci l'attribut du numéro de point se rempli correctement. Pour insérer les blocs, j'utilise une méthode pas très jolie, mais qui avait fait ses preuves jusque là : (command "_insert" bloc pt (* coef 1.0) (* coef 1.0) 0 att ) Lorsque je tape "_-insert" directement dans Autocad pour insérer un bloc, sur un poste où le lisp fonctionne j'ai bien la question de l'attribut qui apparait à la fin (après l'angle de rotation). Mais sur le poste où le lisp ne fonctionne pas, la question de l'attribut n'est pas posée et je ne peux donc pas l'indiquer. Je tenté de contourner le problème à l'aide d'une fonction que j'ai trouvé sur ce forum : ;*** Fonction pour Remplacer valeur d'un attribut (defun rem_att (n_ent etiq valeur / ent1 test test1) (while (/= test "SEQEND") (if (/= test1 etiq) (progn (setq test (cdr (assoc 0 (entget n_ent)))) (setq test1 (cdr (assoc 2 (entget n_ent)))) (setq n_ent (entnext n_ent)) ) (progn (setq test "SEQEND") (setq ent1 (entget n_ent)) (setq ent1 (subst (cons 1 valeur) (assoc 1 ent1) ent1)) (entmod ent1) ) ) ) ) [...] (command "_insert" bloc pt (* coef 1.0) (* coef 1.0) 0 ) (rem_att (entlast) "LETTRE" att) Mais même résultat... Quelqu'un a-t-il une idée de ce qui pourrait bloquer les attributs dans Autocad ? Je pense qu'il doit s'agir d'une variable d'environnement que j'ai dû modifier, mais laquelle ? Merci d'avance.
didier Posté(e) le 5 novembre 2017 Posté(e) le 5 novembre 2017 Coucou Je ne vais sans doute pas te faire plaisir : IL NE FAUT PAS COPIER COLLER POUR APPRENDRE, cette phrase par contre tu peux la copier ! puisque tu te présentes sur un autre message comme voulant "progresser". Que contient la variable bloc ? le nom de bloc sous forme de chaîne de caractères ? À tout hasard, regarde tes cases à cocher dans la case de dialogue "insérer un bloc"Ton bloc est toujours le même ? pas de modifications ? pas de mode "constant" dans l'attribut ? Essaie de faire passer ton bloc en pièce jointe sur le forum Amicalement Éternel débutant... Mon site perso : Programmer dans AutoCAD
Aligol Posté(e) le 5 novembre 2017 Auteur Posté(e) le 5 novembre 2017 Merci de ta réponse. Oui la variable bloc est définie par : (or (tblsearch "BLOCK" (setq bloc "num")) (findfile (setq bloc "num.dwg")) ) Sachant que le bloc existe dans le dessin au préalable, donc il s'agit bien de la chaîne de caractère désignant le bloc. A priori pas de modification dans le bloc puisque après la découverte du bug, j'ai relancé le lisp dans mon prototype et le bloc est déjà présent dans le dessin (il ne va pas chercher justement un bloc commun dans "num.dwg"). Donc les deux dessins, et les deux blocs étaient a priori indépendants. Là depuis mon poste, je lance le même lisp dans le même prototype (donc le même bloc) et ça fonctionne bien. L'idée de l'attribut en constant est une bonne idée, mais lorsque je passe exprès mon attribut en constant et que je lance mon lisp après, le chiffre se décale et ne se trouve plus encerclé, hors je n'avais pas ce problème. Le bloc : https://www.dropbox..../num.dwg?dl=0 (l'ajout du fichier joint directement n'a pas fonctionné)
(gile) Posté(e) le 5 novembre 2017 Posté(e) le 5 novembre 2017 Lorsque je tape "_-insert" directement dans Autocad pour insérer un bloc, sur un poste où le lisp fonctionne j'ai bien la question de l'attribut qui apparait à la fin (après l'angle de rotation). Mais sur le poste où le lisp ne fonctionne pas, la question de l'attribut n'est pas posée et je ne peux donc pas l'indiquer. Regarde du côté de la variable système ATTREQ. 1 Gilles Chanteau - gileCAD - GitHub Développements sur mesure pour AutoCAD
didier Posté(e) le 5 novembre 2017 Posté(e) le 5 novembre 2017 Coucou Je ne comprends pas ton souci, ça fonctionne avec le fichier que tu as donnéTel que tu as expliqué je ne sais pas par où chercherEst-ce que att est aussi une chaîne de caractères ?ATTDIA ? ça change quelque chose ? Éternel débutant... Mon site perso : Programmer dans AutoCAD
Aligol Posté(e) le 5 novembre 2017 Auteur Posté(e) le 5 novembre 2017 Regarde du côté de la variable système ATTREQ. Super, je pense que c'est ça !Sur mon poste actuel, où je n'ai pas le problème, j'avais ATTREQ à 1. Quand je mets ATTREQ à 0 cela reproduit exactement le problème que j'avais. Et cette variable est bien indépendante du dessin (lorsque j'ouvre un autre dessin ATTREQ reste à 0).Pourtant j'avais vu ce post lors de mes recherches : http://cadxp.com/top...avec-attributs/ , j'avais bien fais attention à ATTDIA mais je n'avais pas pensé que ATTREQ pouvait donner ce genre de comportement...Je vérifierai la semaine prochaine sur l'ordinateur en question à savoir si c'était bien ça, mais je pense que oui, je viendrai confirmer. Merci beaucoup !
Aligol Posté(e) le 6 novembre 2017 Auteur Posté(e) le 6 novembre 2017 C'était bien la commande ATTREQ, merci beaucoup.
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