Purge impossible de bloc

Purge impossible de bloc

Anonymous
Non applicable
4 745 Visites
10 Réponses
Message 1 sur 11

Purge impossible de bloc

Anonymous
Non applicable

Bonjour tout le monde,

 

Je suis actuellement entrain de créer des plans de bâtiment et je récupéré donc plusieurs infos d'autres dossiers autocad.

 

J'ai récupéré un cadre de légende avec des représentations, certains étaient des blocs et d'autres non. J'ai donc tout modifié nom/calque. J'ai réussi à purger un certain nombre de bloc mais il me reste les blocs dont je me suis servi pour créer les miens qui sont donc imbriqués mais je ne sais pas comment les supprimer.

 

J'ai décomposé tous mes blocs pour voir mais une fois cela fais je ne sais pas quoi faire pour réussir à supprimer les blocs que je dois virer.

 

Par contre les blocs que j'ai créé, je peut les purger, même s'il y a des blocs qui imbriqués dedans ? 

 

J'espère que mon charabia est compréhensible sinon n'hésitez pas ^^ 

 

Merci pour votre aide.

0 J'aime
Solutions acceptées (1)
4 746 Visites
10 Réponses
Replies (10)
Message 2 sur 11

_gile
Consultant
Consultant

Salut,

 

Purger les blocs signifie supprimer de la table des blocs les définitions de bloc qui ne sont pas référencés (autrement dit insérés dans un espace ou une autre définition de bloc).

Donc ci le bloc "B" est imbriqué dans le bloc "A" (autrement dit, une référence du bloc "B" est insérée dans la définition de bloc "A"), on ne peut purger le bloc "B" que si le bloc "A" a été purgé ou que le le bloc "B" inséré dans la définition du bloc "A" a été décomposé.

 

Dans ton cas, si j'ai bien compris, il faut que tu ouvres le bloc "A" dans l'éditeur de bloc (commande BEDIT) pour y décomposer la référence du bloc "B" qui y est insérée. Ensuite, tu devrais pouvoir purger le bloc "B".



Gilles Chanteau
Programmation AutoCAD LISP/.NET
GileCAD
GitHub

0 J'aime
Message 3 sur 11

Anonymous
Non applicable

Bonjour,

 

C'est exactement cela mais je ne trouve pas le moyen de décomposer le bloc dans l'éditeur de bloc, je suis sur AutoCAD LT 2014. Pour moi décomposer c'était la commande exploser les blocs grouper dans l'objet

0 J'aime
Message 4 sur 11

_gile
Consultant
Consultant

Salut,

 

Une autre solution pour pouvoir redéfinir le bloc "A" serait d'en faire un "fichier bloc" avec la commande WBLOC > dans source, choisir Bloc > dans la liste déroulante choisir le bloc "A" > modifier la Destination pour enregistrer "A.dwg" > OK.

Puis ouvrir le fichier "A.dwg", décomposer le bloc "B" et enregistrer.

De retour dans le dessin d'origine faire Insérer > Parcourir > aller chercher le fichier "A.dwg" > à la demande "Le bloc "A" existe déjà voulez vous le redéfinir ?" répondre Oui.



Gilles Chanteau
Programmation AutoCAD LISP/.NET
GileCAD
GitHub

0 J'aime
Message 5 sur 11

Anonymous
Non applicable
Salut,

Le problème c'est que je vais avoir une centaine de fichiers si je transforme tous mes blocs en fichiers.

Je veux bien essayer la première méthode, c'est juste que je ne sais pas comment faire pour décomposer un bloc dans l'éditeur.
0 J'aime
Message 6 sur 11

patrick_35
Collaborator
Collaborator

Salut

 

> Je veux bien essayer la première méthode, c'est juste que je ne sais pas comment faire pour décomposer un bloc dans l'éditeur.

Tu vas dans outis --> Editeur de bloc --> Selection du bloc --> Décomposer le bloc imbriqué.

Ou dans le dessin, tu cliques sur le bloc --> MB au clavier

 

Si tu as la possibilité d'avoir une version pleine, tu peux utiliser ce lisp

(defun c:expl(/ blo doc ent nom_bloc nombl)
  (defun nombl(bl)
    (if (vlax-property-available-p bl 'effectivename)
      (vla-get-effectivename bl)
      (vla-get-name bl)
    )
  )

  (vl-load-com)
  (setq doc (vla-get-activedocument (vlax-get-acad-object))

	nom_bloc "LE_NOM_DU_BLOC_A_DECOMPOSER_PUIS_A_PURGER"

  )
  (vla-startundomark doc)
  (vlax-for blo (vla-get-blocks doc)
    (vlax-for ent blo
      (and (eq (vla-get-objectname ent) "AcDbBlockReference")
	   (eq (strcase (nombl ent)) (strcase nom_bloc))
	(or (vl-catch-all-error-p (vl-catch-all-apply 'vla-explode (list ent)))
	  (vl-catch-all-apply 'vla-delete (list ent))
	)
      )
    )
  )
  (vla-endundomark doc)
  (princ)
)

Et il décomposera tous les blocs dans le dessin (même ceux imbriqués) du nom indiqué.

 

@+

0 J'aime
Message 7 sur 11

Anonymous
Non applicable
Salut,

Tu pourrais m'expliquer comment utiliser ton programme, je suis amateur sur le logiciel. J'ai juste vu les bases à mon école et je suis actuellement en alternance dessinateur donc j'ai besoin d'apprendre plus de choses ce qui reste une tache délicate.
0 J'aime
Message 8 sur 11

Anonymous
Non applicable

Je viens de m'apercevoir, lors de la création d'un bloc dans son comportement la case "Autorisation pour décomposer" n'était pas cochée. Donc cela veut dire que je ne peut pas décomposer mes blocs et est ce qu'il existe une manip pour pouvoir changer ce comportement ou il faut donc que je créé à nouveau mes blocs ?

0 J'aime
Message 9 sur 11

_gile
Consultant
Consultant

Salut,

 

Toujours depuis l'éditeur de bloc (cette interface sert à modifier les définition de bloc) mais en ayant choisi le bloc imbriqué ("B"), dans la palette de propriétés (Ctrl+1) changer la valeur de "Autoriser la décomposition" en "Oui".



Gilles Chanteau
Programmation AutoCAD LISP/.NET
GileCAD
GitHub

0 J'aime
Message 10 sur 11

_gile
Consultant
Consultant
Solution acceptée

Avec un petit screencast, c'est peut-être plus simple.

 

 



Gilles Chanteau
Programmation AutoCAD LISP/.NET
GileCAD
GitHub

Message 11 sur 11

Anonymous
Non applicable
C'est super, très clair je viens d'essayer à l'instant et c'est exactement ce qu'il me fallait.

Je suis super content, merci à vous et vous expliquez super bien. Merci encore pour ce coup de main !!

Bonne journée à vous et peut etre à une prochaine fois.
0 J'aime