jifi Posté(e) le 2 juillet 2008 Posté(e) le 2 juillet 2008 Salut à tous, Dans la suite de mes premiers lisps, voici une autre fonction pour laquelle votre contribution sera la bienvenue. Je cherche à créer une fonction qui réinitialise les facteurs d'échelle x,y,z d'un bloc à la valeur 1. Voici le début de mon code : (defun c:reinitbloc (/ ss lst1 anclistex nouvlistex) (setq ss (entsel "\nChoix du bloc : ")) (setq lst1 (entget (car ss))) (setq anclistex (cdr (assoc 41 lst1))) (setq nouvlistex (subst '(1) anclistex lst1)) (entmod nouvlistex) ) J'ai réussi à touver le code DXF des valeurs d'échelle x,y,z mais je ne sais pas comment utiliser les fonctions SUBST et ENTMOD. J'espère que je suis sur la bonne voie, @plus Jean-Philippe - Formateur / Dessinateur sur AutoCAD et MEP http://www.git-cad.ch
(gile) Posté(e) le 2 juillet 2008 Posté(e) le 2 juillet 2008 Re, Tu dois utiliser la fonction subst sur la liste lst1 pour remplacer l'élément (assoc 41 lst1) qui est une paire pointée par une autre paire pointée : '(41 . 1.0).Puis passer la liste ainsi modifiée comme argument à entmodIl faut peut-être aussi mettre à jour le bloc avec entupd (pas testé) (setq lst1 (subst '(41 . 1.0) (assoc 1 lst1) lst1)) (entmod lst1) (entupd (car ss)) 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