CADxp: Redéfinir en masse des blocs - CADxp

Aller au contenu

Page 1 sur 1
  • Vous ne pouvez pas commencer un sujet
  • Vous ne pouvez pas répondre à ce sujet

Redéfinir en masse des blocs Comment mettre à jour des blocs rapidement ?

#1 L'utilisateur est hors-ligne   nbk67 

  • ceinture verte
  • Groupe : Membres
  • Messages : 57
  • Inscrit(e) : 21-février 12
  • LocationPARIS

Posté 14 juin 2012 - 09:54

Bonjour,

Je travaill actuellement sur un projet où je suis obligé de faire un fichier par niveau vu l'ampleur du batiment.

Il se trouve que tous les luminaires insérés, étaient mal fait et ne correspondaient pas à ce dont j'avais besoin (point d'insertion, attributs essentiellement).

J'ai donc modifié ces blocs comme je le voulais dans le premier niveau.

Ma question est : Y a t-il un moyen de mettre à jour d'une manière rapide, les blocs dans tous les autres fichiers sans avoir à passer par la méthode wbloc dans le premier fichier pour chaque bloc, et ensuite d'insérer à chaque fois les blocs 1 par 1 et d'autoriser la redéfinition dans chaque fichier... ??

Pour info :
Je n'ai pas créé de nouveaux blocs, j'ai édité dans le dessin donc les noms correspondent.

Par avance merci.

Bonne journée.

Nico.
AutoCAD 2015
0

#2 L'utilisateur est hors-ligne   patrick.albinet 

  • ceinture noire
  • Groupe : Membres
  • Messages : 394
  • Inscrit(e) : 30-avril 10
  • LocationMontpellier

Posté 14 juin 2012 - 10:34

Et si tu fais un copier coller du bloc ?

- Tu copies tes polylignes et autres de ton bloc (en etant dans l'editeur de bloc) avec un point de base

- tu ouvres le bloc que tu veux modifier dans ton autre fichier (outil \ editeur de bloc) puis tu effaces ce qu'il y a dedans en collant ensuite tes nouvelles infos. Ca modifie tous te sblocs d'un coup.

Par contre, il vaut mieux ne pas toucher au point d'insertion ou le faire après avec une routine.

Si tu la veux je peux te la passer.

A part ca, je ne vois rien d'autre de plus rapide.
0

#3 L'utilisateur est hors-ligne   nbk67 

  • ceinture verte
  • Groupe : Membres
  • Messages : 57
  • Inscrit(e) : 21-février 12
  • LocationPARIS

Posté 14 juin 2012 - 10:50

ça fonctionnerait, mais le soucis étant que j'ai une cinquantaine de blocs comme ça et 10 fichiers à traiter ...
Ce qui veut dire que j'aurais la manip' à faire 500 fois !! sans compter le déplacement du point d'insertion ...

Et en ce qui concerne le point d'insertion, j'ai aussi qq lisps qui font ça ...
Merci quand même.

++

Nico
AutoCAD 2015
0

#4 L'utilisateur est hors-ligne   jalna 

  • ceinture noire 4em dan
  • Groupe : Membres
  • Messages : 2408
  • Inscrit(e) : 19-septembre 05
  • LocationMulhouse

Posté 14 juin 2012 - 10:58

Salut
Et avec ATTSYNC

Résumé

Vous devez entrer le nom des blocs que vous souhaitez mettre à jour avec les attributs courants de ces blocs.

Utilisez cette commande pour mettre à jour toutes les occurrences d'un bloc contenant des attributs et redéfini à l'aide des commandes BLOC ou BEDIT. ATTSYNC ne change pas les valeurs affectées aux attributs dans les blocs existants.

RemarqueUtilisez la commande ATTREDEF pour redéfinir les blocs et les mettre à jour avec une seule commande.Si vous entrez ?, une liste de toutes les définitions de bloc du dessin s'affiche. Entrez le nom du bloc à mettre à jour.

Appuyez sur la touche ENTREE pour sélectionner le bloc dont vous souhaitez mettre à jour les attributs à l'aide du périphérique de pointage.

Si le bloc indiqué n'existe pas ou s'il ne contient pas d'attribut, un message d'erreur s'affiche et vous êtes invité à sélectionner un autre bloc.

AvertissementLa commande ATTREDEF supprime toutes les modifications de format ou de propriété apportées à l'aide des commandes ATTEDIT ou EATTEDIT. Elle supprime également toutes les données étendues associées au bloc et peut avoir un effet sur les blocs dynamiques et les blocs créés dans des applications tierces.
<br class="Apple-interchange-newline">
"Je suis fasciné par l'air. Si on enlevait l'air du ciel, tous les oiseaux tomberaient par terre... Et les avions aussi... En même temps l'air tu peux pas le toucher... Ca existe et ça existe pas... Ca nourrit l'homme sans qu'il ait faim... It's magic ! L'air c'est beau en même temps tu peux pas le voir, c'est doux et tu peux pas le toucher... L'air, c'est un peu comme mon cerveau..."J-C Van Damme
Mon forum : http://plexus.forumactif.org/
0

#5 L'utilisateur est hors-ligne   nbk67 

  • ceinture verte
  • Groupe : Membres
  • Messages : 57
  • Inscrit(e) : 21-février 12
  • LocationPARIS

Posté 14 juin 2012 - 13:06

Pour ce qui est d'ATTSYNc, cela ne fonctionne pas.

En effet, quand j'insère avec design center tous mes blocs mis à jour, et que j'utilise attsync, tous les nouveaux blocs se remette avec l'ancienne définition ... celle du fichier courant. Au lieu du contraire...
AutoCAD 2015
0

#6 L'utilisateur est hors-ligne   bryce 

  • ceinture noire 4em dan
  • Groupe : Membres
  • Messages : 2151
  • Inscrit(e) : 03-mars 06
  • Location68 Mulhouse

Posté 14 juin 2012 - 14:06

Bonjour,

Si tu as AutoCAD 2012, tu pourras trouver sur Autodesk Exchange un plugin gratuit pour exporter plusieurs blocs en une fois : AutoWblock, par DotSoft LLC.
http://apps.exchange...AutoWblock%3aen

Une fois les blocs exportés dans un répertoire, je te propose d'utiliser dans chaque dessin à mettre à jour le petit Lisp ci-dessous :

(defun c:MREDEF ( / dir files f b )
  (if (setq dir (acet-ui-pickdir)
            files (vl-directory-files dir "*.dwg" 1)
      )
    (progn
      (foreach f files
        (if (tblsearch "block" (setq b (vl-filename-base f)))
          (progn
            (command "_-insert" (strcat b "=" dir "\\" f))
            (command)
          )
        )
      )
    )
  )
)


Écrit et testé selon la rigoureuse méthode appelée communément "à l'arrache", il te permettra de redéfinir tous les blocs présents sous forme de fichiers dwg dans le dossier choisi.
Les outils Express doivent a priori être installés pour que ça fonctionne.
0

#7 L'utilisateur est hors-ligne   nbk67 

  • ceinture verte
  • Groupe : Membres
  • Messages : 57
  • Inscrit(e) : 21-février 12
  • LocationPARIS

Posté 14 juin 2012 - 14:44

Bryce ... je sais plus quoi te dire ...

Une fois de plus, merci !

NB : tient d'ailleurs puisque j'y pense tu pourras juste jeter un petit coup d'oeil rapide sur le problème que je rencontre quand je force tous les styles de polices (http://cadxp.com/ind...yles-de-textes/)
J'ai toujours pas trouvé la soluce ... :s

En tout cas bonne journée à tous.
AutoCAD 2015
0

#8 L'utilisateur est hors-ligne   yoyon 

  • ceinture blanche
  • Groupe : Membres
  • Messages : 1
  • Inscrit(e) : 30-juillet 12

Posté 30 juillet 2012 - 13:28

Bonjour a tous,

Je suis dans la même situation que Nico à la différence que je n'ai pas compris la réponse.

Je suis stagiaire, je ne connaissais pas Autocad il y de ça 1 mois.

On m'a donner du travail assez répétitif et je cherche comment le faire plus rapidement.

Donc J'ai une cinquantaine de fichiers qui contiennent chacuns 80 blocs.

Je dois redéfinir mes blocs en les remplaçants par d'autres blocs dans un dossier.( les mêmes blocs exportés avec wbloc puis modifiés).

Il faudrait faire: -inserer; nom_du_bloc=; redefinir

Mais je n'ai pas vraiment envie de répéter cela prés de 4000 fois.

Quand j’insère le code j'ai un message: erreur: no function definition: ACET-UI-PICKDIR

Merci à tous et bonne journée.
0

#9 L'utilisateur est hors-ligne   Bred 

  • ceinture noire 5em dan
  • Groupe : Membres
  • Messages : 2720
  • Inscrit(e) : 07-mars 06
  • LocationAntibes

Posté 30 juillet 2012 - 16:43

Salut,
Je ne comprends pas bien ce post.
Si vous voulez redéfinir un bloc déjà existant, il suffit d'aller chercher le nouveau bloc pas la boite de dialogue d'insertion (inserer), si un bloc existe déjà avec ce nom et qu'i lest diiférend, il est demandé si vous voulez le redéfinir...

Et si le bloc n'a pas le même nom, vous avez la commande express "blockreplace".
Si vous êtes persuadés de tout savoir sur un sujet, c''est que vous en ignorez quelque chose...
0

#10 L'utilisateur est hors-ligne   bryce 

  • ceinture noire 4em dan
  • Groupe : Membres
  • Messages : 2151
  • Inscrit(e) : 03-mars 06
  • Location68 Mulhouse

Posté 30 juillet 2012 - 16:55

Bonjour,

Tu as cette erreur parce que les outils Express ne sont pas installés sur ton AutoCAD.
Tu peux soit les installer, soit utiliser une version modifiée du Lisp :

(defun FolderBox (message directory flag / folder sh)
;; (gile)
  (setq shell (vlax-create-object "Shell.Application"))
  (if (setq folder (vlax-invoke shell 'browseforfolder 0 message flag directory))
    (setq folder (vlax-get-property (vlax-get-property folder 'self) 'path))
    (setq folder nil)
  )
  (vlax-release-object shell)
  folder
)

(defun c:MREDEF ( / dir files f b )
  (if (setq dir (folderbox "" "" 1)
            files (vl-directory-files dir "*.dwg" 1)
      )
    (progn
      (foreach f files
        (if (tblsearch "block" (setq b (vl-filename-base f)))
          (progn
            (command "_-insert" (strcat b "=" dir "\\" f))
            (command)
          )
        )
      )
    )
  )
)

0

#11 L'utilisateur est hors-ligne   Hyppolight 

  • ceinture orange
  • Groupe : Membres
  • Messages : 22
  • Inscrit(e) : 12-janvier 15

Posté 09 octobre 2017 - 16:07

Bonjour,

Ce sujet date de longtemps mais sinon il y a une méthode assez simple.

Pour le traitement de masse je conseille le gratuiciel "SuperAutoScript" (SAS)
SuperAutoScript

NOTA : Il a des boutons pour choisir les fichiers ou un dossier mais il est également possible de faire un filtre (exemple taper "*PLAN.dwg" dans les dans dossier Windows pour filtrer tous les fichiers finissant par PLAN.dwg et faire un glisser déposer de tous les fichiers filtrés dans la liste.

Ensuite dans la partie "2. Choisissez le script" copier le texte ci-dessous sachant dans ce script je cherche à remplacer un bloc LEGENDE présent dans mes fichiers par celui présent à l'adresse C:\FTTH_TOOLS\GC\GRA15006_ISERE_V3\SUPPORT\BLOCS\BLOC_PRO\LEGENDE
(ATTENTION : il ne faut pas mettre l'extension .dwg)

CMDDIA
0
FILEDIA
0
EXPERT
5
-INSERER LEGENDE=C:\FTTH_TOOLS\GC\GRA15006_ISERE_V3\SUPPORT\BLOCS\BLOC_PRO\LEGENDE
0,0
1
0
EFFACER
_L

CMDDIA
1
FILEDIA
1
EXPERT
0

... Puis lancer le programme...

Voilà
0

Partager ce sujet :


Page 1 sur 1
  • Vous ne pouvez pas commencer un sujet
  • Vous ne pouvez pas répondre à ce sujet

1 utilisateur(s) en train de lire ce sujet
0 membre(s), 1 invité(s), 0 utilisateur(s) anonyme(s)