Regrouper plusieurs fichiers/folios en un fichier
Sebastien3489
Messages postés
14
Date d'inscription
Statut
Membre
Dernière intervention
-
cricri1461 -
cricri1461 -
Bonjour à tous,
Dessinant des plans électriques sur un logiciel tierce, lors de la conversion en .dwg de l'ensemble de mes folios, un fichier est créé par folio.
Ex : si j'ai 5 folios, j'ai donc 5 fichiers.
Certains clients étant un peu récalcitrant à l'idée d'avoir un fichier par folio, je regroupe toujours ceux-ci, l'un a coté de l'autre manuellement.
Quant il y a 5 folios, ca va. Quand il y en a 30, cela devient moins facile.
Nos folios ont toujours un format type, soit A4 paysage, soit A3 paysage.
Est-il possible de réaliser une macro sous AUTOCAD permettant au logiciel d'aller chercher tous les fichiers dans un dossier sélectionné et de me les mettre dans l'ordre du dossier l'un à coté de l'autre?
J'ai déjà trouvé quelque chose sur d'autres forums, mais j'ai toujours une erreur malheureusement.
Merci.
Dessinant des plans électriques sur un logiciel tierce, lors de la conversion en .dwg de l'ensemble de mes folios, un fichier est créé par folio.
Ex : si j'ai 5 folios, j'ai donc 5 fichiers.
Certains clients étant un peu récalcitrant à l'idée d'avoir un fichier par folio, je regroupe toujours ceux-ci, l'un a coté de l'autre manuellement.
Quant il y a 5 folios, ca va. Quand il y en a 30, cela devient moins facile.
Nos folios ont toujours un format type, soit A4 paysage, soit A3 paysage.
Est-il possible de réaliser une macro sous AUTOCAD permettant au logiciel d'aller chercher tous les fichiers dans un dossier sélectionné et de me les mettre dans l'ordre du dossier l'un à coté de l'autre?
J'ai déjà trouvé quelque chose sur d'autres forums, mais j'ai toujours une erreur malheureusement.
Merci.
A voir également:
- Regrouper plusieurs fichiers/folios en un fichier
- Fichier bin - Guide
- Fichier epub - Guide
- Comment réduire la taille d'un fichier - Guide
- Fichier rar - Guide
- Fichier .dat - Guide
5 réponses
Bonjour,
Je t'oriente vers un site qui semble avoir déjà traité ce problème.
http://cadxp.com/topic/26514-assembler-plusieurs-dwg-en-1-seul/
Sinon, montre ce que tu as trouvé et qui ne marche pas, je pourrais peut être corriger cette macro.
A+
Je t'oriente vers un site qui semble avoir déjà traité ce problème.
http://cadxp.com/topic/26514-assembler-plusieurs-dwg-en-1-seul/
Sinon, montre ce que tu as trouvé et qui ne marche pas, je pourrais peut être corriger cette macro.
A+
Merci.
J'ai testé cette solution :
https://cadxp.com/#entry46469
(2eme post)
Malheureusement, j'ai une erreur:
Définition à double du bloc EPLFRAME ignorée.
; erreur: Erreur Automation Clé introuvable
Merci à toi.
Sébastien D.
J'ai testé cette solution :
https://cadxp.com/#entry46469
(2eme post)
Malheureusement, j'ai une erreur:
Définition à double du bloc EPLFRAME ignorée.
; erreur: Erreur Automation Clé introuvable
Merci à toi.
Sébastien D.
Salut,
Le message Définition à double du bloc EPLFRAME ignorée indique seulement que le bloc EPLFRAME existe déjà dans le dessin courant et tu tentes d'insérer un dessin qui contient un bloc de même nom et ce dernier ne sera pas redéfini. Ce n'est pas une erreur, juste un avertissement.
J'ai essayé le lisp et il fonctionne. Par contre la modif proposée dans le post suivant contient une erreur:
Puisque que ton objet est en vlisp, tu pourrais aussi faire
(vla-move ojb (vlax-3d-point '(0.0 0.0 0.0)) (vlax-3d-point next_ins))
au lieu de
(command "_.move" (entlast) "" "_none" ll "_none" next_ins)
Il faut mettre
(vla-move obj (vlax-3d-point '(0.0 0.0 0.0)) (vlax-3d-point next_ins))
En espérant t'avoir aidé. A+
Le message Définition à double du bloc EPLFRAME ignorée indique seulement que le bloc EPLFRAME existe déjà dans le dessin courant et tu tentes d'insérer un dessin qui contient un bloc de même nom et ce dernier ne sera pas redéfini. Ce n'est pas une erreur, juste un avertissement.
J'ai essayé le lisp et il fonctionne. Par contre la modif proposée dans le post suivant contient une erreur:
Puisque que ton objet est en vlisp, tu pourrais aussi faire
(vla-move ojb (vlax-3d-point '(0.0 0.0 0.0)) (vlax-3d-point next_ins))
au lieu de
(command "_.move" (entlast) "" "_none" ll "_none" next_ins)
Il faut mettre
(vla-move obj (vlax-3d-point '(0.0 0.0 0.0)) (vlax-3d-point next_ins))
En espérant t'avoir aidé. A+
Yoda,
Par hasard, j'ai changé le nom de mes fichiers et cela semble fonctionner.
Mes fichiers sont sous l'appelation de type : "=TD 2.1+01_6" avec
- =TD 2.1 le nom du tableau
- +01 la révision du schéma
- _6 pour folio 6
En changeant de nom, cela fonctionne. Est-il possible que cela fonctionne avec ce même nom de fichier, nom généré par mon logiciel de dessin?
Aussi, le folio repris est composé d'un bloc et je ne sais le dissocier. Le client ne sait donc pas faire de modification lorsqu'il voudra faire son As-built. J'ai essayé de tout sélectionner et dissocier mais sans succès.
J'ai fais la modification mais mes folios ne sont plus l'un à coté de l'autre.
Merci beaucoup en tt cas. Je pense que je vais enfin trouver une solution à mon problème.
Sébastien
Par hasard, j'ai changé le nom de mes fichiers et cela semble fonctionner.
Mes fichiers sont sous l'appelation de type : "=TD 2.1+01_6" avec
- =TD 2.1 le nom du tableau
- +01 la révision du schéma
- _6 pour folio 6
En changeant de nom, cela fonctionne. Est-il possible que cela fonctionne avec ce même nom de fichier, nom généré par mon logiciel de dessin?
Aussi, le folio repris est composé d'un bloc et je ne sais le dissocier. Le client ne sait donc pas faire de modification lorsqu'il voudra faire son As-built. J'ai essayé de tout sélectionner et dissocier mais sans succès.
J'ai fais la modification mais mes folios ne sont plus l'un à coté de l'autre.
Merci beaucoup en tt cas. Je pense que je vais enfin trouver une solution à mon problème.
Sébastien
Merci ;)
Effectivement, cela fonctionne. J'ai réussi à extraire mes .dwg avec comme nom : 1.dwg, 2.dwg, ... et cela est encore plus simple.
Par contre, comment Autocad choisit l'ordre d'insertion des fichiers? En effet, il me les insère dans un ordre qui n'est pas logique...
Est-il possible d'imposer un ordre d'insertion? Fichier 1.dwg puis 2.dwg, ... jusque 100-200?
Merci
Effectivement, cela fonctionne. J'ai réussi à extraire mes .dwg avec comme nom : 1.dwg, 2.dwg, ... et cela est encore plus simple.
Par contre, comment Autocad choisit l'ordre d'insertion des fichiers? En effet, il me les insère dans un ordre qui n'est pas logique...
Est-il possible d'imposer un ordre d'insertion? Fichier 1.dwg puis 2.dwg, ... jusque 100-200?
Merci
Salut,
La liste est créée telle qu'elle est retournée par le système.
Pour obtenir une liste triée il faut utiliser une fonction de tri.
Heureusement, il en existe une toute faite, vl-sort
voilà comment modifier le programme (une seule ligne à modifier)
A+
La liste est créée telle qu'elle est retournée par le système.
Pour obtenir une liste triée il faut utiliser une fonction de tri.
Heureusement, il en existe une toute faite, vl-sort
voilà comment modifier le programme (une seule ligne à modifier)
(setq
lst_dwg (vl-sort (vl-directory-files prefix "*.dwg" 1) '<)
next_ins pt_ins
delta_x 0.0
delta_y 0.0
last_pt nil
)
A+
Salut,
Malheureusement, cela ne fonctionne pas.
Il m'injecte toujours les fichiers dans le désordre.
J'ai essayé de changer le nom du fichier en folio 1.dwg, folio 2.dwg mais sans succès...
Mon lisp : https://www.wetransfer.com/downloads/33987be8e39b8c06f7f08b8f0a9aaa5920150410193705/5b46529fab6d45de6a27986dfd97c1f520150410193705/c95bbc
Merci ;)
Malheureusement, cela ne fonctionne pas.
Il m'injecte toujours les fichiers dans le désordre.
J'ai essayé de changer le nom du fichier en folio 1.dwg, folio 2.dwg mais sans succès...
Mon lisp : https://www.wetransfer.com/downloads/33987be8e39b8c06f7f08b8f0a9aaa5920150410193705/5b46529fab6d45de6a27986dfd97c1f520150410193705/c95bbc
Merci ;)
As-tu bien enregistré le fichier modifié?
As-tu bien rechargé le nouveau lisp?
Entre cette ligne de code sur la ligne de commande d'autocad
(vl-sort '("folio 2.dwg" "folio 1.dwg") '<)
normalement tu devais voir ce resutat, preuve que ça marche
("folio 1.dwg" "folio 2.dwg")
Recharge bien le lisp modifié. A+
As-tu bien rechargé le nouveau lisp?
Entre cette ligne de code sur la ligne de commande d'autocad
(vl-sort '("folio 2.dwg" "folio 1.dwg") '<)
normalement tu devais voir ce resutat, preuve que ça marche
("folio 1.dwg" "folio 2.dwg")
Recharge bien le lisp modifié. A+
Yoda,
J'ai fais une série de test et cela semble fonctionner ;)
Je change le nom de mes fichiers via une macro sur Excel et Autocad me place les fichiers dans l'ordre demandé ;).
Par contre, dans un but d'automatiser encore un peu plus, est-il possible de lancer l'application et que celle-ci fonctionne comme ca:
1.J'ouvre Autocad (OK maintenant)
2. Je charge la macro (OK maintenant)
3. Je lance la macro (OK maintenant)
4. Je choisis le point d'ins. + format
5. Je sélectionne le fichier (OK maintenant)
6. L'ensemble des folios s'insère (OK maintenant)
7. La macro sélectionne l'ensemble des folios + lancement de la fonction DECOMPOS (J'ai cherché une piste mais sans succès) (Actuellement, je fais ctrl+a + DECOMPOS)
8. La macro ouvre la fenêtre d'enregistrement pour enregistrer le fichier
9. La macro efface l'ensemble des folios et retour au point 5 pour une deuxième série de plans en gardant le point d'insertion + format
Merci ;)
J'ai fais une série de test et cela semble fonctionner ;)
Je change le nom de mes fichiers via une macro sur Excel et Autocad me place les fichiers dans l'ordre demandé ;).
Par contre, dans un but d'automatiser encore un peu plus, est-il possible de lancer l'application et que celle-ci fonctionne comme ca:
1.J'ouvre Autocad (OK maintenant)
2. Je charge la macro (OK maintenant)
3. Je lance la macro (OK maintenant)
4. Je choisis le point d'ins. + format
5. Je sélectionne le fichier (OK maintenant)
6. L'ensemble des folios s'insère (OK maintenant)
7. La macro sélectionne l'ensemble des folios + lancement de la fonction DECOMPOS (J'ai cherché une piste mais sans succès) (Actuellement, je fais ctrl+a + DECOMPOS)
8. La macro ouvre la fenêtre d'enregistrement pour enregistrer le fichier
9. La macro efface l'ensemble des folios et retour au point 5 pour une deuxième série de plans en gardant le point d'insertion + format
Merci ;)
Yoda,
j'ai testé la boucle et cela semble nickel.
Y a-t-il possibilité qu'autocad garde en mémoire le chemin d'accès de la liste des fichiers?
En effet, lorsque j'enregistre chaque série de folio, Autocad conserve le chemin d'accès par contre, pour ouvrir le fichier "témoin", je dois toujours traverser mes dossiers et sous-dossier pour y arriver.
Merci.
j'ai testé la boucle et cela semble nickel.
Y a-t-il possibilité qu'autocad garde en mémoire le chemin d'accès de la liste des fichiers?
En effet, lorsque j'enregistre chaque série de folio, Autocad conserve le chemin d'accès par contre, pour ouvrir le fichier "témoin", je dois toujours traverser mes dossiers et sous-dossier pour y arriver.
Merci.
Salut
Essaye en modifiant ces lignes
(defun c:cahier_bloc ( / old_osmd prefix pt_ins pt_tmp lst_dwg n dx dy loop key pt pt_last obj ll ur lg loop init-dir);modifier cette ligne
;
;
;
(setq loop "Oui")
(setq init-dir "");rajouter cette ligne
(while (= loop "Oui")
(setq prefix (strcat (vl-filename-directory (getfiled "Sélectionner un fichier DWG TEMOIN" init-dir "dwg" 16)) "\\"));modifier cette ligne
A+
Essaye en modifiant ces lignes
(defun c:cahier_bloc ( / old_osmd prefix pt_ins pt_tmp lst_dwg n dx dy loop key pt pt_last obj ll ur lg loop init-dir);modifier cette ligne
;
;
;
(setq loop "Oui")
(setq init-dir "");rajouter cette ligne
(while (= loop "Oui")
(setq prefix (strcat (vl-filename-directory (getfiled "Sélectionner un fichier DWG TEMOIN" init-dir "dwg" 16)) "\\"));modifier cette ligne
A+
Bonjour Sebastien3489
Effectivement, j'ai oublié d'affecter le nom du répertoire à init-dir
Il faut encore ajouter une ligne juste après (setq prefix....) :
(setq prefix (strcat (vl-filename-directory (getfiled "Sélectionner un fichier DWG TEMOIN" init-dir "dwg" 16)) "\\"))
(setq init-dir prefix)
Voilà. A+
Effectivement, j'ai oublié d'affecter le nom du répertoire à init-dir
Il faut encore ajouter une ligne juste après (setq prefix....) :
(setq prefix (strcat (vl-filename-directory (getfiled "Sélectionner un fichier DWG TEMOIN" init-dir "dwg" 16)) "\\"))
(setq init-dir prefix)
Voilà. A+
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Yoda,
Malheureusement, sans succès.
J'ai uploadé ma macro mais je pense que tt est bon.
Merci
https://www.wetransfer.com/downloads/3a58a186f6d54dc91bf5e62052326b1420150423181650/77e9dd0737e33a2c78b459415fc5847620150423181650/212552
Malheureusement, sans succès.
J'ai uploadé ma macro mais je pense que tt est bon.
Merci
https://www.wetransfer.com/downloads/3a58a186f6d54dc91bf5e62052326b1420150423181650/77e9dd0737e33a2c78b459415fc5847620150423181650/212552
Bonjour sébastien3489
je fais actuellement des schémas électrique et je recherche également une manipulation pour regrouper tous les folios de schémas électrique en un seul fichier. (1 seul fichier est beaucoup plus pratique pour les clients surtout avec une petite centaine de pages!)
J'ai essayé de faire toutes les modifications de ton post et de bien d'autres postes, mais cela ne fonctionne pas!
Pourrais-tu partager ta lisp?
Merci
je fais actuellement des schémas électrique et je recherche également une manipulation pour regrouper tous les folios de schémas électrique en un seul fichier. (1 seul fichier est beaucoup plus pratique pour les clients surtout avec une petite centaine de pages!)
J'ai essayé de faire toutes les modifications de ton post et de bien d'autres postes, mais cela ne fonctionne pas!
Pourrais-tu partager ta lisp?
Merci