Fraid Posté(e) le 16 août 2010 Posté(e) le 16 août 2010 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 https://github.com/Fraiddd
Titifonky Posté(e) le 17 août 2010 Posté(e) le 17 août 2010 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
Fraid Posté(e) le 17 août 2010 Auteur Posté(e) le 17 août 2010 Merci beaucoup C'est exactement ce que je cherchais :D https://github.com/Fraiddd
Messages recommandé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 compteSe connecter
Vous avez déjà un compte ? Connectez-vous ici.
Connectez-vous maintenant