Aller au contenu

extraction texte


philsogood

Messages recommandés

hello

mes gentils collègues ont fait un schéma sauf qu'au lieu de mettre des blocs avec attributs pour nommer le matériel ils sont mis du MTEXT (on fera pas de commentaire sur la méthode...)

savez-vous comment je peux extraire dans un fichier txt tous les MTEXT que contient ce fichier?

Phil

Projeteur Revit Indépendant - traitement des eaux/CVC

Lien vers le commentaire
Partager sur d’autres sites

Bonjour Le Lyonnais

 

Un Stephanois aide un Lyonnais : incroyable !?

 

Comme d'habitude nous remercierons le Grand Maitre Gilles !

 

SVP tu nous dis si la routine est OK ?

 

Et sur quelle version de AutoCAD tu la fais tourner ?

 

OUI je sais la routine sort TOUTES les Informations des Textes, MTextes, etc ...

DONC tu rentres TOUT cela dans Excel et tu ne gardes que la colonne du Contenu du Texte !

 

Bye, lecrabe

 

PS: ET hop une petite routine extraite du stock de 2000 routines ...

 

 


;; 
;; Par GC vs 1.00 - Routine:  Export-Text 
;; http://cadxp.com/index.php?/topic/17190-export-textmtextattributs-en-fichier-texte/page__pid__208003 
;; Exporter dans un fichier externe le contenu des Textes, MTextes et Attributs 
;; avec qq proprietes: Compteur, Type, Calque, Style, X, Y, Z, Justification, Hauteur, Rotation, Valeur/Contenu 
;; avec choix du Separateur  de colonnes/champs ... 
;; 

(vl-load-com) 

(defun c:Export-Text (/ ss path sep file n elst lst typ jus vert ins)
 (and
   (princ
     "\nSélectionner les textes (ou Entrée pour \"Tout\")."
   )
   (or (setq ss (ssget '((0 . "*TEXT,INSERT"))))
       (setq ss (ssget "_X" '((0 . "*TEXT,INSERT"))))
   )
   (setq path (getfiled "Fichier d'exportation des textes"
                        (getvar "DWGPREFIX")
                        "*"
                        1
              )
   )
   (or (and (= (strcase (vl-filename-extension path) T) ".xls")
            (setq sep "\t")
       )
       (and (member (strcase (vl-filename-extension path) T)
                    '(".txt" ".csv")
            )
            (setq sep (getstring "\Entrez le séparateur: "))
       )
   )
   (setq file (open path "w"))
   ;; En-tête =======================================;;
   (write-line
     (strcat "Compteur" sep "Type"     sep       "Calque"  sep       "Style"   sep
             "X"       sep       "Y"       sep       "Z"       sep
             "Justification"     sep       "Hauteur" sep       "Rotation"
             sep       "Valeur"
            )
     file
   )
   ;;================================================;;
   (repeat (setq n (sslength ss))
     (setq elst (entget (ssname ss (setq n (1- n)))))
     (if (= (cdr (assoc 0 elst)) "INSERT")
       (if (and (= (cdr (assoc 66 elst)) 1)
                (setq att (entnext (cdr (assoc -1 elst))))
           )
         (while (= (cdr (assoc 0 (entget att))) "ATTRIB")
           (setq lst (cons (entget att) lst)
                 att (entnext att)
           )
         )
       )
       (setq lst (cons elst lst))
       )
     )
   (mapcar
     (function
       (lambda (elst)
         (setq typ  (cdr (assoc 0 elst))
               vert (cond
                      ((= typ "TEXT") 73)
                      ((= typ "ATTRIB") 74)
                    )
         )
         (cond
           ((member typ '("TEXT" "ATTRIB"))
            (setq jus (cond
                        ((= (cdr (assoc vert elst)) 3) "H")
                        ((= (cdr (assoc vert elst)) 2) "M")
                        ((= (cdr (assoc vert elst)) 1) "B")
                        (T "")
                      )
                  jus (cond
                        ((= (cdr (assoc 72 elst)) 0) (strcat jus "G"))
                        ((= (cdr (assoc 72 elst)) 1) (strcat jus "C"))
                        ((= (cdr (assoc 72 elst)) 2) (strcat jus "D"))
                        ((= (cdr (assoc 72 elst)) 3) (strcat jus "A"))
                        ((= (cdr (assoc 72 elst)) 4) (strcat jus "M"))
                        (T (strcat jus "P"))
                      )
                  ins (if (= jus "G")
                        (trans (cdr (assoc 10 elst)) (cdr (assoc 210 elst)) 0)
                        (trans (cdr (assoc 11 elst)) (cdr (assoc 210 elst)) 0)
                      )
            )
           )
           ((= typ "MTEXT")
            (setq jus (cond
                        ((< (cdr (assoc 71 elst)) 4) "H")
                        ((< (cdr (assoc 71 elst)) 7) "M")
                        (T "B")
                      )
                  jus (cond
                        ((member (cdr (assoc 71 elst)) '(1 4 7)) (strcat jus "G"))
                        ((member (cdr (assoc 71 elst)) '(2 5 8)) (strcat jus "C"))
                        (T (strcat jus "D"))
                      )
                  ins (cdr (assoc 10 elst))
            )
           )
           (T
            (setq jus "G"
                  ins (cdr (assoc 10 elst))
            )
           )
         )
         (write-line
           (strcat (itoa (setq n (1+ n)))
                   sep
                   (cdr (assoc 0 elst))
                   sep
                   (cdr (assoc 8 elst))
                   sep
                   (cdr (assoc 7 elst))
                   sep
                   (rtos (car ins))
                   sep
                   (rtos (cadr ins))
                   sep
                   (rtos (caddr ins))
                   sep
                   jus
                   sep
                   (rtos (cdr (assoc 40 elst)))
                   sep
                   (angtos (cdr (assoc 50 elst)))
                   sep
                   (cdr (assoc 1 elst))
           )
           file
         )
       )
     )
     lst
   )
   (close file)
 )
 (princ)
)  

Autodesk Expert Elite Team

Lien vers le commentaire
Partager sur d’autres sites

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é