Olivier Eckmann Posté(e) le 17 janvier 2020 Partager Posté(e) le 17 janvier 2020 Bonjour, Il suffit d'ajouter une 2ème altération :- cocher couleur- cliquer sur valeur- choisir Ducalque et valider- cliquer sur ajouter pour ajouter une seconde ligne dans la liste des altérations (en plus de celle concernant le calque) Olivier Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
lecrabe Posté(e) le 17 janvier 2020 Partager Posté(e) le 17 janvier 2020 Hello Les Jeunes Padawans Dans un genre un peu different, je vous redonne une Superbe Routine Lisp de notre regrette Patrick_35 !Patrick l'avait developpe suite a ma demande ... Cette Routine TRI "eclate / separe" TOUTES les entites du DWG sur N calques par le Type d'Entite ! C Tip-Top pour avoir UN SEUL Type d'Entite PAR CALQUE !! Pas besoin d'une Requete sur le Groupe de Dessins avec MAP (ou CIVIL) !La Routine TRI fonctionne sur AutoCAD, ACAD Archi, etc ... Au fait SVP ce QUOI serait la Micro-Modif Ultra-Simple pour pouvoir selectionner QUE une partie du DWG afin que la routine ne traite pas TOUT le DWG !? ... (if (ssget "x") ... Merci d'avance, LA SANTE, Bonne Annee, Bye, lecrabe "triste"Que la Force soit avec Vous et Vos Proches ! ;; ;; Tri des entites par calque et transfert dans des sous-calques ;; ;; Si Calque nomme A alors --> A__TEXT, A__2LINE, A__HATCH, A__POLYLINE, etc ;; ;; Par Patrick_35 le 23/03/2009 pour Patrice B. ;; ;; Nouvelle version 1.1 qui separe XREF & BLOC et fonctionne sur AutoCAD >= 2000 ;; (defun c:TRI (/ doc ent lay lck nom ori pro sel tot txt) (vl-load-com) (setq doc (vla-get-activedocument (vlax-get-acad-object))) (vla-startundomark doc) (if (ssget "x") (progn (vlax-for ent (setq sel (vla-get-activeselectionset doc)) (cond ((and (eq (vla-get-objectname ent) "AcDbBlockReference") (vlax-property-available-p ent 'path) ) (setq nom "Xref") ) (T (setq txt (substr (vla-get-objectname ent) 5) tot 2 ) (while (and (> (vl-string-elt txt tot) 90) (< tot (1- (strlen txt))) ) (setq tot (1+ tot)) ) (and (eq (1- (strlen txt)) tot) (setq tot (1+ tot)) ) (setq nom (substr txt 1 tot)) ) ) (setq ori (vla-item (vla-get-layers doc) (vla-get-layer ent)) lck (vla-get-lock ori) ) ;; (or (wcmatch (vla-get-layer ent) (strcat "* - " nom)) ;; (and (vl-catch-all-error-p (setq lay (vl-catch-all-apply 'vla-item (list ;; (vla-get-layers doc) (setq txt (strcat (vla-get-layer ent) " - " nom)))))) (or (wcmatch (vla-get-layer ent) (strcat "*__" nom)) (and (vl-catch-all-error-p (setq lay (vl-catch-all-apply 'vla-item (list (vla-get-layers doc) (setq txt (strcat (vla-get-layer ent) "__" nom)))))) (setq lay (vla-add (vla-get-layers doc) txt)) (foreach pro '('color 'freeze 'layeron 'linetype 'lineweight 'material 'plottable 'viewportdefault) (and (vlax-property-available-p lay (eval pro)) (vlax-put lay (eval pro) (vlax-get ori (eval pro))) ) ) ) (vla-put-lock lay :vlax-false) (vla-put-lock ori :vlax-false) (vla-put-layer ent txt) (vla-put-lock lay lck) (vla-put-lock ori lck) ) ) (princ (strcat "\nTravail sur " (itoa (vla-get-count sel)) " objet(s). ")) (vla-delete sel) ) (princ "\nDessin vide! ") ) (vla-endundomark doc) (princ) ) Citer Autodesk Expert Elite Team Lien vers le commentaire Partager sur d’autres sites More sharing options...
VDH-Bruno Posté(e) le 17 janvier 2020 Partager Posté(e) le 17 janvier 2020 Au fait SVP ce QUOI serait la Micro-Modif Ultra-Simple pour pouvoir selectionner QUE une partie du DWG afin que la routine ne traite pas TOUT le DWG !? ... (if (ssget "x") ... Au plus simple je dirais.. (if (ssget) ... A+ Citer Apprendre => Prendre => Rendre Lien vers le commentaire Partager sur d’autres sites More sharing options...
lecrabe Posté(e) le 17 janvier 2020 Partager Posté(e) le 17 janvier 2020 Hello Bruno NON ca ne marche pas ! Ne faudrait il pas faire un truc du genre (setq js (ssget ... et donc boucler sur la liste JS du jeu de selection ! Waiting ... MERCI, Bye, lecrabe "triste" Citer Autodesk Expert Elite Team Lien vers le commentaire Partager sur d’autres sites More sharing options...
VDH-Bruno Posté(e) le 17 janvier 2020 Partager Posté(e) le 17 janvier 2020 Hello Bruno NON ca ne marche pas ! Ne faudrait il pas faire un truc du genre (setq js (ssget ... et donc boucler sur la liste JS du jeu de selection ! Waiting ... MERCI, Bye, lecrabe "triste" :blink: Chez moi ça fonctionne très bien sur 2007 Le bouclage sur la sélection courante (sélection active) est fait ici dans le code de Patrick_35(vlax-for ent (setq sel (vla-get-activeselectionset doc)) A+ Citer Apprendre => Prendre => Rendre Lien vers le commentaire Partager sur d’autres sites More sharing options...
lecrabe Posté(e) le 17 janvier 2020 Partager Posté(e) le 17 janvier 2020 Hello Bruno SVP peux tu nous redonner toute TA routine TRI avec la sélection "normale" ? LA SANTE, Bye, lecrabe "triste" Citer Autodesk Expert Elite Team Lien vers le commentaire Partager sur d’autres sites More sharing options...
VDH-Bruno Posté(e) le 17 janvier 2020 Partager Posté(e) le 17 janvier 2020 SVP peux tu nous redonner toute TA routine TRI avec la sélection "normale" ? Pas de soucis Patrice ;; ;; Tri des entites par calque et transfert dans des sous-calques ;; ;; Si Calque nomme A alors --> A__TEXT, A__2LINE, A__HATCH, A__POLYLINE, etc ;; ;; Par Patrick_35 le 23/03/2009 pour Patrice B. ;; ;; Nouvelle version 1.1 qui separe XREF & BLOC et fonctionne sur AutoCAD >= 2000 ;; (defun c:TRI (/ doc ent lay lck nom ori pro sel tot txt) (vl-load-com) (setq doc (vla-get-activedocument (vlax-get-acad-object))) (vla-startundomark doc) (if (ssget) ;; sélection partiel ;; (ssget "X") sélection total (progn (vlax-for ent (setq sel (vla-get-activeselectionset doc)) (cond ((and (eq (vla-get-objectname ent) "AcDbBlockReference") (vlax-property-available-p ent 'path) ) (setq nom "Xref") ) (T (setq txt (substr (vla-get-objectname ent) 5) tot 2 ) (while (and (> (vl-string-elt txt tot) 90) (< tot (1- (strlen txt))) ) (setq tot (1+ tot)) ) (and (eq (1- (strlen txt)) tot) (setq tot (1+ tot)) ) (setq nom (substr txt 1 tot)) ) ) (setq ori (vla-item (vla-get-layers doc) (vla-get-layer ent)) lck (vla-get-lock ori) ) ;; (or (wcmatch (vla-get-layer ent) (strcat "* - " nom)) ;; (and (vl-catch-all-error-p (setq lay (vl-catch-all-apply 'vla-item (list ;; (vla-get-layers doc) (setq txt (strcat (vla-get-layer ent) " - " nom)))))) (or (wcmatch (vla-get-layer ent) (strcat "*__" nom)) (and (vl-catch-all-error-p (setq lay (vl-catch-all-apply 'vla-item (list (vla-get-layers doc) (setq txt (strcat (vla-get-layer ent) "__" nom)))))) (setq lay (vla-add (vla-get-layers doc) txt)) (foreach pro '('color 'freeze 'layeron 'linetype 'lineweight 'material 'plottable 'viewportdefault) (and (vlax-property-available-p lay (eval pro)) (vlax-put lay (eval pro) (vlax-get ori (eval pro))) ) ) ) (vla-put-lock lay :vlax-false) (vla-put-lock ori :vlax-false) (vla-put-layer ent txt) (vla-put-lock lay lck) (vla-put-lock ori lck) ) ) (princ (strcat "\nTravail sur " (itoa (vla-get-count sel)) " objet(s). ")) (vla-delete sel) ) (princ "\nDessin vide! ") ) (vla-endundomark doc) (princ) ) A+ Citer Apprendre => Prendre => Rendre Lien vers le commentaire Partager sur d’autres sites More sharing options...
lili2006 Posté(e) le 17 janvier 2020 Partager Posté(e) le 17 janvier 2020 Bonsoir à toutes et tous,Olivier,Oui, je manipule que très rarement MAP et je compte m'y remettre, ça commence plutôt bien !!Merci encore de ton partage de connaissances qui profite à mes étudiants au quotidien, le tout mis mis bout à bout,.. Citer Civil 3D 2025 - COVADIS_18.3b https://www.linkedin...3%ABt-95313341/ Lien vers le commentaire Partager sur d’autres sites More sharing options...
lili2006 Posté(e) le 17 janvier 2020 Partager Posté(e) le 17 janvier 2020 Re,Je viens de tester la manip, et j'ai tous les calques qui arrivent de couleurs noir, certes mais aussi toutes les entités du dessin !!C'est exactement l'inverse que je souhaiterez (mais peut être pas possible,..), à savoir les calques de la même couleurs que sur le ".pdf" de départ,..MErci encore,;.. Citer Civil 3D 2025 - COVADIS_18.3b https://www.linkedin...3%ABt-95313341/ Lien vers le commentaire Partager sur d’autres sites More sharing options...
lecrabe Posté(e) le 18 janvier 2020 Partager Posté(e) le 18 janvier 2020 Bonjour Bruno MERCI c OK ! Je suis fatigué: compter correctement les parenthèses... LA SANTE, Bye, lecrabe "triste" Citer Autodesk Expert Elite Team Lien vers le commentaire Partager sur d’autres sites More sharing options...
VDH-Bruno Posté(e) le 18 janvier 2020 Partager Posté(e) le 18 janvier 2020 MERCI c OK ! Je suis fatigué: compter correctement les parenthèses... C'était la fin de semaine, ça ira mieux Lundi ;) Citer Apprendre => Prendre => Rendre Lien vers le commentaire Partager sur d’autres sites More sharing options...
lili2006 Posté(e) le 24 février 2020 Partager Posté(e) le 24 février 2020 Bonjour à toutes et tous,Tous les fichiers ".pdf" d'un DCE se transforme sans pb avec la méthodologie décrite par Olivier sur ce post sauf un fichier, et là, je ne vois pas !!Le fichier en causeMErci d'avance, Citer Civil 3D 2025 - COVADIS_18.3b https://www.linkedin...3%ABt-95313341/ Lien vers le commentaire Partager sur d’autres sites More sharing options...
Messages recommandés