pat06 Posté(e) le 21 novembre 2010 Partager Posté(e) le 21 novembre 2010 Bonjour, Je ne sais pas si ce sujet a déjà été traité ; je n'ai pas trouvé mon bonheur.... je recherche une fonction qui pourrait "copier" un texte" dans un attribut de bloc ; ces deux objets étant dans le même dessin. (Je dois renouveler cette opération par centaines par fichier). merci d'avance [Edité le 21/11/2010 par pat06] Lien vers le commentaire Partager sur d’autres sites More sharing options...
lili2006 Posté(e) le 21 novembre 2010 Partager Posté(e) le 21 novembre 2010 Bonjour à toutes et tous, Sans lisp, tu peux toujours copier ton bloc dans un autre calque (_copytolayer), puis passer les attributs en textes grâce à la commande des Express Tools (_burst), pour ensuite ne filtrer que les textes sur ce calque et supprimer les entités restantes des blocs,... Civil 3D 2025 - COVADIS_18.3b https://www.linkedin...3%ABt-95313341/ Lien vers le commentaire Partager sur d’autres sites More sharing options...
pat06 Posté(e) le 21 novembre 2010 Auteur Partager Posté(e) le 21 novembre 2010 Bonsoir, En fait, j'ai des blocs sans attributs, ainsi que des textes qui désignent des adresses pour ces blocs (des renseignements techniques). ces textes sont posés à côté des blocs.j'ai édité les blocs en y ajoutant un attribut dans lequel je dois mettre le texte "technique". un simple copier-coller serait suffisant pour quelques blocs... mais j'en ai des quantités trop importantes... Lien vers le commentaire Partager sur d’autres sites More sharing options...
fabcad Posté(e) le 21 novembre 2010 Partager Posté(e) le 21 novembre 2010 Voila une fonction que j'avais fait il y a longtemps :Bonne soirée, (defun c:txt2att ( / obj-txt chn obj-att att-tag att-val obj-blc blc-val) (setq obj-txt (nentsel "\n Choisir le texte de reference : ")) (setq chn (cdr (assoc 1 (entget (car obj-txt))))) (setq obj-att (nentsel "\n Choisir l'attribut à modifier : ")) (setq att-tag (cdr (assoc 2 (entget (car obj-att))))) (setq att-val (cdr (assoc 1 (entget (car obj-att))))) (alert (strcat "\nEtiquette de l'attribut : " att-tag ".\n" "Valeur de " att-tag " : " att-val ".\n" "Nouvelle valeur de " att-tag " : " chn ".")) (command "_attedit" "oui" "" att-tag att-val (car obj-att) "v" "r" chn "") (entdel (car obj-txt)) ) Lien vers le commentaire Partager sur d’autres sites More sharing options...
pat06 Posté(e) le 22 novembre 2010 Auteur Partager Posté(e) le 22 novembre 2010 Bonjour, et merci beaucoup pour ton lisp.. tout à fait ce qu'il me fallait. Bien amicalement. Lien vers le commentaire Partager sur d’autres sites More sharing options...
lili2006 Posté(e) le 25 novembre 2010 Partager Posté(e) le 25 novembre 2010 Bonjour à toutes et tous, Très efficace ton lisp fabcad, Merci, :P Civil 3D 2025 - COVADIS_18.3b https://www.linkedin...3%ABt-95313341/ Lien vers le commentaire Partager sur d’autres sites More sharing options...
DenisHen Posté(e) le 3 août 2015 Partager Posté(e) le 3 août 2015 Bonjour à tous, Bon, je sais, je dépoussière un peu... Je dois me faire le même genre de LiSP mais mon problème est que dans mon bloc, il y a plus de vingt attributs (donc, impossible de les rendre tous "visibles") et l'attribut que je souhaite changer est vide. Donc, impossible de le sélectionner... Comment faire pour chercher l'attribut "PROFONDEUR" et lui attribuer la valeur de ma variable "Prof" ET AUSSI l'attribut "Z-PROF" avec la valeur "Zprof" ? Voici ce que j'étais en train de faire :(defun c:DHTamp_Prof_SDDEA (/ SelBlk dxf-1 Ztn TxtProf Prof ZProf) (princ "\nVersion 2.17\n") ;;Sélection du texte contenant la profondeur (setq Txt_Prof (car (entsel "\nSélectionnez la profondeur :"))) (wcmatch (cdr (assoc 0 (setq elst (entget Txt_Prof)))) "*") (setq Prof (atof (cdr (assoc 1 elst)))) ;;Sélection du bloc (setq SelBlk (car (entsel "\nSélectionnez le bloc 'regardasst' :"))) ;;récupération de l'attribut "Z-TN" (while (= Ztn nil) (setq SelBlk (entnext SelBlk)) (setq dxf-1 (entget SelBlk)) (if (and (= (cdr (assoc 0 dxf-1)) "ATTRIB") (= (cdr (assoc 2 dxf-1)) "Z-TN")) (setq Ztn (cdr (assoc 1 dxf-1))) ) ;_ Fin de if ) ;_ Fin de while (setq Ztn (atof Ztn)) ;;Calcul du Z-PROF (setq ZProf (- ZTn Prof)) (princ (strcat "\nZ-PROF=" (rtos ZProf))) ;; ;;-------------------------------------------------------------------C'est là que je me perd... ;;Attribution de la profondeur TxtProf dans l'attribut "PROF" du bloc (foreach dxf-1 (setq dxf-1 (entget SelBlk)) (cond (and (= (cdr (assoc 0 dxf-1)) "ATTRIB") (= (cdr (assoc 2 dxf-1)) "PROFONDEUR")) (Mettre ICI la valeur Prof de l 'étiquette PROFONDEUR) ) ;_ Fin de cond (cond (and (= (cdr (assoc 0 dxf-1)) "ATTRIB") (= (cdr (assoc 2 dxf-1)) "Z-PROF")) (Mettre ICI la valeur ZProf de l 'étiquette Z-PROF) ) ;_ Fin de cond ) ;_ Fin de while ) ;_ Fin de defun Et bravo à FabCad pour ce code... Denis... Windows 11 / AutoCAD 2024 Sur terre, il y a 10 types de personnes, celles qui comptent en binaire et les autres (developpez.net). Davantage d'avantages, avantagent davantage (Bobby Lapointe). La connaissance s'accroît quand on la partage (Socrate). Tant va la cruche à l'eau que l'habit n'amasse pas mousse avant de l'avoir tué. (Moi) Lien vers le commentaire Partager sur d’autres sites More sharing options...
Patrick_35 Posté(e) le 3 août 2015 Partager Posté(e) le 3 août 2015 Salut Je te laisse méditer un peu ;)(vla-get-textstring (nth 15 (vlax-invoke (vlax-ename->vla-object SelBlk) 'getattributes))) @+ Les Lisps de PatrickLe but n'est pas toujours placé pour être atteint, mais pour servir de point de mire.Joseph Joubert, 1754-1824 Lien vers le commentaire Partager sur d’autres sites More sharing options...
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