Regrouper plusieurs fichiers/folios en un fichier

Fermé
Sebastien3489 Messages postés 14 Date d'inscription mardi 7 avril 2015 Statut Membre Dernière intervention 17 août 2015 - 7 avril 2015 à 14:54
 cricri1461 - 2 mai 2016 à 21:44
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.


A voir également:

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+
0
Sebastien3489 Messages postés 14 Date d'inscription mardi 7 avril 2015 Statut Membre Dernière intervention 17 août 2015
8 avril 2015 à 15:10
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.
0
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+
0
Sebastien3489 Messages postés 14 Date d'inscription mardi 7 avril 2015 Statut Membre Dernière intervention 17 août 2015 > Yoda
9 avril 2015 à 00:08
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
0
Yoda > Sebastien3489 Messages postés 14 Date d'inscription mardi 7 avril 2015 Statut Membre Dernière intervention 17 août 2015
9 avril 2015 à 01:07
Autocad n'accepte pas de nom de bloc avec le caractère "="
Change "=TD 2.1+01_6" en "TD 2.1+01_6"

A+
0
Sebastien3489 Messages postés 14 Date d'inscription mardi 7 avril 2015 Statut Membre Dernière intervention 17 août 2015
10 avril 2015 à 16:30
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
0
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)

       (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+
0
Sebastien3489 Messages postés 14 Date d'inscription mardi 7 avril 2015 Statut Membre Dernière intervention 17 août 2015
10 avril 2015 à 21:48
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 ;)
0
Yoda > Sebastien3489 Messages postés 14 Date d'inscription mardi 7 avril 2015 Statut Membre Dernière intervention 17 août 2015
10 avril 2015 à 22:19
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+
0
Sebastien3489 Messages postés 14 Date d'inscription mardi 7 avril 2015 Statut Membre Dernière intervention 17 août 2015
10 avril 2015 à 22:46
Yoga,
Je pense avoir trouvé l'erreur.
Par exemple :
Commande: (vl-sort '("folio 2.dwg" "folio 1.dwg" "folio 3.dwg" "folio 4.dwg"
"folio 10.dwg" "folio 5.dwg") '<)
("folio 1.dwg" "folio 10.dwg" "folio 2.dwg" "folio 3.dwg" "folio 4.dwg" "folio
5.dwg")
OR, il faudrait folio 1-2-3-4-10...

Merci.
0
Yoda > Sebastien3489 Messages postés 14 Date d'inscription mardi 7 avril 2015 Statut Membre Dernière intervention 17 août 2015
10 avril 2015 à 22:51
Pour ça, tu dois numéroter les folios sur 3 caractères
001, 002, 010, 100...999

ou encore commencer la numérotation à 100
100, 101, 102....999
0
Sebastien3489 Messages postés 14 Date d'inscription mardi 7 avril 2015 Statut Membre Dernière intervention 17 août 2015
13 avril 2015 à 22:06
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 ;)
0
Salut Sebastien3489

J'ai modifié le Lisp pour répondre à tes attentes.
En fait, j'en ai fait deux versions:
Une sans boucle qui va du point 4 au point 8.
Une avec boucle qui va du point 4 au point 9 et retourne au point 5.

Télécharge le fichier zip
http://cjoint.com/?EDouYkqne13

A+
0
Sebastien3489 Messages postés 14 Date d'inscription mardi 7 avril 2015 Statut Membre Dernière intervention 17 août 2015
16 avril 2015 à 14:50
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.
0
Yoda > Sebastien3489 Messages postés 14 Date d'inscription mardi 7 avril 2015 Statut Membre Dernière intervention 17 août 2015
16 avril 2015 à 15:22
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+
0
Sebastien3489
21 avril 2015 à 09:44
Yoda,
Désolé du retard mais j'étais en déplacement.
J'ai testé la macro et lorsque je vais chercher mon fichier témoin, il me renvoit toujours dans MES DOCUMENTS.

Cordialement,

Sébastien D.
0
Yoda > Sebastien3489
21 avril 2015 à 11:09
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+
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Sebastien3489 Messages postés 14 Date d'inscription mardi 7 avril 2015 Statut Membre Dernière intervention 17 août 2015
23 avril 2015 à 20:35
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
0
Salut,

Tu as fait une erreur de copie

(setq prefix (strcat (vl-filename-directory (getfiled "Sélectionner un fichier DWG TEMOIN" init-dir "dwg" 16)) "\\"))

init-dir est une variable et non un texte, donc il ne faut pas l'encadrer de guillemets ""

A+
0
Sebastien3489 Messages postés 14 Date d'inscription mardi 7 avril 2015 Statut Membre Dernière intervention 17 août 2015
24 avril 2015 à 10:09
Yoda,
Merci cela fonctionne ;)
Je pense qu'on est arrivé au bout de l'automatisation du processus ;)

Encore un tt grand merci ;)
0
Yoda > Sebastien3489 Messages postés 14 Date d'inscription mardi 7 avril 2015 Statut Membre Dernière intervention 17 août 2015
24 avril 2015 à 10:34
Pas de quoi ;)
Bonne continuation.
0
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
0