Aller au contenu

Trier Entites par propriete/calque : coul/type/epaisseur


lecrabe

Messages recommandés

Hello

 

J'ai qq "mauvais" dessins avec "beaucoup trop" d'entites ayant soit des couleurs, soit des types de lignes, soit des epaisseurs FORCES ! :o

 

Je peux par la "Selection rapide" d'AutoCAD ou par des requetes avec MAP selectionner ces objets et les envoyer sur un autre calque ... Mais c un peu long ! :casstet:

 

Donc voila le programme que je desire SVP !

 

1) A partir d'une selection AutoCAD classique

 

2) Question : Traitement des Couleurs

ou des Types de Ligne

ou des Epaisseurs de Ligne

 

Alors le programme parcourt la selection et envoie les objets avec la propriete FORCEE choisie a la question precedente vers des calques du genre :

 

--- Pour les couleurs forcees ---

MUR ==> MUR__C001, MUR__C002, etc

 

--- Pour les Types de ligne forces ---

CLOISON ==> CLOISON__CACHE, CLOISON__POINTILLE, etc

 

--- Pour les Epaisseurs forcees ----

RESEAU ==> RESEAU__000, RESEAU__005, RESEAU__009, RESEAU__013, etc

 

Je remercie par avance les "gentils developpeurs fous" de ce forum ! :)

 

Le Decapode

 

PS: c mon 3333eme message ! ;)

 

 

 

Autodesk Expert Elite Team

Lien vers le commentaire
Partager sur d’autres sites

Salut Patrice,

 

vite fait pas optimisé, à tester :

(defun C:TRIOBJ ( / JEU I NBJEU CHOIX ELT ELTLST COULEUR CALQUE EPAISSEUR TYPELIGNE)
 ;Couleur = 62
 ;Type de ligne = 6
 ;Epaisseur = 370
 (setq JEU (ssget))
 (initget 1 "Couleur Typedeligne Epaisseur")
 (setq CHOIX (getkword "\nType de traitement par [Couleur/Typedeligne/Epaisseur] "))
 (setq I 0  NBJEU (sslength JEU))
 (repeat NBJEU
   (setq ELT (ssname JEU I))
   (setq I (1+ I))
   (setq ELTLST (entget ELT))
   ;SI couleur forcée & Traitement des couleurs
   (if (and (= CHOIX "Couleur") (setq COULEUR (cdr (assoc 62 ELTLST))))
     (progn
     (if (<= COULEUR 9)
(setq CALQUE (strcat (cdr (assoc 8 ELTLST)) "_C00" (itoa COULEUR)))
(if (<= COULEUR 99)
	  (setq CALQUE (strcat (cdr (assoc 8 ELTLST)) "_C0" (itoa COULEUR)))
  (setq CALQUE (strcat (cdr (assoc 8 ELTLST)) "_C"  (itoa COULEUR)))
)
     )
     (if (not (tblsearch "LAYER" CALQUE)) (command "_-LAYER" "_New" CALQUE ""))
     (setq ELTLST (subst (cons 8 CALQUE) (assoc 8 ELTLST) ELTLST))
     (entmod ELTLST)
     )
   )
   ;SI Type de ligne forcée & Traitement des types de ligne
   (if (and (= CHOIX "Typedeligne") (setq TYPELIGNE (cdr (assoc 6 ELTLST))))
     (progn
     (setq CALQUE (strcat (cdr (assoc 8 ELTLST)) "_" TYPELIGNE))
     (if (not (tblsearch "LAYER" CALQUE)) (command "_-LAYER" "_New" CALQUE ""))
     (setq ELTLST (subst (cons 8 CALQUE) (assoc 8 ELTLST) ELTLST))
     (entmod ELTLST)
     )
   )
   ;SI épaisseur forcée & Traitement des épaisseurs
   (if (and (= CHOIX "Epaisseur") (setq EPAISSEUR (cdr (assoc 370 ELTLST))))
     (progn
     (if (<= EPAISSEUR 9)
(setq CALQUE (strcat (cdr (assoc 8 ELTLST)) "_00" (itoa EPAISSEUR)))
(if (<= EPAISSEUR 99)
	  (setq CALQUE (strcat (cdr (assoc 8 ELTLST)) "_0" (itoa EPAISSEUR)))
  (setq CALQUE (strcat (cdr (assoc 8 ELTLST)) "_"  (itoa EPAISSEUR)))
)
     )
     (if (not (tblsearch "LAYER" CALQUE)) (command "_-LAYER" "_New" CALQUE ""))
     (setq ELTLST (subst (cons 8 CALQUE) (assoc 8 ELTLST) ELTLST))
     (entmod ELTLST)
     )
   )
 )
)

Support Technique Covadis

Lien vers le commentaire
Partager sur d’autres sites

Tu as également les lisp de "Gile" SSL, SSE, SSTL .... Sélections

 

depuis que je les ai, c'est que du bonheur .. ;)

 

certes, cela ne réponds pas entièrement à ta demande mais cela te soulagera pas mal ;)

 

 

 

[Edité le 15/11/2010 par neptune38]

Raph.

Celui qui pose une question est bête 5 minutes, celui qui n'en pose pas l'est toute sa vie !

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é