siculo Posté(e) le 28 décembre 2017 Posté(e) le 28 décembre 2017 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 1
didier Posté(e) le 28 décembre 2017 Posté(e) le 28 décembre 2017 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éeSi 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 étiquetteLa valeur de ce qu'il faut mettre dedansEst-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éej'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 autreest-ce que vous avez un lisp.....Amicalement Éternel débutant... Mon site perso : Programmer dans AutoCAD
siculo Posté(e) le 28 décembre 2017 Auteur Posté(e) le 28 décembre 2017 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. :)
(gile) Posté(e) le 28 décembre 2017 Posté(e) le 28 décembre 2017 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
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