Aller au contenu

nom des onglets


julbute

Messages recommandés

Salut,

vite fait :

Tu ouvres le plan, tu lance le code, cela te crés un fichier "ONGLETS.TXT" sous C: avec le nom des onglets.

Tu copies ce que contiens ce fichier ou tu veux.

puis tu passes à un autre fichier... (le fichier txt sera écrasé à chaque fois)

on peux faire beaucoup mieux (traiter plusieurs fichiers ouvert, ceux d'un même répertoire, etc... mais si c'est pour une utilisation ponctuel, cela dois suffire... fais le savoir !)

 

(defun c:lstong (/ F I LST-ONG)
 (setq lst-ong (layoutlist)
f (open "c://ONGLETS.TXT" "w")
i -1)
 (repeat (length lst-ong)
   (princ (strcat (nth (setq i (1+ i)) lst-ong) "\n") f)
 )
(close f)
 )

Si vous êtes persuadés de tout savoir sur un sujet, c''est que vous en ignorez quelque chose...

Lien vers le commentaire
Partager sur d’autres sites

Salut

 

Bred a été le plus rapide ;)

 

Je mets quand même le mien car il traite tout les fichiers d'un répertoire

 

(defun c:lstlay(/ dirbox Ouvrir_dessin_dbx fichier file rep lst fic dbx lay tmp)

 (defun dirbox(/ cdl rep)
   (if (setq cdl (vlax-create-object "Shell.Application"))
     (progn
(and (setq rep (vlax-invoke cdl 'browseforfolder 0 "Choisissez le répertoire à traiter" 512 ""))
     (setq rep (vlax-get-property (vlax-get-property rep 'self) 'path))
)
(vlax-release-object cdl)
     )
   )
   rep
 )

 (defun Ouvrir_dessin_dbx(dwg / dbx doc lan rel)
   (and (setq dwg (findfile dwg))
     (progn
(vlax-for doc (vla-get-documents (vlax-get-acad-object))
  (and (eq (strcase (vla-get-fullname doc)) (strcase dwg))
    (setq dbx doc lan T)
  )
)
(and (not dbx)
  (setq dbx (vlax-create-object (if (< (setq rel (atoi (getvar "ACADVER"))) 16)
				  "ObjectDBX.AxDbDocument"
				  (strcat "ObjectDBX.AxDbDocument." (itoa rel))
				)
	    )
  )
  (vla-open dbx dwg)
)
     )
   )
   (list dbx lan)
 )


 (vl-load-com)
 (if (setq rep (dirbox))
   (if (setq lst (vl-directory-files rep "*.dwg" 1))
     (progn
(setq fichier (strcat rep "\\Liste_Présentations.txt")
      file (open fichier "w")
      tmp "|"
)
(princ (strcat "\nTravail en cours......." tmp))(princ)
(foreach fic lst
  (if (car (setq dbx (ouvrir_dessin_dbx (strcat rep "/" fic))))
    (progn
      (write-line (strcat "Fichier " rep "\\" fic) file)
      (vlax-for lay (vla-get-layouts (car dbx))
	(cond
	  ((eq tmp "|")(setq tmp "/"))
	  ((eq tmp "/")(setq tmp "-"))
	  ((eq tmp "-")(setq tmp "\\"))
	  ((eq tmp "\\")(setq tmp "|"))
	)
	(princ (strcat (chr 8) tmp))(princ)
	(or (= (vla-get-name lay) "Model")
	  (write-line (strcat "\t" (vla-get-name lay)) file)
	)
      )
      (write-line "" file)
      (or (cadr dbx)(vlax-release-object (car dbx)))
    )
    (write-line (strcat "Ne peux pas lire le fichier " rep "\\" fic) file)
  )
)
(close file)
(princ (strcat (chr 8) "OK\nEcriture du fichier " fichier))
     )
     (alert "Pas de dessins.")
   )
 )
 (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

Ok j'ai essayé ta macro lili 2006,

c'est exactement ce qu'il me faut, la seul petite modif qui serait bien se serait qu'il y est en face de chaque présentation le nom du dessin.

Cela permettrait de filtrer les données et de retrouver d'un seul clic toutes les présentations correspondant à chaque dessin.

J'aimerai pouvoir quand même essayer ta routine patrick 35.

Merci

Roger

Lien vers le commentaire
Partager sur d’autres sites

Ok j'ai essayé ta macro lili 2006,

c'est exactement ce qu'il me faut, la seul petite modif qui serait bien se serait qu'il y est en face de chaque présentation le nom du dessin.

Cela permettrait de filtrer les données et de retrouver d'un seul clic toutes les présentations correspondant à chaque dessin.

J'aimerai pouvoir quand même essayer ta routine patrick 35.

Merci

Roger

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é