Aller au contenu

Renommer fichier / texte présentation


drault

Messages recommandés

-Autocad MAP 3D 2018-

 

Bonjour,

 

Dans le cadre d'une utilisation d'autocad avec 1 fichier = 1 Plan où chaque fichier reçoit la numérotation de la position dans le dossier et au sein du fichier, onglet présentation, un texte indique aussi la numérotation de la position dans le dossier, existe-t-il un logiciel ou un Lisp pour traiter tout ou partie de la question ?

 

Dans l'attente d'un retour, je reste disponible pour compléter si besoin,

 

Merci la communauté et belle journée,

Lien vers le commentaire
Partager sur d’autres sites

Hello

 

Franchement je n'ai pas tout compris !?

 

Si tu veux re-organiser / trier / renommer / deplacer / etc, tes Presentations,

je te conseille l excellente routine "TabSort" de Lee-Mac !

http://www.lee-mac.com/tabsort.html

 

Voir aussi la routine "RenumberLayouts" :

http://www.lee-mac.com/renumberlayouts.html

 

MERCI au Grand Maitre Lee-Mac !!

 

La Sante, Bye, lecrabe "fatigue"

Autodesk Expert Elite Team

Lien vers le commentaire
Partager sur d’autres sites

Hello

 

Franchement je n'ai pas tout compris !?

 

Si tu veux re-organiser / trier / renommer / deplacer / etc, tes Presentations,

je te conseille l excellente routine "TabSort" de Lee-Mac !

http://www.lee-mac.com/tabsort.html

 

Voir aussi la routine "RenumberLayouts" :

http://www.lee-mac.com/renumberlayouts.html

 

MERCI au Grand Maitre Lee-Mac !!

 

La Sante, Bye, lecrabe "fatigue"

 

Wow, puissant ! Merci pour les tips.

 

En l’occurrence, ce n'était pas le souci.

Mon problème se situe en amont et en aval.

Je souhaiterai renommer mes DWG rapidement par un programme, on touche à l'interface windows.

Ensuite, je cherche à renommer de manière macro, en ayant ouvert tous mes DWG (ils ont tous une seule présentation), chaque texte indiquant le numéro de page.

 

Si toujours pas clair, je peux faire des imprimes écran.

Lien vers le commentaire
Partager sur d’autres sites

Bonjour,

 

Il faut pouvoir récupérer le texte en question.

Si il n'a pas de particularité, cela va être difficile.

C'est une des raisons pour utiliser des attributs en page de garde

si il a toujours la même position peut etre...

 

Merci pour ton retour.

 

Oui, l'emplacement est toujours le même.

Que changerait l'attribut ?

Lien vers le commentaire
Partager sur d’autres sites

Oui, l'emplacement est toujours le même.

 

donne nous ces coordonnées, et nous pourrons te faire un ptit lisp.

 

Que changerait l'attribut ?

 

La, comme ça, difficile de t'expliquer tout les avantages.

il te manque donc une formation...

mais déjà, les fonctions pour lire les attributs existent,

pas pour ton texte.

Lien vers le commentaire
Partager sur d’autres sites

Bonjour,

 

Malgré le silence, je partage ma p'tite chose.

 

;;Ressources
(vl-load-com)
;;;c:renameDwgByTxt
;;;Renomme les dwg d'un dossier par un texte présent dans l'espace papier.
;;;Ouvrir un des dwg (il ne seras pas traité), taper renameDwgByTxt et choisir le texte (doit avoir la même position dans chaque dessin)
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(defun c:RenameDwgByTxt (/ getvlatext axdoc lf dir pos posobj txt cpt cmd)
;;Fonctions internes
   ;;;getvlatext
   ;;;Retourne le VLA-OBJECT d'un texte sélectionné
   (defun getvlatext ( / obj ename vlaobj)
       (while (/= "TEXT" obj);tant qu'un texte n'est pas sélectionné
           (princ "\nSélectionnez le texte de référence.")
           (setq ename (ssname (ssget "_:S+.") 0);"_:S+." permet de sélectionner un seul objet
                 obj (cdr (assoc 0 (entget ename)))
                 vlaobj (vlax-ename->vla-object ename)
           )
       );while
   );defun getvlatext
;;Variables Autocad
   (setq cmd (getvar 'cmdecho))
   (setvar 'cmdecho 0)
;;Principal
   (and (setq cpt 0;Compteur
              dir (getvar 'dwgprefix);Chemin du dossier du dessin ouvert
              lf (vl-directory-files dir "*.dwg" 1);Liste des dwg dans le dossier
        )
        (setq  pos (vlax-get 'textalignmentpoint  (getvlatext)));Position du texte de référence
        (foreach f lf;Pour chaque dwg
           (if (and (/= f (getvar 'dwgname))(setq axdoc (getaxdbdoc (strcat dir f))));Si ce n'est pas le dessin en cours, on entre dans le fichier
            (progn
               (vlax-for obj (vla-get-paperspace axdoc);Pour chaque objet présent dans l'espace papier
                     (and  (= (vla-get-objectname obj) "AcDbText");Si c'est un texte
                           (setq posobj (vlax-get 'textalignmentpoint  obj));position du texte
                           (= (fix(*(car pos)100)) (fix(*(car posobj)100)));si position des textes egal
                           (= (fix(*(cadr pos)100)) (fix(*(cadr posobj)100)))
                           (setq txt (vla-get-textstring obj));String du texte
                           (not (wcmatch txt "*.dwg"));Si le texte ne se termine pas par .dwg
                           (setq txt (strcat txt ".dwg"));Rajout de .dwg
                     );and
               );vlax
               (vlax-release-object axdoc);Réalisation par Fraiddd :)
               (command "_.delay" 200);Une petite pose s'impose
               (if (and txt (vl-file-rename (strcat dir f) (strcat dir txt)));Si l
                   (setq cpt (1+ cpt) txt nil)
               );if
               (command "_.delay" 200);une 2ème moins sur
            );progn
           );if
        );foreach
   );and
;;Sortie
   (setvar 'cmdecho cmd)
   (if (= cpt 0)
       (princ "\nEchec, aucun fichier renommé.");Try again
       (princ (strcat "\nOpération réussie, " (itoa cpt) " fichiers renommés."))
   );if    
   (princ);Sortie propre
);defun
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;Accèder à un dessin fermé
(defun getaxdbdoc (filename / axdbdoc release)
 (setq axdbdoc
    (vlax-create-object
      (if (< (setq release (atoi (getvar "ACADVER"))) 16)
        "ObjectDBX.AxDbDocument"
        (strcat "ObjectDBX.AxDbDocument." (itoa release))
      )
    )
 )
 (if (vl-catch-all-apply 'vla-open (list axdbdoc filename))
   (not (vlax-release-object axdbdoc))
   axdbdoc
 )
)
 

 

Il ne faut pas ouvrir tous les fichiers,

mais un seul dans lequel il faut choisir le texte en question.

le fichier ouvert n'est pas traité.

J'ai fait un effort de commentaires pour ceux qui se lancent.

Je trouve que nous sommes de moins en moins nombreux à Lisper.

A tantôt

Lien vers le commentaire
Partager sur d’autres sites

Pourquoi es tu obligé de "délayer" 2 fois ?

 

quand j'ai testé j'ai eu un effet d’emballement.(les derniers fichiers n’étaient pas renommés)

mon pc qui me sert à programmer est un fer à repasser...

j' en ai mis 2 pour être sur.

je pense qu'il peut sauter.

Peut être que cela fonctionne sans du tout de pause avec Windows 10

suis encore sur 7

 

cela va te faire 3002 routines!!!!!

Lien vers le commentaire
Partager sur d’autres sites

  • 3 semaines après...
On 03/03/2021 at 19:33, Fraid said:

 

donne nous ces coordonnées, et nous pourrons te faire un ptit lisp.

 

 

La, comme ça, difficile de t'expliquer tout les avantages.

il te manque donc une formation...

mais déjà, les fonctions pour lire les attributs existent,

pas pour ton texte.

Effectivement.

Pourrais-tu me rediriger vers une que tu connais ?

Ou tout du moins, une page reprenant la question des attributs, avant et inconvénients ?

 

Pour revenir sur ton LSIP, merci, je vais tester et te dire.

 

Effectivement, il faudrait un jour que je me mette au LISPage ou tout du moins au codage.

aurais-tu peut-être un site pour des explications pas à pas ?

Ou sinon, j'irais sur youtube.

 

Merci

Lien vers le commentaire
Partager sur d’autres sites

  • 3 semaines après...
  • 3 semaines après...
  • 3 semaines après...

Merci pour ta contribution.

Petit retour:

-Pour le moment, j'essaie de dégrossir le travail du BE où je travaille. Je regarderais plus en détail comment me former sur les LISP ensuite.

-le LISP ne marche pas où tout du moins, je n'arrive pas à le faire marcher. Si c'est un bout de code, alors je le stock, merci. Si c'est un LISP prêt à l'emploi sûrement que je m'y prends mal.

Pour reformuler mon besoin. Au sein de la collectivité où nous sommes, on a une charte de nommage mais bien souvent elle n'est pas respectée, je cherche donc à macro gérer le nommage des fichers dwg.

Je peux donc faire un .txt pour chaque affaire/dossier nécessitant un renommage pour tous les dwg inclus dedans ou mettre le texte en question dans l'espace objet d'un des fichiers.

Si une piste se dégage, je suis preneur.

Bonne journée,

 

Lien vers le commentaire
Partager sur d’autres sites

Bonjour @drault

On en fait des efforts pour comprendre, mais perso je lis et je relis et je doute encore, de là à répondre il y a un manque d'information.
Merci de faire le point de ce qu'on a et de ce qu'on veut.
Du style :
Dans un fichier dessin, j'ai un texte (un attribut serait plus facile) et la valeur contenue dans ce texte doit être le nom qui servira à renommer le fichier dans lequel est ce texte.

Exemple :
Un bloc avec attribut ou un texte qui contient "Plan Troisième étage" dans le fichier "immeuble.dwg" fera que le fichier immeuble.dwg sera renommé en "Plan Troisième étage.dwg"

Est-ce bien ça ?

Ce serait plus facile avec un bloc, car on peut interroger la totalité du dessin et trouver le bloc, pour un texte c'est beaucoup plus empirique, coordonnées d'insertion par exemple, il est déplacé d'un dixième d'entité dessin et on ne le trouve plus.

Amicalement

 

 

Lien vers le commentaire
Partager sur d’autres sites

Merci pour ton retour Didier. J'avais cette phrase de Montesquieu en tête, la faute est à moitié à celui qui parle à moitié à celui qui écoute. J'ose pas dire quand on écrit...😄😅

 

Tu as tout à fait comprit la demande ou alors, j'ai mieux compris comment il faut que je reformule.

Effectivement, dans le processus de travail définir un bloc dans lequel je définis un ou des attributs pour lequel j'indique le nom définitif du fichier m'irait.

le nommage du dwg aurait la forme suivante

LEVA_COLL DANTON_61008_R00_PRO_MOA_2020 => VILLE_TYPE_NUMERO_ETAGE_ETAT_PRODUCTEUR_ANNEE

Effectivement avec ces attribut dans un bloc, je peux me débrouiller.

Merci

 

Lien vers le commentaire
Partager sur d’autres sites

Bonjour @drault

Effectivement plus la question est explicite plus elle a de chances de trouver réponse.
Je n'ai pas vu ce le LSP de @Fraid
Si tu ne t'en sors pas reviens à la charge avec des explications sur ce qui ne fonctionne pas.

Amicalement

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é