Aller au contenu

Messages recommandés

Posté(e)

Bonjours,

 

J'essaye d'ecrire un lisp qui me permetrait d'inserer des xrefs selon le nom du fichiers ouvert.

je vais essayer de m'expliquer. .............................(goutte qui tombe du nez)..............

 

Dans un fichiers (qui contient la mise en page) je regroupe tout le temps 5 xrefs dans l'objet.

(en superposition et chemin d'accés relatif a 0,0)

 

- XXNXXXXXXXX-01

- XXRXXXXXXXX-01

 

- XXXXXXXXXXFUN1

- XXXXXXXXXXGRD1

- XXXXXXXXXXNET1

 

Sur une année entiere, je n'ose calculer le temps passé dans l'explorer pour rapatrier les xrefs quand j'en edite une.

 

Exemple : Je veux editer le NET, il faut que l'ouvre et que je 'attache les autres.

a mince il ya une connerie sur l'un, je l'ouvre et j'attache les autres....

 

Le but est qu'en une seul commande les quatres autres xrefs soit inserer.

 

Pour récuperer le nom du fichier:

 

(setq name (getvar "dwgname"))

 

Jusque la tout vat bien :angel:

 

(setq troisem (substr nbcarname 3 1)) ;Extraction du 3em caractere

 

(setq onzem (substr nbcarname 11 1)) ;Extraction du 11em caractere

 

(setq dixetonzem (substr nbcarname 10 2)) ;Extraction du 10 et 11em caractere

 

 

(if (= troisem "R") or (= troisem "N")

 

(inserer tout les dwg contenu dans ..\T"dixetonzem"\Xref\ et ceux contenu dans le dossier du fichier sauf lui meme)

(inserer tout les dwg contenu dans ..\..\FDP\ et ceux contenu dans le dossier du fichier sauf lui meme)

)

Comment utilisé XATTACH sans boite de dialogue?

Quelle sont donc les fonctions permettant d'aller fouillez dans les dossiers? findfile?

et comment utilisé une variable dans un chemin? (dixetonzem)?

 

Merci

Posté(e)

Bonjour Fraid,

 

Pour utiliser _XATTACH en ligne de commande, tu dois mettre la variable FILEDIA à 0.

Cette variable permet d'utiliser presque toutes les commandes utilisant des boîtes de dialogues à partir de la ligne de commande. je crois qu'il n'y a que la commande QSELECT qui ne peut pas être utilisée en ligne de commande.

 

Pour la recherche dans un dossier, j'ai récupéré ces routines lisp qui permettent de faire des recherches dans des dossier (je crois que ça viens de (gile))

 

;;; GET-SUBDIRS - retourne tous les sous-dossier d'un dossier
;;;   path = chemin d'accès complet du dossier
(defun get-subdirs (path)
 (apply (quote append)
 (cons (list path)
       (mapcar '(lambda (x) (get-subdirs (strcat path x "\\")))
	       (cddr (vl-directory-files path nil -1))
       )
 )
 )
)

;;; GET-DIR - retourne le chemin du dossier recherché
;;;   pth = dossier de départ pour la recherche
;;;   che = dossier à rechercher
(defun get-dir (pth che / func file)
 (defun func (path cherche / dir)
   (setq dir (cddr (vl-directory-files path nil -1)))
   (mapcar '(lambda (x)
       (if (vl-string-search (strcase cherche) (strcase x))
	 (setq file (cons (strcat path x "\\") file)
	       dir  'nil
	 )
	 (func (strcat path x "\\") cherche)
       )
     )
    dir
   )
   file
 )
 (if (and pth che)
   (func pth che)
 )
)

;;; GET-FILES-SUBDIRS - retourne une liste des fichiers contenu dans le dossier et sous-dossier
;;;   RootPath = chemin du dossier
;;;   ext = extension des fichiers à lister
(defun get-files-subdirs (RootPath ext)
 (foreach path	(get-subdirs RootPath)
   (setq ListFilesFullPath
   (append ListFilesFullPath
	   (mapcar '(lambda (fileName) (strcat path fileName))
		   (vl-directory-files path ext 1)
	   )
   )
   )
 )
)

 

Bonne journée

www.le-metal.net, sur la métallerie

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é