Aller au contenu

Messages recommandés

Posté(e)

Bonjour,

Un problème pour supprimer des calques normalement vide.

Voilà mon fichier. Tous les objets sont dans le calque FDP-EXIST.

Faite un copier des éléments vers un nouveau fichier.

Et coller les objets.

Des calques RTS_***** se créent.

J'ai regardé la définition des blocs : ils sont créés dans le calque 0.

Je voudrai purger ces calques RTS_*****pb calques.dwg

Quelles solutions avez-vous ?

Merci

Patrice

 

Posté(e)

Wahou,

la commande _LAYDEL ou SUPCALQUE

Nickel, ce que je voulais. Cela me permet de supprimer des calques sans objets à l'intérieur.

J'avais une seule fois cette commande, totalement oublié.

Merci pour tout

Et belle journée

Patrice

Posté(e)

J'avais trouvé cette fenêtre, mais je ne comprenais pas le résultat, car pour moi les blocs étaient dans le calque FDP-EXIST.

Là en fouillant un peu plus, ce sont les attributs des blocs qui sont dans ces calques RTS_****

En _LAYDEL les calque, cela a effacé tous mes attributs, par d'importance, je n'en avais pas besoin.

Merci

Posté(e)

Bonjour

Je me permets d'intervenir, car je lis des choses qui piquent les yeux.

Si on utilise LAYDEL dans un fichier dont certaines entités sont incluses dans des blocs et ces entités sur le calque qu'on s'apprête à supprimer :
Ces entités vont DISPARAÎTRE irrémédiablement de ces blocs.


Effectivement, c'est radical, mais les gens qui ont une petite connaissance du logiciel vont croire que c'est la bonne commande pour purger les calques récalcitrants.
NON, ce n'est pas la bonne commande.


Il faut, à défaut de bien gérer ses calques, vérifier pourquoi des calques refusent de se purger, neuf fois sur dix c'est à cause de blocs.
Donc la bonne marche à suivre est de redéfinir les blocs sur le calque 0 (zéro), pour ce faire : des LSP existent.

Et, maintenant, on va utiliser LAYDEL en sécurité, l'avenir du dessin n'est pas remis en cause.

Amicalement

 

 

Posté(e)

Merci Didier,

Dans mon cas, les attributs sont vides et c'est pour faire un fond de plan existant en gris. Les attributs n'ont pas d'importance.

 

Par contre, un LISP qui me déplacent tous les contenus des blocs en calque 0, je suis preneur.

Belle journée à tous

Patrice

Posté(e)

Bonjour @PATRICE69,

De mon côté j'utilise le LISP "RB" de Patrick35. Tu peux tester et nous dire si cela te convient ?

Maxime

 

;;;=================================================================
;;;
;;; RB.LSP V1.11
;;;
;;; Refait tous les blocs de la couleur dubloc et sur le calque 0
;;;
;;; Copyright (C) Patrick_35
;;;
;;;=================================================================


(defun c:rb(/ a b s *errrb*)

  (defun *errrb* (msg)
    (or (member (strcase msg) '("FUNCTION CANCELLED" ""QUIT / EXIT ABORT"" "FONCTION ANNULEE" "QUITTER / SORTIR ABANDON"))
      (princ (strcat "\nErreur : " msg))
    )
    (vla-endundomark doc)
    (setq *error* s)
    (princ)
  )

  (vl-load-com)
  (vla-startundomark (vla-get-activedocument (vlax-get-acad-object)))
  (setq s *error*
    *error* *errrb*
  )
  (setq a (tblnext "block" t))
  (while a
    (setq b (cdr (assoc -2 a)))
    (while b
      (setq b (entget b))
      (if (cdr (assoc 6 b))
    (setq b (subst (cons 6 "ByBlock") (assoc 6 b) b))
    (setq b (append b (list (cons 6 "ByBlock"))))
      )
      (setq b (subst (cons 8 "0") (assoc 8 b) b))
      (if (cdr (assoc 62 b))
    (setq b (subst (cons 62 0) (assoc 62 b) b))
    (setq b (append b (list (cons 62 0))))
      )
      (if (cdr (assoc 370 b))
    (setq b (subst (cons 370 -2) (assoc 370 b) b))
    (setq b (append b (list (cons 370 -2))))
      )
      (entmod b)
      (setq b (entnext (cdr (assoc -1 b))))
    )
    (setq a (tblnext "block"))
  )
  (if (setq a (vl-remove-if-not '(lambda (x) (eq (car x) 350)) (dictsearch (namedobjdict) "ACAD_MLINESTYLE")))
    (foreach b a
      (entmod (append (vl-remove-if '(lambda (x) (eq (car x) 62)) (entget (cdr b))) (list (cons 62 0) (cons 62 0) (cons 62 0))))
    )
  )
  (if (setq a (ssget "_x" (list (cons 0 "INSERT"))))
    (foreach b (mapcar 'cadr (ssnamex a))
      (if (cdr (assoc 66 (entget b)))
    (progn
      (setq a (entget (entnext b)))
      (while (not (eq (cdr (assoc 0 a)) "SEQEND"))
        (entmod (subst (cons 62 0) (assoc 62 a) a))
        (setq a (entget (entnext (cdr (assoc -1 a)))))
      )
    )
      )
      (entupd b)
    )
  )
  (vla-endundomark (vla-get-activedocument (vlax-get-acad-object)))
  (setq *error* s)
  (princ)
)

(setq nom_lisp "RB")
(if (/= app nil)
  (if (= (strcase (substr app (1+ (- (strlen app) (strlen nom_lisp))) (strlen nom_lisp))) nom_lisp)
    (princ (strcat "..." nom_lisp " chargé."))
    (princ (strcat "\n" nom_lisp ".LSP Chargé.....Tapez " nom_lisp " pour l'éxecuter.")))
  (princ (strcat "\n" nom_lisp ".LSP Chargé......Tapez " nom_lisp " pour l'éxecuter.")))
(setq nom_lisp nil)
(princ)

Posté(e)

Merci, hier j'étais dans l'urgence. Désolé, je recherche souvent avant : en français ou en anglais, parfois ce sont les mots clés qui ne sont pas bons.

 

Merci et belle journée à vous

Patrice

Invité
Répondre à ce sujet…

×   Collé en tant que texte enrichi.   Coller en tant que texte brut à la place

  Seulement 75 émoticônes maximum sont autorisées.

×   Votre lien a été automatiquement intégré.   Afficher plutôt comme un lien

×   Votre contenu précédent a été rétabli.   Vider l’éditeur

×   Vous ne pouvez pas directement coller des images. Envoyez-les depuis votre ordinateur ou insérez-les depuis une URL.

×
×
  • 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é