Aller au contenu

extraction de texte et pas d\'attribut


nordine1970

Messages recommandés

salut tout le monde

je profite de ma venu ici pour vous poser une colle que je n'arrive pas à resoudre

 

j'ai pas mal de texte sur un dessin ( en l'occurence de la numerotation de cable) que m'a fait un sous traitant pour qui le mot BLOC avec attribut serait synonyme de recherche du SCHTROUMPF rasta.

Mon probleme est que je voudrait extraire tout ces textes et les envoyer sur un fichier excel que je créer, a part lancer une "list" des textes que je veux puis copier coller trier sur excelet supprimer les lignes que je ne veux pas, je voudrait automatiser cette tache

j'oubliais juste un petit detail j'ai environ 650 fichiers avec presque une centaine de texte à exporté, donc fastidieux et chiant et bien sur pas le temps

alors please help me

merci d'avance

 

Lien vers le commentaire
Partager sur d’autres sites

C'est du spécifique, je peux te le faire à la fin de la semaine (à moins que quelqu'un d'autre se décide), mais si tu veux aller plus vite, regarde déjà et et faire une recherche sur du texte

 

@+

 

[Edité le 25/4/2005 par Patrick_35]

Les Lisps de Patrick

Le 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

Bonjour,

Si tu n'as qu'AutoCAD, c'est très dommage !

Par contre si tu peux te procurer soit un Autodesk MAP ou un Autodesk CIVIL 3D

c'est hyper rapide. (moins de 5mn pour tes 650 fichiers)

 

il suffit de :

1) créer un nouveau dessin

2) dans le menu MAP associer tes 650 fichiers

3) définir une requête de type PROPRIETES qui récupère la valeur des textes et qui créé un fichier "rapport.txt" (ce fichier contiendra le contenu des textes)

4) ce fichier "rapport.txt" peut ensuite être ouvert dans EXCEL pour effectuer tes tris

 

Tu peux mettre à jour ton AutoCAD vers MAP ou CIVIL3D

Cordialement,

Sus

;)

Lien vers le commentaire
Partager sur d’autres sites

Comme promis, le prog est fait. Il ne reste plus qu'à faire un script pour traiter tous tes fichiers

 

@+

 

(defun c:TxtExc(/ Old_Error)

 (defun *errtxt* (msg)
   (if (/= msg "Function cancelled")
     (if (= msg "quit / exit abort")
       (princ)
       (princ (strcat "\nErreur : " msg))
     )
     (princ)
   )
   (setq *error* Old_Error)
   (vla-endundomark (vla-get-activedocument (vlax-get-acad-object)))
   (princ)
 )

 (defun Liaison_Excel(/ Chemin_Excel Environ Version_Excel)
   (if (setq Chemin_Excel (vl-registry-read "HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\App Paths\\Excel.EXE" "Path"))
     (progn
       (foreach Environ (list "SYSTEMROOT" "WINDIR" "WINBOOTDIR" "SYSTEMDRIVE" "USERNAME" "COMPUTERNAME" "HOMEDRIVE" "HOMEPATH" "PROGRAMFILES")
         (if (vl-string-search (strcat "%" Environ "%") Chemin_Excel)
           (setq Chemin_Excel (vl-string-subst (strcase (getenv Environ)) (strcat "%" Environ "%") Chemin_Excel))
         )
       )
       (if (= (vl-string-elt Chemin_Excel (1- (strlen Chemin_Excel))) 92)
         (setq Chemin_Excel (strcat Chemin_Excel "Excel.exe"))
         (setq Chemin_Excel (strcat Chemin_Excel "\\Excel.exe"))
       )
       (cond
         ((findfile (vl-string-subst "Excel8.olb" "Excel.exe" Chemin_Excel))
           (setq Chemin_Excel (vl-string-subst "Excel8.olb" "Excel.exe" Chemin_Excel))
         )
         ((findfile (vl-string-subst "Excel9.olb" "Excel.exe" Chemin_Excel))
           (setq Chemin_Excel (vl-string-subst "Excel9.olb" "Excel.exe" Chemin_Excel))
         )
         ((findfile (vl-string-subst "Excel10.olb" "Excel.exe" Chemin_Excel))
           (setq Chemin_Excel (vl-string-subst "Excel10.olb" "Excel.exe" Chemin_Excel))
         )
       )
       (cond
         ((= (strcase (vl-filename-base (vl-filename-directory Chemin_Excel))) "OFFICE11")
           (setq Version_Excel "2003")
         )
         ((= (strcase (vl-filename-base (vl-filename-directory Chemin_Excel))) "OFFICE10")
           (setq Version_Excel "XP")
         )
         ((= (strcase (vl-filename-base Chemin_Excel)) "EXCEL8")
           (setq Version_Excel "97")
         )
         ((= (strcase (vl-filename-base Chemin_Excel)) "EXCEL9")
           (setq Version_Excel "2000")
         )
       )
       (if (not Version_Excel)
         (setq Chemin_Excel nil)
       )
     )
   )
   (list Chemin_Excel Version_Excel)
 )

 (defun Txt->Excel(/ Boucle Ent Excel_Lance Js Objet_Excel Rng Xl Xl_Classeur Xl_Feuilles Xl_Feuille_Active)
   (if (car (setq Objet_Excel (Liaison_Excel)))
     (progn
       (princ (strcat "\nConnexion avec Excel " (cadr Objet_Excel)))
       (princ)
       (if (setq Xl (vlax-get-object "Excel.Application"))
         (setq Excel_Lance T)
         (setq Xl (vlax-create-object "Excel.Application"))
       )
       (if Xl
         (progn
           (if (null Xl-open)
             (vlax-import-type-library
               :tlb-filename (car Objet_Excel)
               :methods-prefix "Xl-"
               :properties-prefix "Xlp-"
               :constants-prefix "Xlc-")
           )
           (if (not Excel_Lance)
             (vlax-invoke-method (vlax-get-property Xl 'WorkBooks) 'Add)
           )
           (setq Xl_Classeur (vlax-get-property XL "ActiveWorkbook"))
           (setq Xl_Feuilles (vlax-get Xl_Classeur "Sheets"))
           (setq Boucle 1)
           (while (<= Boucle (xlp-get-count Xl_Feuilles))
             (if (= (xlp-get-name (xlp-get-item Xl_Feuilles Boucle))(getvar "dwgname"))
               (progn
                 (setq Xl_Feuille_Active (xlp-get-item Xl_Feuilles Boucle))
                 (xl-activate Xl_Feuille_Active)
               )
             )
             (setq Boucle (1+ Boucle))
           )
           (if (not Xl_Feuille_Active)
             (progn
               (setq Xl_Feuille_Active (xl-add (vlax-get Xl_Classeur "Sheets")))
               (xlp-put-name Xl_Feuille_Active (getvar "dwgname"))
             )
           )
           (princ (strcat "\nTravail dans le " (xlp-get-fullname Xl_Classeur) " ,Feuille " (xlp-get-name Xl_Feuille_Active)))
           (princ)
           (vla-put-visible Xl 1)
           (setq Boucle 0)
           (setq Js (ssget "x" (list (cons 0 "*MTEXT,TEXT"))))
           (while (ssname Js Boucle)
             (setq Ent (entget (ssname Js Boucle)))
             (setq Rng (xlp-get-range Xl_Feuille_Active (strcat "A" (itoa (1+ Boucle)))))
             (xlp-put-value Rng (cdr (assoc 1 Ent)))
             (setq Boucle (1+ Boucle))
           )
           (vla-put-visible (vlax-get-acad-object) 1)
           (princ (strcat ", Exportation de " (itoa Boucle) " texte(s)"))
         )
       )
     )
     (princ "\nVersion d'excel inconnue ou non installée")
   )
 )

 (vl-load-com)
 (vla-startundomark (vla-get-activedocument (vlax-get-acad-object)))
 (setq Old_Error *error* *error* *errtxt*)
 (Txt->Excel)
 (setq *error* Old_Error)
 (vla-endundomark (vla-get-activedocument (vlax-get-acad-object)))
 (princ)
)

(princ "\nExportation de Textes vers Excel chargé....Tapez TXTEXC")
(princ)

Les Lisps de Patrick

Le 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

  • 10 mois après...
  • 2 ans aprè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 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é