Aller au contenu

*super purge*


(gile)

Messages recommandés

y a t'il moyen d'ignorer les blocs commencant par _

 

Tu veux dire ne pas essayer de les purger ?

 

C'est tout à fait possible, le LISP le fait pour les noms de blocs commençant par * : "*Model_Space" "*Paper_Space" "*Paper_Space0" ... et les blocs anonymes *D10 *D9 ...

 

Cependant, cela risaue d'enlever un peu de la polyvalence à la routine en interdisant, à celui qui l'utilise de faire des blocs avec des noms commençant par _.

 

Il suffit de remplacer :

 

 ;; p_lst : liste des blocs à purger, soit les blocs de la collection ...
 ;; ... moins les blocs "*Model_Space" "*Paper_Space*" et les blocs insérées

 (setq	p_lst (vl-remove-if
	'(lambda (x)
	   (or (= (substr x 1 1) "*")
	       (member x r_lst)
	   )
	 )
	c_lst
      )
 )

 

par :

 

;; p_lst : liste des blocs à purger, soit les blocs de la collection ...
 ;; ... moins les blocs "*Model_Space" "*Paper_Space*" et les blocs insérées

 (setq	p_lst (vl-remove-if
	'(lambda (x)
	   (or (= (substr x 1 1) "*")
                       [surligneur](= (substr x 1 1) "_")[/surligneur]
	       (member x r_lst)
	   )
	 )
	c_lst
      )
 ) 

 

En fait juste ajouter la ligne [surligneur]surlignée[/surligneur]

 

[Edité le 14/9/2006 par (gile)]

Gilles Chanteau - gileCAD - GitHub
Développements sur mesure pour AutoCAD

Lien vers le commentaire
Partager sur d’autres sites

  • 3 semaines après...

Salut,

 

Ce soir j'était plutôt dans les sélections de polylignes et les sélections par les polylignes, je n'ai pas eu le temps de voir ça.

 

Comme d'habitude, peux tu voir si c'est xref_purge qui plante en le lançant tout seul, sinon c'est que ça vient de spurge.

Gilles Chanteau - gileCAD - GitHub
Développements sur mesure pour AutoCAD

Lien vers le commentaire
Partager sur d’autres sites

  • 11 mois après...

Salut GILE,

j'ai soucis régulièremenr avec des DWG issus de vectoworks venant d'architectes.

L'export de vectorworks truffent les dwg qu'il nous transmettent d'images raster vides. Elles sont multi-imbriquées dans des blocs.

voici un plan en exemple

 

Le gros soucis c'est que le plan fait 500ko, par exemple, mais tous ces rasters allourdissent l'impression et la fluidité de travail. Ces rasters n'apparaissent pas dans le gestionnaire de xrefs.

 

Qu'en penses-tu ?

 

Peut-on virer ces rasters d'un coup, même ceux qui sont imbriqués dans des blocs ?? :(

 

[Edité le 20/9/2007 par Pieroka]

Formateur Autocad - Revit - Sketchup - Photoshop

Lien vers le commentaire
Partager sur d’autres sites

Salut Pieroka,

 

Dans Raster_purge, on avait écarté les images raster contenues dans les blocs de la purge.

 

De toutes façons, dans ton dwg, je n'ai trouvé aucune image raster ni directement dans le dessin, ni imbriquées dans des blocs ?! (ouvert avec AutoCAD 2007)

 

EDIT :

 

Bon sang, mais c'est bien sûr, des images raster vides, c'est des "wipeout" !!!

Je cherchais des AcDbImageRaster, il fallait chercher des AcDbWipeout.

 

Voilà un petit LISP qui supprime tous les wipeout du dessin contenues dans des blocs ou non.

 

;; PurgeWipeout
;; Supprime tous les "wipeout" du dessin (ainsi que ceux contenus dans les blocs)

(defun c:PurgeWipeout (/ acdoc cnt)
 (setq	acdoc (vla-get-ActiveDocument (vlax-get-acad-object))
cnt1  0
cnt2  0
 )
 (if (ssget "_X" '((0 . "INSERT,WIPEOUT")))
   (vlax-for obj (vla-get-ActiveSelectionSet acdoc)
     (if (= (vla-get-ObjectName obj) "AcDbBlockReference")
(vlax-for ent (vla-item	(vla-get-Blocks acdoc)
			(vla-get-Name obj)
	      )
  (if (= (vla-get-ObjectName ent) "AcDbWipeout")
    (progn
      (vla-delete ent)
      (setq cnt1 (1+ cnt1))
    )
  )
)
(progn
  (vla-delete obj)
  (setq cnt2 (1+ cnt2))
)
     )
   )
 )
 (princ (strcat "\n\t"
	 (itoa (+ cnt1 cnt2))
	 " wipeout supprimés dont "
	 (itoa cnt1)
	 " dans des blocs"
 )
 )
 (princ)
) 

 

Testé dans ton dessin :

Commande: purgewipeout

 

221 wipeout supprimés dont 172 dans des blocs

 

[Edité le 20/9/2007 par (gile)]

Gilles Chanteau - gileCAD - GitHub
Développements sur mesure pour AutoCAD

Lien vers le commentaire
Partager sur d’autres sites

Ya un soucis dans le lisp. Ma collègue a testé et s'est rendue compte qu'il restait des Wipeout dans les blocs imbriqués.

 

Voilà ce que j'ai fait plusieurs fois de suite pour voir l'imbrication :

(dans le fichier que je t'ai transmis)

 

- purgewipeout

- décomposer les blocs (sélection avec _qselect) .

- puis à nouveau purgewipeout

- décomposer les blocs

- purgewipeout

- décomposer les blocs

- purgewipeout

- etc...

et ainsi de suite... jusqu'à ce que purgewipeout me dise " 0 wipeout supprimés dont 0 dans des blocs" .

on voit qu'il y a des Wout sur 8 ou 9 niveaux d'imbrication (dans ce fichier).

 

 

 

 

Commande: purgewipeout

 

221 wipeout supprimés dont 172 dans des blocs

 

Commande: _qselect

195 élément(s) sélectionné(s).

 

Commande: _explode 195 trouvé(s)

 

Commande: PURGEWIPEOUT

 

110 wipeout supprimés dont 110 dans des blocs

 

Commande: _qselect

119 élément(s) sélectionné(s).

 

Commande: _explode 119 trouvé(s)

 

Commande: PURGEWIPEOUT

 

98 wipeout supprimés dont 98 dans des blocs

 

Commande: Spécifiez le coin opposé: *Annuler*

 

Commande: _qselect

77 élément(s) sélectionné(s).

 

Commande: _explode 77 trouvé(s)

 

Commande: PURGEWIPEOUT

 

46 wipeout supprimés dont 46 dans des blocs

 

Commande: _qselect

47 élément(s) sélectionné(s).

 

Commande: _explode 47 trouvé(s)

 

Commande: PURGEWIPEOUT

 

10 wipeout supprimés dont 10 dans des blocs

 

Commande: SELECTRAP

 

31 élément(s) sélectionné(s).

 

Commande: _explode 31 trouvé(s)

 

Commande: PURGEWIPEOUT

 

10 wipeout supprimés dont 10 dans des blocs

 

Commande: SELECTRAP

 

19 élément(s) sélectionné(s).

 

Commande: _explode 19 trouvé(s)

 

Commande: PURGEWIPEOUT

 

5 wipeout supprimés dont 5 dans des blocs

 

Commande: SELECTRAP

 

17 élément(s) sélectionné(s).

 

Commande: _explode 17 trouvé(s)

 

Commande: PURGEWIPEOUT

 

0 wipeout supprimés dont 0 dans des blocs

 

Formateur Autocad - Revit - Sketchup - Photoshop

Lien vers le commentaire
Partager sur d’autres sites

Salut,

 

Je devais être fatigué hier soir, je traitais un jeu de sélection pensant traiter toutes la collection de bloc (qui, elle contient bien tous les blocs imbiqués)

 

Voilà une nouvelle version qui devrait fonctionner :

 

Commande: PURGEWIPEOUT

 

500 wipeout supprimés

 

500, le compte y est !!!

 

(defun c:PurgeWipeout (/ cnt)
 (setq	cnt 0
 )
 (vlax-for bloc (vla-get-Blocks
	   (vla-get-ActiveDocument (vlax-get-acad-object))
	 )
   (vlax-for ent bloc
     (if (= (vla-get-ObjectName ent) "AcDbWipeout")
(progn
  (vla-delete ent)
  (setq cnt (1+ cnt))
)
     )
   )
 )
 (princ (strcat "\n\t"
	 (itoa cnt)
	 " wipeout supprimés"
 )
 )
 (princ)
) 

 

[Edité le 21/9/2007 par (gile)]

Gilles Chanteau - gileCAD - GitHub
Développements sur mesure pour AutoCAD

Lien vers le commentaire
Partager sur d’autres sites

  • 3 semaines après...

Salut et merci,

 

Génial ce superpurge, est-il possible d'integrer le traitement des wipeouts dedans ?

 

Moi je ne le ferais pas, je préfère que Spurge garde sa polyvalence (on peut utiliser les Wipeout à bon escient), mais chacun peut l'adapter à sa guise.

 

Donc, dans le LISP "Spurge" qui lance aussi "xref_purge" et "raster_purge", tu ajoutes à l'endroit où ces routines sont appelées l'expression (c:PurgeWipeout). Il faut bien sur que ce LISP aussi soit chargé.

 

Extrait du code avec l'insertion de (c:PurgeWipeout) :

 

 ;; Purge les xrefs et rasters non référencées

(c:xref_purge)
(c:raster_purge)
(c:PurgeWipeout)

;; Dévérouillage de tous les calques 

 

[Edité le 11/10/2007 par (gile)]

Gilles Chanteau - gileCAD - GitHub
Développements sur mesure pour AutoCAD

Lien vers le commentaire
Partager sur d’autres sites

  • 2 semaines après...

Bonjour à vous,

 

Ils sont super bien tes lisps.

Très bonne idée, je n'y avait pas pensé.

 

Mais je sais que j'arrive après la bataille ....

Mais où sont les dernières versions après modifs, sont-ils dispo sur le forum ?

 

Merci encore de nous faire profiter de tes idées et de ton travaille.

 

 

 

Il n'y a pas d'homme cultivé, il n'y a que des hommes qui se cultivent.

 

Maréchal Foch

Lien vers le commentaire
Partager sur d’autres sites

  • 4 mois après...

SALUTT

 

Tres longtps apres la bataille alors

 

gile j'ai ca comme réponse au test sur un gros fichier

 

Commande: SPURGE

*Annuler*

Erreur Automation Identificateur d’objet nul

 

je suis sous autodesk architecture 2008

 

y'a peut etre un probleme avec les "AEC" ????

 

il n'y avait pas quelqu'un qui avait essayer de faire un lisp de purge aussi pour plusieurs fichier a la fois ??

 

j'ai 10 ans de fichiers dwg a purger

 

il va peut etre etre tps de les resauvegarder et mettre a jour version 2008 2009 2010

 

phil

 

Autodesk Architecture 2023 sous windows 11 64

24 pouces vertical + 30 pouces horizontal + 27 pouces horizontal

Lien vers le commentaire
Partager sur d’autres sites

  • 4 ans après...

Bonjour à tous !

 

Excusez moi, mais j'ai un soucis avec le Spurge 1.4

 

Il m'indique : "; erreur: Erreur Automation Objet référencé"

 

J'ai pourtant vérifié a plusieur reprise la syntax et companie.

Savez vous de quoi ça pourrai venir ?

 

Merci encore à vous !

 

Kris

 

 

Je me rend compte que ça viens du fichier, (enfin je pense)

de quoi ça pourrai venir ?

Lien vers le commentaire
Partager sur d’autres sites

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é