Aller au contenu

Messages recommandés

Posté(e)

Bonjour à tous,

Je vous expose la situation :

J'ai un fichier nommé TOPO.dwg qui est attaché comme référence externe sur 387 autres DWGs.

Dans TOPO, je dois geler 13 calques. Cependant, cette modification n'est pas prise en compte dans mes 387 autres fichiers.

Je ne veux pas avoir à ouvrir chacun de ces fichiers pour geler les dits calques.

Y a-t-il une façon de faire afin de m'éviter un travail fastidieux ? S'il vous plaît, dites moi que oui.

Posté(e)

Hello @Tchantal

1) Tu as bien VISRETAIN = 1 et XREFOVERRIDE = 1 (depuis la 2016.1) dans tes DWGs "principaux" ? 

2) Quelle valeur de VISRETAINMODE (depuis la 2018.1) pour tes DWGs "principaux" ? 

En theorie  VISRETAINMODE = 3  devrait "aider" et peut etre faut il recharger la XREF !? 

( Reponse "de memoire" sans lancer un quelconque AutoCAD )

Bye, lecrabe


 

VISRETAINMODE__0____2018.1.jpg

Autodesk Expert Elite Team

Posté(e)
il y a 57 minutes, lecrabe a dit :

Hello @Tchantal

1) Tu as bien VISRETAIN = 1 et XREFOVERRIDE = 1 (depuis la 2016.1) dans tes DWGs "principaux" ? 

2) Quelle valeur de VISRETAINMODE (depuis la 2018.1) pour tes DWGs "principaux" ? 

En theorie  VISRETAINMODE = 3  devrait "aider" et peut etre faut il recharger la XREF !? 

( Reponse "de memoire" sans lancer un quelconque AutoCAD )

Bye, lecrabe


 

VISRETAINMODE__0____2018.1.jpg

Bonjour @lecrabe

VISRETAIN étant une variable qui se sauvegarde dans tout AutoCAD et non par DWG comme XREFOVERRIDE, j'ai bien VISRETAIN = 1.
Cependant, XREFOVERRIDE = 0, car je ne veux pas nécessairement qu'AutoCAD traite mes Xréf comme étant tout en DuCalque.

Par contre, VISRETAINMODE, je ne comprenais pas son fonctionnement. J'ai fait un test avec la valeur 2 et ça fonctionne dans les 10 fichiers que j'ai ouvert.

Donc je te remercie pour ta réponse, elle résout bien mon problème. 👍

Posté(e)

hello Tchantal

en lisp  

 fonction : ACAL

premier extrait de nom de calque : TOPO

deuxieme extrait de nom de calque : un bout du nom de tes calque a geler ( zaza)

 

action souhaiter : G

 

ca devrait geler tous les calques que tu souhaites, ceux qui ont dans leurs nom  :  TOPO*zaza*

 

apres tu testes toutes les autres action que l'on peut faire avec les calques.

 

a+

Phil


 

(defun c:acal ( / lay layers )
  (setvar "cmdecho" 0)
  (setq parcalque1 (getcfg "APPDATA/parcalque1"))
  (setq com1 (getstring t
                        (strcat "\nVEUILLEZ ENTRER L'EXTRAIT 1 DU NOM DE CALQUE A ACTIVER <" parcalque1 "> : ")
             )
  )
  (if (/= com1 "")
    (setq parcalque1 com1)
  )
  (setcfg "APPDATA/parcalque1" parcalque1)
  (setq parcalque2 (getcfg "APPDATA/parcalque2"))
  (setq com2 (getstring t
                        (strcat "\nVEUILLEZ ENTRER L'EXTRAIT 2 DU NOM DE CALQUE A ACTIVER <" parcalque2 "> : ")
             )
  )
  (if (/= com2 "")
    (setq parcalque2 com2)
  )
  (setcfg "APPDATA/parcalque2" parcalque2)
;;;  (setq test (strcat "*" parcalque "*"))
  (setq actioncalque (getcfg "APPDATA/ACTIONCALQUE"))
  (initget "ac AC in IN g G l L v V d D t T int INT li LI co CO ar AR av AV")
  (setq tmp (getstring t
                       (strcat "\nENTRER L'ACTION SOUHAITE SUR LES CALQUES [ ACtiver / INactiver / Geler / Libérer / Verrouiller / Déverrouiller / Tracer / INTracable / LIster / COuleur / AVant / ARriere ] <"
                               actioncalque
                               ">: "
                       )
            )
  )
  (if (/= tmp "")
    (setq actioncalque (strcase tmp))
  )
  (setcfg "APPDATA/ACTIONCALQUE" actioncalque)
  (while (setq lay (tblnext "LAYER" (not lay))) (setq layers (cons (cdr (assoc 2 lay)) layers)))
  (setq layerfiltre nil)
 
  (foreach layer layers
    (if (wcmatch layer (strcat "*" parcalque1 "*" parcalque2 "*"))
      (progn
        (setq layerfiltre (cons layer layerfiltre)))
    )
  )

 
  (setq layers (vl-remove-if '(lambda (x) (member x '("0" "Defpoints" "DEFPOINTS" "Ashade" "ASHADE"))) layerfiltre))


  (setq layers (vl-sort layers '<))

(foreach layer layers
  (setq test33 layer)
    (prompt (strcat "\nCALQUE : " layer))
  )


 
  (if (or (= actioncalque "ac") (= actioncalque "AC"))
    (command-s "-calque" "actif" (strcat "*" parcalque1 "*" parcalque2 "*") "")
  )
  (if (or (= actioncalque "in") (= actioncalque "IN"))
    (command-s "-calque" "inactif" (strcat "*" parcalque1 "*" parcalque2 "*") "")
  )
  (if (or (= actioncalque "g") (= actioncalque "G"))
    (command-s "-calque" "geler" (strcat "*" parcalque1 "*" parcalque2 "*") "")
  )
  (if (or (= actioncalque "l") (= actioncalque "L"))
    (command-s "-calque" "liberer" (strcat "*" parcalque1 "*" parcalque2 "*") "")
  )
  (if (or (= actioncalque "v") (= actioncalque "V"))
    (command-s "-calque" "V" (strcat "*" parcalque1 "*" parcalque2 "*") "")
  )
  (if (or (= actioncalque "d") (= actioncalque "D"))
    (command-s "-calque" "D" (strcat "*" parcalque1 "*" parcalque2 "*") "")
  )
  (if (or (= actioncalque "t") (= actioncalque "T"))
    (command-s "-calque" "T" "T" (strcat "*" parcalque1 "*" parcalque2 "*") "")
  )
  (if (or (= actioncalque "int") (= actioncalque "INT"))
    (command-s "-calque" "T" "A" (strcat "*" parcalque1 "*" parcalque2 "*") "")
  )
  (if (or (= actioncalque "li") (= actioncalque "LI"))
    (command-s "-calque" "?" (strcat "*" parcalque1 "*" parcalque2 "*") "")
  )
  (if (or (= actioncalque "co") (= actioncalque "CO"))
    (progn (setq couleurnew (acad_colordlg 1))
           (command-s "-calque" "co" couleurnew (strcat "*" parcalque1 "*" parcalque2 "*") "")
    )
  )

(if (or (= actioncalque "av") (= actioncalque "AV"))
  (foreach layer layers
    (setq obj (ssget "X" (list (cons 8 layer))))
    (command-s "DRAWORDER" obj "" "AV")
  )
)

 
(if (or (= actioncalque "ar") (= actioncalque "AR"))
  (foreach layer layers
    (setq obj (ssget "X" (list (cons 8 layer))))
    (command-s "DRAWORDER" obj "" "AR")
  )
)
 (princ)
)

 

 

 

 

 

FREELANCE

Autodesk Architecture 2025 sous windows 11 64

REVIT

24 pouces vertical + 30 pouces horizontal + 27 pouces horizontal

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é