Aller au contenu

ATTRIBUTS Automatiques


Messages recommandés

Posté(e)

Bonjour à tous!

 

Je suis à la recherche d'une routine lisp/vlisp qui permettrait de remplir automatiquement la valeur d'un attribut commun à plusieurs blocs présents dans un jeu de sélection (ssget).

 

Merci :D

  • Upvote 1
Posté(e)

Coucou

 

Quatre messages, on peut encore te souhaiter la bienvenue, alors bienvenue à Toi sur ce site où tu devrais trouver de l'aide si tant est que tu poses les questions comme il faut.

 

Par exemple celle que tu nous soumets est mal posée

Si tu fais suivre un fichier dwg (wetransfer) dans lequel tu expliques quels sont les blocs concernés, les gens vont le télécharger et comprendre (ou pas ) ce qu'il y a à faire.

Ou bien tu expliques dans le détail ce qu'il y a à faire :

Il nous faut le nom du bloc, de quoi est-il fait ?

La position dans le bloc de l'attribut à renseigner (premier, deuxième..) ou mieux encore son étiquette

La valeur de ce qu'il faut mettre dedans

Est-ce du numérique qui s'incrémente, sont-ce des chaînes de caractères constantes, on ne peut pas savoir ce que tu ne dis pas.

 

Exemple de question bien posée

j'ai cent blocs de même nom insérés dans mon fichier (le bloc se nomme "matos")

en premier attribut il y a un type de matériel (chaine de caractère, étiquette : "type_matos")

en deuxième attribut ils ont la marque du fabricant (chaine de caractère, étiquette : "fabric")

nous venons de changer de fabricant et j'aimerais changer tous les noms actuellement en place par un autre

est-ce que vous avez un lisp.....

Amicalement

 

Posté(e)

Plus simplement:

 

Je possède un jeu de sélection (ssget) avec des blocs.

Certain de ces blocs possèdent l'attribut "toto"

Je souhaiterais automatiser l'écriture cet attribut avec un texte fixe.

 

:)

Posté(e)

Salut,

 

Une routine pour affecter une valeur à un attribut.

 

;;; GetAttValue
;;; Attribue une valeur à un attribut d'une référence de bloc
;;;
;;; Arguments
;;; blk : le nom d'entité du bloc
;;; tag : le nom de l'étiquette de l'attribut
;;; val : la valeur à attribuer

(defun SetAttValue (blk tag val / elst)
 (setq elst (entget (entnext blk)))
 (while (and elst (= "ATTRIB" (cdr (assoc 0 elst))))
   (setq elst 
   (if (= tag (cdr (assoc 2 elst)))
     (progn
       (entmod (subst (cons 1 val) (assoc 1 elst) elst))
       (entupd blk)
       nil
     )
     (entget (entnext (cdr (assoc -1 elst))))
   )
 )
)

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é