Aller au contenu

suprimer bloc en doublons superposé


Messages recommandés

Posté(e)

Bonjour

sur un dwg je me retrouve avec des blocs identique superposer existe t il une solution pour purger le dessins et donc suprimer les blocs inutiles pour ensuite faire une extraction d'attribut valable.

Merci

Posté(e)

 

Hello

 

Une petite recherche dans les forums et tu devrais trouver qq chose ! :casstet:

 

Le Decapode

 

PS: je suis gentil, le bon mot cle est DEL_BLK

 

 

Autodesk Expert Elite Team

Posté(e)

Salut

 

Essaies ceci (trouvé sur ce site)

 

 ;************************************************************************** *************************************************************************** *****
;;; DEL_BLK.LSP
;************************************************************************* *************************************************************************** ******
;Supprime les superpositions de blocs (même nom, même calque, même point d'insertion, même rotation, mêmes échelles)

(defun c:deldup_blk (/ ss ssdup ct len e eb
pt lay bname ang sclx scly sclz
obj obj_list
)

(princ "\nSelect block objects.")
;Select objects and filter all but block insert objects.
(setq ss (ssget (list (cons 0 "INSERT"))))
(if ss ;If any valid objects were selected.
(progn
(princ "\nBuilding list of objects.")
(setq ssdup (ssadd))
;Initialize new selection set to hold objects to delete
(setq len (sslength ss))
;Find out how many objects were selected. 
(setq ct 0)
(while (< ct len) ;Loop through selected objects
(setq e (ssname ss ct)) ;Get an object name
(setq eb (entget e)) ;Get the entity list from the object name
(setq ct (+ ct 1)) ;Increment index into selection set
(setq pt (cdr (assoc 10 eb))) ;Access object's coordinate
(setq lay (cdr (assoc 8 eb))) ;Access object's layer
(setq bname (cdr (assoc 2 eb))) ;Access object's block name
(setq ang (cdr (assoc 50 eb))) ;Access object's rotation angle
(setq sclx (cdr (assoc 41 eb))) ;Access object's x scale
(setq scly (cdr (assoc 42 eb))) ;Access object's y scale
(setq sclz (cdr (assoc 43 eb))) ;Access object's z scale 
;Make list of object properties
(setq obj (list pt lay bname ang sclx scly sclz))

(if (not (member obj obj_list))
;If these properties are not already in list
(setq obj_list (cons obj obj_list)) ;Add them to the list
(ssadd e ssdup) ;Else add object to selection set to delete
) ;End if
) ;End of while loop

(if (> (sslength ssdup) 0)
;If there are any objects in the selection set to delete
(progn
(princ "\nDeleting duplicate objects.")
(setq len (sslength ssdup))
;Find out how many many objects to delete. 
(setq ct 0)
(while (< ct len) ;Loop through objects and delete.
(setq e (ssname ssdup ct)) ;Get object name
(setq ct (+ ct 1)) ;Increment index into selection set
(entdel e) ;Delete duplicate object
) ;End of while loop

(princ ;Print the number of objects deleted to command line 
(strcat "\nDeleted "
(itoa len)
" duplicate objects."
) ;_ Fin de strcat
) ;_ Fin de princ
) ;End progn
(princ "\nNo duplicates found.")
;Else no there were no duplicates to delete.
) ;End if

) ;End progn
(princ "\nNo block objects selected.")
;Else there were no valid objects selected
) ;End if
(princ)
) ;_ Fin de defun
(prompt
"\ndeldup_blk : Supprimer les superpositions de blocs"
) ;_ Fin de prompt

.

 

 

@+

 

[Edité le 26/9/2008 par lesourd2]

Posté(e)

Re,

 

Tu copies tout le code et uniquement le code (ce qui est sur fond de papier perforé).

 

Si tu veux seulement tester dans un dessin, tu le colles sur la ligne de commande d'AutoCAD et tu valides, le code est chargé dans le dessin tu peusx lancer la commande en entrant deldup_blk à la ligne de commande.

 

Si tu veux le conserver, tu le colles dans le bloc-notes Windows et tu l'enregistres avec le nom que tu veux et l'extension .lsp. Depuis AutoCAD, tu peux charger le fichier que tu viens d'enregistrer avec la commande APPLOAD, un fois chargé dans le dessin tu le lance ent entrant deldup_blk à la ligne de commande.

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

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é