Aller au contenu

Réinitialisation du facteur d\'échelle d\'un bloc


Messages recommandés

Posté(e)

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

Posté(e)

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 à entmod

Il 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

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 compte

Se connecter

Vous avez déjà un compte ? Connectez-vous ici.

Connectez-vous maintenant
×
×
  • Créer...

Information importante

Nous avons placé des cookies sur votre appareil pour aider à améliorer ce site. Vous pouvez choisir d’ajuster vos paramètres de cookie, sinon nous supposerons que vous êtes d’accord pour continuer. Politique de confidentialité