CADxp: Comment supprimer les calques gelés ? - CADxp

Aller au contenu

Page 1 sur 1

Comment supprimer les calques gelés ?

#1 L'utilisateur est hors-ligne   oran 

  • ceinture marron
  • Groupe : Membres
  • Messages : 214
  • Inscrit(e) : 16-mai 07

Posté 28 mai 2015 - 12:39

Bonjour,

Connaitriez-vous un moyen "rapide" pour supprimer les calques gelés présents dans certains fichiers Archi. que l'on peut recevoir ?
Peut-être un lisp capable de déceler en masse ces calques présentst dans le gestionnaire et les supprimer automatiquement ?
Ou autre solution de ce genre ?

Vous en remerciant d'avance.

Oran
0

#2 L'utilisateur est hors-ligne   Steven 

  • ceinture rouge et blanche 6em dan
  • Groupe : Membres
  • Messages : 3435
  • Inscrit(e) : 03-mars 03
  • LocationDans le TARDIS

Posté 28 mai 2015 - 14:52

Salut,

Ta question est étrange car on peut voir les calques gelé dans le gestionnaire des propriétés des calques. De plus, s'il n'y a rien dessus, les calques peuvent être purger simplement avec la commande purger.
Sinon, il y a la commande laydel. par contre attention à la commande laydel, car AutoCAD supprimera les calques et tout ce qu'il y a dessus. Voir ce topic.
A moins que tu ai reçu des fichiers ont été fais avec un logiciel métier tel qu'AutoCAD Architecture ou MEP, par exemple. Et qu'il y ai donc des calques que tu ne peux pas supprimer parce qu'il y a des objets AEC qui utiliseraient ces dit calques, au quel cas, il faudrait d'abord supprimer la base de données des objets AEC avec le lisp removeaec, pour ensuite purger les calques.
Steven________________________________________
Pour le taf; Windows (et ses emmerdes) sinon pas d'AutoCAD.
Pour la maison; Linux Mint et pas de problèmes. Mais pas d'AutoCAD.
En rêve; AutoCAD sous Linux.
0

#3 L'utilisateur est hors-ligne   open-mind 

  • ceinture noire
  • Groupe : Membres
  • Messages : 383
  • Inscrit(e) : 02-mai 06

Posté 26 février 2018 - 14:54

Bonjour
Je remonte le sujet car je suis souvent dans le même cas.
Et en effet, on ne peut pas supprimer ce qui est gelé, et les solutions apportées plus haut ne répondent pas à la question.
Laydel est pratique pour les calques qui sont encore visible (logique puisqu'on clique sur les objets).
On peut sinon filtrer dans le gestionnaire des calques pour retrouver ceux qui sont gelés, mais on ne peut rien faire avec d'ici.

Là en gros, le fichier a été nettoyé "visuellement", et pour l'alléger, on voudrait supprimer ce qui est invisible (gelé).
0

#4 L'utilisateur est hors-ligne   Dinosor 

  • ceinture noire 2em dan
  • Groupe : Moderateurs
  • Messages : 1160
  • Inscrit(e) : 26-mars 07
  • LocationSuisse - Vaud

Posté 26 février 2018 - 15:18

Voir le messageopen-mind, le 26 février 2018 - 14:54 , dit :


Laydel est pratique pour les calques qui sont encore visible (logique puisqu'on clique sur les objets).



Après avoir lancé la commande "LAYDEL", tapes "N" pour nommer les calques qui sortent dans un listing... Il n'y a plus qu'à sélectionner.

Salut à tous !
Seuls nous allons vite, ensemble nous allons plus loin...
AutoCad (Architecture) 2018 - Lumion 8 PRO
BMW R-1200-RT, c'est moche, oui... je sais...

www.neda.ch
0

#5 L'utilisateur est hors-ligne   Aleck Ultimate 

  • ceinture noire 1er dan
  • Groupe : Membres
  • Messages : 626
  • Inscrit(e) : 18-novembre 16
  • LocationAlpes de Hautes Provences (04)

Posté 26 février 2018 - 16:12

Salut.

Une fois les calques filtrés on peut tous les isoler d'un coup avec un clic droit dans le gestionnaire des calques, puis après les avoir déverrouillés utiliser LAYDEL sur tout les objets visible jusqu’à ne plu rien voir à l'écran sans avoir à se poser de questions. Il faut ensuit reactiver les calques restant, masqués par la précédente commande, puis purger le dessin.

Et il doit bien être possible d'automatiser ça en LISP, ci ce n'est en MACROS.

Cordialy.
En DAO, la passion me porte !

Citation

"La foi, une histoire vraie, racontée par des menteurs."Médine (Porteur saint)

Utilisateur d'
AutoCAD 2018 sous Windows 10
0

#6 L'utilisateur est hors-ligne   La Lozère 

  • ceinture noire 4em dan
  • Groupe : Membres
  • Messages : 2451
  • Inscrit(e) : 28-juin 06
  • LocationVienne (38) - Etude APA - A480

Posté 26 février 2018 - 16:38

Hello,
Je vais être en dehors du sujet, mais fut un temps, (gile) avait fait une petite routine qui se décomposait en 2:
- La première partie, inversait l'état de visibilité des calques
- La deuxième partie, restaurait la visi précédemment inversée.
Tout ceci me permettait de supprimer des objets sur des calques gelés ou inactivés, puis de rétablir la visi après mes suppression.
Il pourrait servir ici pour pouvoir visionner les calques à supprimer.

Le poste original est ici: http://cadxp.com/top...te-des-calques/

Le code que j'ai modifié:
					; Commande pour inverser l'état de visbilité des calques

(defun c:togon (/ acdoc layers clay lock name)

    (command "-calque" "A" "E" "toglay" "" "" "")

  (vl-load-com)

  (setq acdoc (vla-get-Activedocument (vlax-get-acad-object))

        layers (vla-get-Layers acdoc)

  )

  (vlax-for l layers

    (if (and

          (not clay)

          (or

            (= (vla-get-LayerOn l) :vlax-false)

            (= (vla-get-Freeze l) :vlax-true)

          )

          (not (wcmatch (vla-get-Name l) "*|*"))

        )

      (progn

        (vla-put-Freeze l :vlax-false)

        (vla-put-LayerOn l :vlax-true)

        (setvar 'clayer (setq clay (vla-get-Name l)))

      )

    )

  )

  (if clay

    (progn

      (vlax-for l layers

        (setq name (vla-get-Name l))

        (if (and (= (vla-get-LayerOn l) :vlax-true)

                 (= (vla-get-Freeze l) :vlax-false)

            )

          (vl-catch-all-apply 'vla-put-Freeze (list l :vlax-true))

          (progn

            (vla-put-Freeze l :vlax-false)

            (vla-put-LayerOn l :vlax-true)

          )

        )

      )

      (vla-regen acdoc acAllViewports)

    )

    (princ "\nAucun calque gelé ou désactivé.")

  )

  (princ)

)

					;---------------------------------------------------------
					; Commande pour restaurer l'état de visibilité des calques

(defun c:togoff	()
  (command "-calque" "A" "R" "toglay" "" "")
  (command "-calque" "A" "S" "toglay" "" "")

)

(print
  "commande pour inverser l'état de visibilité: TOGON --- Commande pour restaurer l'état de visibilité: TOGOFF"
)

www.cad-is.fr
Autocad Map 2016/2018 - Covadis/Autopiste V16.0c - Mensura Genius V8
Nous n’héritons pas de la Terre de nos ancêtres, nous l’empruntons à nos enfants
0

#7 L'utilisateur est hors-ligne   Olivier Eckmann 

  • ceinture noire 2em dan
  • Groupe : Membres
  • Messages : 1109
  • Inscrit(e) : 29-décembre 11
  • LocationLongjumeau (91)

Posté 01 mars 2018 - 23:23

Bonjour,

depuis toujours j'utilise cette astuce.
Lancer la commande EFFACER, à l'invite du choix des objets, taper
(ssget "x")


ce qui permet de tout sélectionner y compris les objets situés dans les calques gelés
puis taper S
pour passer en mode suppression (retirer des objets)
et sélectionner par capture tout ce qui est visible à l'écran, puis valider.
Cela efface TOUT SAUF ce que l'on voit à l'écran.

Olivier
0

#8 L'utilisateur est hors-ligne   lecrabe 

  • ceinture rouge et blanche 8em dan
  • Groupe : Moderateurs
  • Messages : 7813
  • Inscrit(e) : 10-décembre 03
  • LocationLoire (42)

Posté 09 mars 2018 - 18:11

Hello Mr Oran

Au fait une bonne petite Routine Lisp/VLisp qui fait le boulot !

ATTENTION: elle traite meme les calques VERROUILLES !

Bye, lecrabe

 
;; 
;; https://forums.autodesk.com/t5/visual-lisp-autolisp-and-general/delete-all-objects-on-a-frozen-layer/td-p/6906051
;;
;; Routine: EraseFrozen by john.uhden
;; 
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 
;; DANGER : Erase ALL Entities on FROZEN Layers EVEN if they are LOCKED 
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 
;;  

(defun C:EraseFrozen ( / *error* cmdecho Layer Locked SS i Name n1 n2) 

  ;; v1.0 (c. 08-02-05)
  ;; V1.1 (12-15-05) TIDIED UP FOR REAL USAGE
  ;; v1.2 (04-24-09) changed to just frozen layers (not off) 

  (gc) 

  (vl-load-com) 

  (or *acad* (setq *acad* (vlax-get-acad-object))) ;; global
  (or *doc* (setq *doc* (vla-get-ActiveDocument *acad*))) ;; global
  (defun *error* (error)
    (if (vl-position cmdecho '(0 1))(setvar "cmdecho" cmdecho))
    (vla-endundomark *doc*)
    (cond
      ((not error))
      ((wcmatch (strcase error) "*QUIT*,*CANCEL*"))
      (1 (princ (strcat "\nERROR: " error)))
    )
    (princ)
  )
  (vla-endundomark *doc*)
  (vla-startundomark *doc*)
  (setq cmdecho (getvar "cmdecho")
        n1 0
        n2 0
  )
  (setvar "cmdecho" 0)
  (command "_.setvar" "expert" (getvar "expert")) ;; dummy command
  (and
    (not (alert "This will delete all entities on layerS that are Frozen.\n\n   Look at the command line after hitting OK ... "))
    (not (initget "Yes No"))
    (/= (getkword "\nDo you wish to continue? [<Yes>/No]: ") "No")
    (vlax-for Layer (vlax-get *doc* 'Layers)
      (and
        (setq Locked (vlax-get Layer 'Lock))
        (= (vlax-get Layer 'Freeze) -1)
        (setq Name (vlax-get Layer 'Name))
        (setq ss (ssget "X" (list (cons 8 Name))))
        (or (vlax-put Layer 'Lock 0) 1)
        (setq i 0 n1 (1+ n1))
        (princ (strcat "\nDeleting layer " Name "..."))
        (repeat (sslength ss)
          (vla-delete (vlax-ename->vla-object (ssname ss i)))
          (setq i (1+ i) n2 (1+ n2))
        )
        (vlax-put Layer 'Lock Locked)
      )
      1
    )
    (princ (strcat "\nDeleted " (itoa n2) " entities on " (itoa n1) " frozen layers"))
  )
  (*error* nil)
) 

(defun C:EF ()(c:EraseFrozen)) 
 

Autodesk Expert Elite Team
0

Partager ce sujet :


Page 1 sur 1


Réponse rapide

  

1 utilisateur(s) en train de lire ce sujet
0 membre(s), 1 invité(s), 0 utilisateur(s) anonyme(s)