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.