Aller au contenu

convertir textemulti en attribut


Aska Louna

Messages recommandés

Hello

 

Desires tu une routine qui transforme chacun des MTEXTs selectionnes

en un Bloc nomme par exemple "MTEXT_00XX" avec ZERO graphique dans le Bloc !

et UN seul Attribut = Contenu du MTEXT ...

Pour pouvoir apres jouer avec ATTIN / ATTOUT ??

 

LA SANTE, Bye, lecrabe "triste" ... Dans 3 jours la quille ...

Autodesk Expert Elite Team

Lien vers le commentaire
Partager sur d’autres sites

Hello

 

Desires tu une routine qui transforme chacun des MTEXTs selectionnes

en un Bloc nomme par exemple "MTEXT_00XX" avec ZERO graphique dans le Bloc !

et UN seul Attribut = Contenu du MTEXT ...

Pour pouvoir apres jouer avec ATTIN / ATTOUT ??

 

LA SANTE, Bye, lecrabe "triste" ... Dans 3 jours la quille ...

 

c'est tout à fait ça !!

disons qu'a l'origine j'ai une numérotation.

et qu'il faut que je mette à jour cette numérotation qui est bien plus longue et plus complexe.

et je me vois mal passer chaque texte un a un pour les modifier sachant que j'ai 12 000 textes à modifier...

 

merci de tes infos

Lien vers le commentaire
Partager sur d’autres sites

Hello

 

OK ... Peux tu decomposer tes MTEXTs en Texte simple ?

Sous entendu, TOUS les MTEXTs concernes pourraient etre en fait des TEXTs simples !?

 

Du genre un texte de un seul mot !

DONC 500 MTEXTs donneraient 500 TEXTs simples !

 

2eme question : il te faut bien N Blocs differents nommes "BLOC_001/_002/_003/_etc"

pour CHAQUE MTEXT / TEXT selectionne ??

 

OU toujours le même bloc "BLOC_TEXTE" ?

 

LA SANTE, Bye, lecrabe "triste" ... Dans 3 jours la quille ..

Autodesk Expert Elite Team

Lien vers le commentaire
Partager sur d’autres sites

Hello

 

OK ... Peux tu decomposer tes MTEXTs en Texte simple ?

Sous entendu, TOUS les MTEXTs concernes pourraient etre en fait des TEXTs simples !?

 

Du genre un texte de un seul mot !

DONC 500 MTEXTs donneraient 500 TEXTs simples !

 

2eme question : il te faut bien N Blocs differents nommes "BLOC_001/_002/_003/_etc"

pour CHAQUE MTEXT / TEXT selectionne ??

 

OU toujours le même bloc "BLOC_TEXTE" ?

 

LA SANTE, Bye, lecrabe "triste" ... Dans 3 jours la quille ..

 

Je peux effectivement décomposer mes textes multi en texte simple.

et il me faut le même "BLOC_TEXTE"

juste transformer mes textes en attributs histoire que je puisse exporter les blocs et changer le texte de l'attribut pour le remplacer depuis mon fichier excel.

 

merci de tes infos.

Lien vers le commentaire
Partager sur d’autres sites

Hello

 

BON j ai sorti de mon stock de 3000 routines, une routine "MText2AttBlock" qui devrait te convenir !?

 

Merci a Mr Tharwat pour sa routine "MText2AttBlock" !

 

---- Prerequis ----

Selectionner des MTEXTs

Avoir un Bloc (prealablement defini) nomme "ROOMTAG" (Eventellement sans aucun graphique) avec UN Attribut nomme "ROOMNO" !

ET HOP ca fonctionne ... J ai teste sur AutoCAD 2021 ...

 

LA SANTE, Bye, lecrabe "triste"

... Demain soir la retraite ...

 


;; 
;; Routine: MText2AttBlock by Tharwat
;; 
;; MTEXT to ROOMNO Attribute of the ROOMTAG Block
;;

(vl-load-com)

(defun c:MText2AttBlock (/ sel int ent att spc)
;; Tharwat - Date: 19.Jun.2017	;;
(if
  (and
    (or (tblsearch "BLOCK" "ROOMTAG")
        (alert "Attributed Block <ROOMTAG> is not found in drawing <!> ")
    )
    (princ "\nSelect MTexts to be replaced with Attributed Block <ROOMTAG> : ")
    (setq sel (ssget "_:L" '((0 . "MTEXT"))))
  )
   (progn
     (defun unformatmtext (string / text str)
       ;;	ASMI - sub-function			;;
       ;; Get string from Formatted Mtext string	;;
       (setq text "")
       (while (/= string "")
         (cond ((wcmatch (strcase (setq str (substr string 1 2)))
                         "\\[\\{}`~]"
                )
                (setq string (substr string 3)
                      text   (strcat text str)
                )
               )
               ((wcmatch (substr string 1 1) "[{}]")
                (setq string (substr string 2))
               )
               ((and (wcmatch (strcase (substr string 1 2)) "\\P")
                     (/= (substr string 3 1) " ")
                )
                (setq string (substr string 3)
                      text   (strcat text " ")
                )
               )
               ((wcmatch (strcase (substr string 1 2)) "\\[LOP]")
                (setq string (substr string 3))
               )
               ((wcmatch (strcase (substr string 1 2)) "\\[ACFHQTW]")
                (setq string (substr string
                                     (+ 2 (vl-string-search ";" string))
                             )
                )
               )
               ((wcmatch (strcase (substr string 1 2)) "\\S")
                (setq str    (substr string 3 (- (vl-string-search ";" string) 2))
                      text   (strcat text (vl-string-translate "#^\\" " " str))
                      string (substr string (+ 4 (strlen str)))
                )
                (print str)
               )
               (t
                (setq text   (strcat text (substr string 1 1))
                      string (substr string 2)
                )
               )
         )
       )
       text
     )
     (setq spc
            (vlax-get (vla-get-activelayout
                        (vla-get-activedocument (vlax-get-acad-object))
                      )
                      'block
            )
     )
     (repeat (setq int (sslength sel))
       (setq ent (ssname sel (setq int (1- int))))
       (and (setq att (vla-insertblock
                        spc
                        (vlax-3d-point (cdr (assoc 10 (entget ent))))
                        "ROOMTAG"
                        1.0
                        1.0
                        1.0
                        0.
                      )
            )
            (vl-some
              '(lambda (x)
                 (if (eq (strcase (vla-get-tagstring x)) "ROOMNO")
                   (progn (vla-put-textstring
                            x
                            (unformatmtext (cdr (assoc 1 (entget ent))))
                          )
                          t
                   )
                 )
               )
              (vlax-invoke att 'getattributes)
            ) 

            (entdel ent) ;; Delete MTEXT ?? 

       )
     )
   )
)
(princ)
)

Autodesk Expert Elite Team

Lien vers le commentaire
Partager sur d’autres sites

Hello

 

YES c la Quille ... J aurais tout mon temps pour "chasser" le Lyonnais !

 

Je vais rester ACTIF sur les forums US et Francophones ...

+ Toujours Alpha / Beta tester pour Autodesk ...

+ Autodesk Expert Elite ...

 

Difficle de changer apres 36 ans de AutoCAD , 26 de AutoCAD MAP ,

3/4 ans de REVIT / Infraworks ... Mais BON je serais MOINS present !

 

LA SANTE (Stay Safe, Stay Home, Stay Live), Bye, lecrabe "triste"

... ZERO au Compteur ...

Autodesk Expert Elite Team

Lien vers le commentaire
Partager sur d’autres sites

Ha la la...

 

Quant on est assez accro à son métier pour poster plus de 9100 messages sur un forum spécialisé on décroche pas comme ça. Tu devrais chercher des groupes de paroles, ça pourrais t'aider à t'en sortir, tout seul tu n'y arriveras pas.

Ou alors t'a qu'a rester avec nous, aprés tout, CadXP est une drogue qui n’entraîne pas d'effets secondaires nocifs sur le corps ou le cerveau.

 

Quoique, avec Autodesk...

Je suis dysorthographique alors lâchez-moi les basques avec ça, je fait déjà de mon mieux.
Membre d'Extinction Rebellion, car pour sauver le monde il n'est jamais trop tard, amour et rage !
Pour écrire un vraie point médian (e·x·e·m·p·l·e) [Alt + 0183] ou ajout d'un raccourci clavier personnalisé (ex. [AltGr + ;])

Utilisateur d'AutoCAD 2021 sous Windows 10

Lien vers le commentaire
Partager sur d’autres sites

Je peux effectivement décomposer mes textes multi en texte simple.

et il me faut le même "BLOC_TEXTE"

juste transformer mes textes en attributs histoire que je puisse exporter les blocs et changer le texte de Rachat de crédit et trésorerie pour le remplacer depuis mon fichier excel.

 

merci de tes infos.

Bonjour, comment vous avez décomposer vos textes multi en texte simple?

Lien vers le commentaire
Partager sur d’autres sites

  • 3 mois après...
Invité
Répondre à ce sujet…

×   Collé en tant que texte enrichi.   Coller en tant que texte brut à la place

  Seulement 75 émoticônes maximum sont autorisées.

×   Votre lien a été automatiquement intégré.   Afficher plutôt comme un lien

×   Votre contenu précédent a été rétabli.   Vider l’éditeur

×   Vous ne pouvez pas directement coller des images. Envoyez-les depuis votre ordinateur ou insérez-les depuis une URL.

×
×
  • 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é