Aller au contenu

Redéfinir en masse des blocs


Messages recommandés

Posté(e)

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

Posté(e)

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.

Posté(e)

ç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

Posté(e)

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

Posté(e)

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

Posté(e)

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.autodesk.com/ACD/Detail/Index?id=appstore.exchange.autodesk.com%3aAutoWblock%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.

  • 1 mois après...
Posté(e)

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.

Posté(e)

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...

Posté(e)

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)
         )
       )
     )
   )
 )
)

  • 5 ans après...
Posté(e)

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à

  • 3 mois après...
Posté(e)

Salut à tous, je remonte le topic j'en suis désoler mais la question est juste en relation directe avec le message précédent.

 

J'ai toujours vu SuperAutoScipt, par ici par là, mais a chaque fois que j'en avais besoin je n'ai jamais réussi à le faire fonctionner. J'avais des petites série et si j'avais persévérer je saurais surement faire aujourd'hui. :)

 

Premièrement mon autocad est un autocad mechanical.

 

J'essaye de faire marcher le script du dessus. Car ma société à déménager et j'ai un peu près 2000 cartouche à changer.

 

comme je n'arrive pas a comprendre comment l'utiliser, pourtant c'est simple le code :(

 

je teste de dessiner un cercle sur mon plan vide dans un premier temps.

 

cercle

10,10

200

 

Seul problème quand je regarde les lignes de commande qui s'écrive je vois Layer Director enabled

J'utilise le lisp de Mac lee, il peut posé des problème ?

 

Ca fait 2 jours que en dehors de mes heures de bouleau que je cherche à faire marcher ce super logiciel.

 

Si une personne à une idée ou un scrip simple pour voir si ça fonctionne bien ça m'aider beaucoup.

 

Merci

 

Message quand autocad s'ouvre.

Chargement des DLL de Modeler.

Ouverture d'un fichier au format AutoCAD 2018.

Régénération du modèle.

Utilitaires de menu AutoCAD chargés.FERMERRUBAN Commande inconnue "FERMERRUBAN". Appuyez sur F1 pour obtenir de l'aide.

menubar 1

Module GED v 1.0

Commande:

DWG Autodesk. Ce fichier est un fichier DWG approuvé dont le dernier enregistrement a été effectué dans une application Autodesk ou dans une application sous licence Autodesk.

Commande:

Commande:

Layer Director enabled.

Posté(e)

Bonjour baba,

 

Ce qui s'affiche au démarrage d'AutoCAD n'a pas de rapport avec SuperAutoScript.

 

Tout ça vient d'applicatif (Lisp) qui se lancent au démarrage (dont celui de Lee Mac).

 

Théoriquement cela ne devrait pas empêcher le script de se lancer, mais on remarque quand même que la configuration de ton AutoCAD est un peu bancale parce que si le logiciel se lance avec une ligne qui dit :

Utilitaires de menu AutoCAD chargés.FERMERRUBAN Commande inconnue "FERMERRUBAN". Appuyez sur F1 pour obtenir de l'aide.

ce n'est pas normal.

Par contre, normalement quand on execute le script avec SAS les premières choses qui se passent sont le lancement d'AutoCAD et l'ouverture du premier fichier de la liste. Est-ce que cela fait bien ça ?

Merci

Eric

 

 

 

Posté(e)

...

Théoriquement cela ne devrait pas empêcher le script de se lancer, mais on remarque quand même que la configuration de ton AutoCAD est un peu bancale parce que si le logiciel se lance avec une ligne qui dit :

Utilitaires de menu AutoCAD chargés.FERMERRUBAN Commande inconnue "FERMERRUBAN". Appuyez sur F1 pour obtenir de l'aide.

ce n'est pas normal.

 

En fait ma société modifie l'interface d'autocad, c'est un gros bazar je trouve. Ils ont un profil en commun mais depuis le déménagement et le changement de version en 2018 les droit sont en lecture seul. Bref.

 

Grace à Steven ( sur ce post : http://cadxp.com/topic/45264-resolu-clicque-droit-plus-shift-accroche-objet/) j'ai un icône qui démarre mechanical en autoCAD classique.

 

Alors SAS doit démarrer avec autocad mechanical modifier par ma boite, car ici personne veux du ruban. Sauf moi.

 

 

Par contre, normalement quand on execute le script avec SAS les premières choses qui se passent sont le lancement d'AutoCAD et l'ouverture du premier fichier de la liste. Est-ce que cela fait bien ça ?

Oui autocad se lance et ouvre bien le premier fichier de la liste. Mais après plus rien.

C'est pour ça que j'ai décidé de réaliser un cercle, c'est simple comme commande.

 

Merci, pour la réponse et pour avoir réaliser ce logiciel. :)

Posté(e)

Salut,

 

Peut-être faudrait-il, aussi regarder dansles options d'AutoCAD, par rapport au profil courant, les chemins d'accès au script, dans l'onglet "Fichiers"

Steven________________________________________

Pour le taf; Windows (et ses emmerdes) sinon pas d'AutoCAD.

Pour le perso Linux Mint et pas de problèmes. Mais pas d'AutoCAD.

En rêve; AutoCAD sous Linux.

Posté(e)

Désoler j'avais pas précisé sur mon premier message. Mais c'est le message quand je lance SAS

Entrez le nom du dessin à ouvrir <.>: "C:/LISTE PLAN/17003-MD-0498-01.dwg"
Chargement des DLL de Modeler.
Ouverture d'un fichier au format AutoCAD 2018.
Régénération du modèle.
Utilitaires de menu AutoCAD chargés.FERMERRUBAN Commande inconnue "FERMERRUBAN".  Appuyez sur F1 pour obtenir de l'aide.
menubar 1
Module GED v 1.0
Commande:
DWG Autodesk.  Ce fichier est un fichier DWG approuvé dont le dernier enregistrement a été effectué dans une application Autodesk ou dans une application sous licence Autodesk.
Commande:
Commande:
Layer Director enabled.

 

Je viens de le refaire, en plus j'ai une boite de dialogue au début à fermer manuellement.

1515751567-erreur-debut-autocad.png

 

Merci pour les réponses rapide.

 

Sébastien.

Posté(e)

Je crois malheureusement qu'avec un AutoCAD aussi bancale cela va être compliqué de faire fonctionner quoi que soit correctement. angry.gif

 

Il faudrait déjà revoir la configuration du logiciel pour retrouver un fonctionnement est un démarrage normal.

 

Merci pour ta réponse. Je vais regarder ce midi pour voir si je peux rectifier ça.

 

Sébastien.

Posté(e)

Bonjour j'ai viré le lien du profile vu que je me sers pas de l'autocad que demarre SAS. Donc j'ai plus la boite de dialogue. Déjà une avancé :D

 

Utilitaires de menu AutoCAD chargés.FERMERRUBAN Commande inconnue "FERMERRUBAN".  Appuyez sur F1 pour obtenir de l'aide.
menubar 1
Module GED v 1.0
Commande:

DWG Autodesk.  Ce fichier est un fichier DWG approuvé dont le dernier enregistrement a été effectué dans une application Autodesk ou dans une application sous licence Autodesk.

Commande:

Commande:
Layer Director enabled.
Commande: FERMERUBAN

"RIBBONCLOSE"

 

J'attends que autocad finisse le chargement, il connait la commande. C'est bizarre quand même.

 

Merci à vous.

 

Edit: on dirait que le programme SAS n'attend pas la fin du chargement d'autocad.

la version 2018 à peut être changer des choses dans l'ordre de démarrage ?

Je programme pas et n’émets qu'une hypothèse. ;)

  • 3 ans après...
Posté(e)

Petite précision pour les blocs ou blocs dynamiques attributaires (blocs avec des attributs) et l'utilisation de Superautoscript

 

Pour ne pas à avoir la demande des valeurs d'attributs lors du remplacement du bloc il faut que les variables ATTDIA et ATTREQ soit à 0

 

On a donc par exemple le script suivant qui remplace un bloc existant, purge le fichier et effectue un zoom étendu:

 

CMDDIA

0

FILEDIA

0

ATTDIA

0

ATTREQ

0

EXPERT

5

-INSERER STBAN=C:\FTTH_TOOLS\BAL\AXS20002_MANCHE\SUPPORT\STBAN

0,0

1

0

EFFACER

_L

 

-PURGER

TO

*

N

ZOOM

ET

CMDDIA

1

FILEDIA

1

ATTDIA

1

ATTREQ

1

EXPERT

0

 

 

Explication du script :

 

CMDDIA

0

--> Désactive l'affichage des boites de dialogues liées aux commandes : INFO VARIABLE SYSTEME CMDDIA

 

FILEDIA

0

--> Désactive l'affichage des boites de dialogues liées aux fichiers : INFO VARIABLE SYSTEME FILEDIA

 

ATTDIA

0

--> Désactive l'affichage des boites de dialogues liées aux attributs : INFO VARIABLE SYSTEME ATTDIA

 

ATTREQ

0

--> Désactive la demande de renseignements des attributs lors de l'insertion d'un bloc : INFO VARIABLE SYSTEME ATTREQ

 

EXPERT

5

--> Supprime l'invite "Ce nom est déjà utilisé, voulez-vous le redéfinir?" : INFO VARIABLE SYSTEME EXPERT

 

-INSERER STBAN=C:\FTTH_TOOLS\BAL\AXS20002_MANCHE\SUPPORT\STBAN

0,0

1

0

--> Insert le bloc STBAN (en remplaçant les blocs du même nom présent dans le dwg) par le bloc (celui qui a été mis à jour) à l'emplacement C:\FTTH_TOOLS\BAL\AXS20002_MANCHE\SUPPORT\STBAN.dwg (attention ne pas mettre l'extension .dwg dans le script)

--> Au point 0,0 avec une échelle 1 et une rotation de 0

 

EFFACER

_L

 

--> Supprime la dernière sélection (le _L est la commande anglaise pour dire Last = dernier) : donc on supprime le bloc insérer au point 0,0

 

-PURGER

TO

*

N

 

--> Purger, Tout, * = tout les noms sont à purger, N = pas de vérification des noms à purger (pour qu'il n'y ait pas de demande de validation à chaque calque, bloc... à purger)

 

ZOOM

ET

--> Zoom étendu

 

CMDDIA

1

--> Réactive l'affichage des boites de dialogues liées aux commandes

 

FILEDIA

1

--> Réactive l'affichage des boites de dialogues liées aux fichiers

 

ATTDIA

1

--> Réactive l'affichage des boites de dialogues liées aux attributs

 

ATTREQ

1

--> Réactive la demande de renseignements des attributs lors de l'insertion d'un bloc

 

EXPERT

0

--> Affiche tous les messages normalement.

 

Voilà, j'espère que ca en aidera quelques-uns ;)

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é