CADxp: extraction texte - CADxp

Aller au contenu

Page 1 sur 1
  • Vous ne pouvez pas commencer un sujet
  • Vous ne pouvez pas répondre à ce sujet

extraction texte

#1 L'utilisateur est hors-ligne   philsogood 

  • ceinture noire 4em dan
  • Groupe : Membres
  • Messages : 2202
  • Inscrit(e) : 03-mars 10

Posté 20 juin 2018 - 07:52

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 génie climatique - traitement de l'air
0

#2 L'utilisateur est hors-ligne   lecrabe 

  • ceinture rouge et blanche 8em dan
  • Groupe : Moderateurs
  • Messages : 8056
  • Inscrit(e) : 10-décembre 03
  • LocationLoire (42)

Posté 20 juin 2018 - 07:54

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
0

#3 L'utilisateur est hors-ligne   philsogood 

  • ceinture noire 4em dan
  • Groupe : Membres
  • Messages : 2202
  • Inscrit(e) : 03-mars 10

Posté 21 juin 2018 - 08:06

yes, ça marche super bien
Encore merci!! ;)
Phil
Projeteur génie climatique - traitement de l'air
0

#4 L'utilisateur est hors-ligne   lecrabe 

  • ceinture rouge et blanche 8em dan
  • Groupe : Moderateurs
  • Messages : 8056
  • Inscrit(e) : 10-décembre 03
  • LocationLoire (42)

Posté 21 juin 2018 - 09:58

Hello

On dit d'abord un GRAND MERCI Gilles !

Et apres seulement un petit Merci a Patrice ...

Bye, lecrabe
Autodesk Expert Elite Team
0

Partager ce sujet :


Page 1 sur 1
  • Vous ne pouvez pas commencer un sujet
  • Vous ne pouvez pas répondre à ce sujet

1 utilisateur(s) en train de lire ce sujet
0 membre(s), 1 invité(s), 0 utilisateur(s) anonyme(s)