Aller au contenu

gc-vpfreeze de Gile


Messages recommandés

Posté(e)

hello Gile

j'ai un lisp ou j'utilise ta fonction "gc-vpfreeze"  avec le DLL "LispExtension_2013.dll"  ( qui date de 05/06/2018 )

j'ai une liste de calque ( listisoannocote )

mon lisp  permet de choisir des fenetres dans les espaces papier, en fonction de leurs ENAME et echelle

je crais une liste "listesous" en focntion de l'échelle de la fenetre que je soustrais a "listisoannocote" qui donne "listecalque"

puis j'applique "gc-vpfreeze" a la VIEWPORT avec la liste "listecalque"

pour chaque fenetres sélectionner.

et rien ne se passe

pourtant en faisant un "DXFL" sur la fenetre j'ai ca

j'en conclus que les (331 . <Nom d'entité: 12870e14e20>) ... signifie qu'un calque <Nom d'entité: 12870e14e20>  est gelé dans la fenetre.

ai je tort ?

et quand je désactive  active la fenetre ca devient normal.

est ce que apres le "gc-vpfreeze"  il y a une fonction a utilisé sur LA fenetre ?

ou forcer ViewportOn = 0   ViewportOn = -1 de la fenetre pour voir les modifications.

 

merci

 

Phil

 

Commande: DXFL

[Entité/Sous-entité]< E >:

Sélectionnez un objet:
(-1 . <Nom d'entité: 12816c58730>)
(0 . "VIEWPORT")
(5 . "AE5B")
(102 . "{ACAD_XDICTIONARY")
(360 . <Nom d'entité: 12816c58740>)
(102 . "}")
(330 . <Nom d'entité: 12816c586d0>)
(100 . "AcDbEntity")
(67 . 1)
(410 . "A4H PM 1-X PL002-")
(8 . "T_FENETRE")
(100 . "AcDbViewport")
(10 -148.5 117.0 0.0)
(40 . 291.0)
(41 . 180.0)
(68 . 2)
(69 . 2)
(12 -814.971 -689.106 0.0)
(13 0.0 0.0 0.0)
(14 10.0 10.0 0.0)
(15 10.0 10.0 0.0)
(16 0.0 0.0 1.0)
(17 1222.97 1283.11 28.0774)
(42 . 50.0)
(43 . -28.0774)
(44 . -28.0774)
(45 . 180.0)
(50 . 0.0)
(51 . 0.0)
(72 . 1000)
(331 . <Nom d'entité: 128654b02e0>)
(331 . <Nom d'entité: 128654b0320>)
(331 . <Nom d'entité: 128654b03a0>)
(331 . <Nom d'entité: 128654b03e0>)
(331 . <Nom d'entité: 128654b0480>)
(331 . <Nom d'entité: 1286b6979e0>)
(331 . <Nom d'entité: 1286b697aa0>)
(331 . <Nom d'entité: 1286b697b50>)
(331 . <Nom d'entité: 1286b697b60>)
(331 . <Nom d'entité: 1286b697b70>)
(331 . <Nom d'entité: 1286b697b80>)
(331 . <Nom d'entité: 1286b697b90>)
(331 . <Nom d'entité: 1286b697ba0>)
(331 . <Nom d'entité: 1286b697bb0>)
(331 . <Nom d'entité: 1286b697bd0>)
(331 . <Nom d'entité: 1286b697be0>)
(331 . <Nom d'entité: 1286b697bf0>)
(331 . <Nom d'entité: 1286b697c00>)
(331 . <Nom d'entité: 1286b697c10>)
(331 . <Nom d'entité: 1286b697c20>)
(331 . <Nom d'entité: 1286b697c30>)
(331 . <Nom d'entité: 1286b697c40>)
(331 . <Nom d'entité: 1286b697c50>)
(331 . <Nom d'entité: 1286b697c60>)
(331 . <Nom d'entité: 1286b697c70>)
(331 . <Nom d'entité: 1286b697c80>)
(331 . <Nom d'entité: 1286b697c90>)
(331 . <Nom d'entité: 1286b697ca0>)
(331 . <Nom d'entité: 1286b697cb0>)
(331 . <Nom d'entité: 1286b697cc0>)
(331 . <Nom d'entité: 1286b697cd0>)
(331 . <Nom d'entité: 1286b697ce0>)
(331 . <Nom d'entité: 1286b697cf0>)
(331 . <Nom d'entité: 1286b697d00>)
(331 . <Nom d'entité: 1286b697d10>)
(331 . <Nom d'entité: 1286b697d20>)
(331 . <Nom d'entité: 1286b697d30>)
(331 . <Nom d'entité: 1286b697d40>)
(331 . <Nom d'entité: 1286b697d50>)
(331 . <Nom d'entité: 1286b697d60>)
(331 . <Nom d'entité: 1286b697d70>)
(331 . <Nom d'entité: 1286b697d80>)
(331 . <Nom d'entité: 1286b697d90>)
(331 . <Nom d'entité: 1286b697da0>)
(331 . <Nom d'entité: 1286b697db0>)
(331 . <Nom d'entité: 1286b697dc0>)
(331 . <Nom d'entité: 1286b697dd0>)
(331 . <Nom d'entité: 1286b697de0>)
(331 . <Nom d'entité: 1286b697df0>)
(331 . <Nom d'entité: 1286b697e00>)
(331 . <Nom d'entité: 1286b697e20>)
(331 . <Nom d'entité: 1286b697e30>)
(331 . <Nom d'entité: 1286b697e40>)
(331 . <Nom d'entité: 1286b697e50>)
(331 . <Nom d'entité: 1286f8bd040>)
(331 . <Nom d'entité: 128700ce820>)
(331 . <Nom d'entité: 128700ce830>)
(331 . <Nom d'entité: 128700ce840>)
(331 . <Nom d'entité: 128700ce850>)
(331 . <Nom d'entité: 128700ce880>)
(331 . <Nom d'entité: 128700d2d60>)
(331 . <Nom d'entité: 128700d2d70>)
(331 . <Nom d'entité: 128700d2d90>)
(331 . <Nom d'entité: 128700d2da0>)
(331 . <Nom d'entité: 128700d2db0>)
(331 . <Nom d'entité: 128700d2dc0>)
(331 . <Nom d'entité: 128700d2dd0>)
(331 . <Nom d'entité: 12870e12960>)
(331 . <Nom d'entité: 12870e12980>)
(331 . <Nom d'entité: 12870e12990>)
(331 . <Nom d'entité: 12870e129a0>)
(331 . <Nom d'entité: 12870e129b0>)
(331 . <Nom d'entité: 12870e129c0>)
(331 . <Nom d'entité: 12870e129d0>)
(331 . <Nom d'entité: 12870e14df0>)
(331 . <Nom d'entité: 12870e14e20>)
(90 . 835648)
(1 . "")
(281 . 0)
(71 . 1)
(74 . 0)
(110 -10000.0 2000.0 0.0)
(111 1.0 -7.27596e-17 0.0)
(112 7.27596e-17 1.0 0.0)
(79 . 0)
(146 . 0.0)
(170 . 0)
(61 . 5)
(348 . <Nom d'entité: 128712f7af0>)
(292 . 1)
(282 . 1)
(141 . 0.0)
(142 . 0.0)
(63 . 250)
(421 . 3355443)

 

 


 

(defun c:gele_calque_echelle_annotation_isolation_cote_dans_fenetres (/
                                                                      cav         com         comlistefen compt       ech1        echl1       echl10      id_fen      li1
                                                                      listecalque listefen    listesous   listisoannocote         listobj     lists1      listtest    listtest2   obj
                                                                      pre_name    selectfen   viewport    viewport1
                                                                     )
  (setq cav (getvar "clayer"))
  (command-s "-calque" "ch" "0" "")
  (setq selectfen       nil
        listefen        nil
        listobj         nil
        lists1          nil
        compt           0
        listtest        nil
        listtest2       nil
        listesous       nil
        listisoannocote (list "H_ISOLATION 1"                 "H_ISOLATION 2"                 "H_ISOLATION 2.5"               "H_ISOLATION 5"                 "H_ISOLATION 10"
                              "H_ISOLATION 20"                "H_ISOLATION 25"                "H_ISOLATION 50"                "H_ISOLATION 100"               "H_ISOLATION 500"
                              "H_TEXTE ANNOTATION 1"          "H_TEXTE ANNOTATION 2"          "H_TEXTE ANNOTATION 2.5"        "H_TEXTE ANNOTATION 5"          "H_TEXTE ANNOTATION 10"
                              "H_TEXTE ANNOTATION 20"         "H_TEXTE ANNOTATION 25"         "H_TEXTE ANNOTATION 50"         "H_TEXTE ANNOTATION 100"        "H_TEXTE ANNOTATION 200"
                              "H_TEXTE ANNOTATION 250"        "H_TEXTE ANNOTATION 500"
                              "H_COTE 1"                      "H_COTE 2"                      "H_COTE 2.5"
                              "H_COTE 5"                      "H_COTE 10"                     "H_COTE 20"                     "H_COTE 25"                     "H_COTE METAL 1"
                              "H_COTE METAL 2"                "H_COTE METAL 2.5"              "H_COTE METAL 5"                "H_COTE METAL 10"               "H_COTE METAL 20"
                              "H_COTE METAL 25"               "H_COTE INTERIEURE 20"          "H_COTE EXTERIEURE 20"          "H_COTE INTERIEURE 25"          "H_COTE EXTERIEURE 25"
                              "H_COTE INTERIEURE 50"          "H_COTE INTERIEURE PROCESS 50"  "H_COTE EXTERIEURE 50"          "H_COTE EXTERIEURE PROCESS 50"  "H_COTE FONDATION 50"
                              "H_COTE INTERIEURE VENTE 50"    "H_COTE EXTERIEURE VENTE 50"    "H_COTE INTERIEURE 100"         "H_COTE INTERIEURE PROCESS 100" "H_COTE EXTERIEURE 100"
                              "H_COTE EXTERIEURE PROCESS 100" "H_COTE FONDATION 100"          "H_COTE INTERIEURE VENTE 100"   "H_COTE EXTERIEURE VENTE 100"   "H_COTE INTERIEURE 200"
                              "H_COTE EXTERIEURE 200"         "H_COTE FONDATION 200"          "H_COTE INTERIEURE 250"         "H_COTE EXTERIEURE 250"         "H_COTE INTERIEURE 500"
                              "H_COTE EXTERIEURE 500"         "H_COTE INTERIEURE STRUCTURE 20"                                "H_COTE EXTERIEURE STRUCTURE 20"
                              "H_COTE INTERIEURE STRUCTURE 25"                                "H_COTE EXTERIEURE STRUCTURE 25"                                "H_COTE INTERIEURE STRUCTURE 50"
                              "H_COTE EXTERIEURE STRUCTURE 50"                                "H_COTE INTERIEURE STRUCTURE 100"                               "H_COTE EXTERIEURE STRUCTURE 100"
                              "H_COTE INTERIEURE STRUCTURE 200"                               "H_COTE EXTERIEURE STRUCTURE 200"                               "H_COTE INTERIEURE STRUCTURE 250"
                              "H_COTE EXTERIEURE STRUCTURE 250"                               "H_COTE AXE 1"                  "H_COTE AXE 2"                  "H_COTE AXE 2.5"
                              "H_COTE AXE 5"                  "H_COTE AXE 10"                 "H_COTE AXE 20"                 "H_COTE AXE 25"                 "H_COTE AXE 50"
                              "H_COTE AXE 100"                "H_COTE AXE 200"                "H_COTE AXE 250"                "H_COTE AXE 500"                "H_COTE NIVEAU 1"
                              "H_COTE NIVEAU 2"               "H_COTE NIVEAU 2.5"             "H_COTE NIVEAU 5"               "H_COTE NIVEAU 10"              "H_COTE NIVEAU 20"
                              "H_COTE NIVEAU 25"              "H_COTE NIVEAU 50"              "H_COTE NIVEAU 100"             "H_COTE NIVEAU 200"             "H_COTE NIVEAU 250"
                              "H_COTE NIVEAU 500"
                             )
;;;        listiso   (list "H_ISOLATION 1" "H_ISOLATION 2" "H_ISOLATION 2.5" "H_ISOLATION 5" "H_ISOLATION 10" "H_ISOLATION 20" "H_ISOLATION 25" "H_ISOLATION 50" "H_ISOLATION 100" "H_ISOLATION 500")
;;;        listanno  (list "H_TEXTE ANNOTATION 1"            "H_TEXTE ANNOTATION 2"            "H_TEXTE ANNOTATION 2.5"          "H_TEXTE ANNOTATION 5"            "H_TEXTE ANNOTATION 10"
;;;                        "H_TEXTE ANNOTATION 20"           "H_TEXTE ANNOTATION 25"           "H_TEXTE ANNOTATION 50"           "H_TEXTE ANNOTATION 100"          "H_TEXTE ANNOTATION 200"
;;;                        "H_TEXTE ANNOTATION 250"          "H_TEXTE ANNOTATION 500"
;;;                       )
;;;        listcote  (list "H_COTE 1"                       "H_COTE 2"                       "H_COTE 2.5"                     "H_COTE 5"                       "H_COTE 10"
;;;                        "H_COTE 20"                      "H_COTE 25"                      "H_COTE METAL 1"                 "H_COTE METAL 2"                 "H_COTE METAL 2.5"
;;;                        "H_COTE METAL 5"                 "H_COTE METAL 10"                "H_COTE METAL 20"                "H_COTE METAL 25"                "H_COTE INTERIEURE 20"
;;;                        "H_COTE EXTERIEURE 20"           "H_COTE INTERIEURE 25"           "H_COTE EXTERIEURE 25"           "H_COTE INTERIEURE 50"           "H_COTE INTERIEURE PROCESS 50"
;;;                        "H_COTE EXTERIEURE 50"           "H_COTE EXTERIEURE PROCESS 50"   "H_COTE FONDATION 50"            "H_COTE INTERIEURE VENTE 50"     "H_COTE EXTERIEURE VENTE 50"
;;;                        "H_COTE INTERIEURE 100"          "H_COTE INTERIEURE PROCESS 100"  "H_COTE EXTERIEURE 100"          "H_COTE EXTERIEURE PROCESS 100"  "H_COTE FONDATION 100"
;;;                        "H_COTE INTERIEURE VENTE 100"    "H_COTE EXTERIEURE VENTE 100"    "H_COTE INTERIEURE 200"          "H_COTE EXTERIEURE 200"          "H_COTE FONDATION 200"
;;;                        "H_COTE INTERIEURE 250"          "H_COTE EXTERIEURE 250"          "H_COTE INTERIEURE 500"          "H_COTE EXTERIEURE 500"          "H_COTE INTERIEURE STRUCTURE 20"
;;;                        "H_COTE EXTERIEURE STRUCTURE 20" "H_COTE INTERIEURE STRUCTURE 25" "H_COTE EXTERIEURE STRUCTURE 25" "H_COTE INTERIEURE STRUCTURE 50" "H_COTE EXTERIEURE STRUCTURE 50"
;;;                        "H_COTE INTERIEURE STRUCTURE 100"                                 "H_COTE EXTERIEURE STRUCTURE 100"                                 "H_COTE INTERIEURE STRUCTURE 200"
;;;                        "H_COTE EXTERIEURE STRUCTURE 200"                                 "H_COTE INTERIEURE STRUCTURE 250"                                 "H_COTE EXTERIEURE STRUCTURE 250"
;;;                        "H_COTE AXE 1"                   "H_COTE AXE 2"                   "H_COTE AXE 2.5"                 "H_COTE AXE 5"                   "H_COTE AXE 10"
;;;                        "H_COTE AXE 20"                  "H_COTE AXE 25"                  "H_COTE AXE 50"                  "H_COTE AXE 100"                 "H_COTE AXE 200"
;;;                        "H_COTE AXE 250"                 "H_COTE AXE 500"                 "H_COTE NIVEAU 1"                "H_COTE NIVEAU 2"                "H_COTE NIVEAU 2.5"
;;;                        "H_COTE NIVEAU 5"                "H_COTE NIVEAU 10"               "H_COTE NIVEAU 20"               "H_COTE NIVEAU 25"               "H_COTE NIVEAU 50"
;;;                        "H_COTE NIVEAU 100"              "H_COTE NIVEAU 200"              "H_COTE NIVEAU 250"              "H_COTE NIVEAU 500"
;;;                       )
  )
  (setq selectfen (ssget "X" '((0 . "VIEWPORT") (-4 . "<NOT") (69 . 1) (-4 . "NOT>"))))
  (setq com (sslength selectfen))
  (while (< compt com)
    (progn (setq obj      (ssname selectfen compt)
                 listobj  (cons obj listobj)
                 pre_name (cdr (assoc 410 (entget obj)))
                 id_fen   (cdr (assoc 69 (entget obj)))
                 echl1    (vla-get-customscale (vlax-ename->vla-object (cdr (assoc -1 (entget obj)))))
                 li1      (strcat pre_name
                                  "  /  "
                                  (rtos id_fen 2 0)
                                  "  /  "
                                  " 1/"
                                  (rtos (/ 10 echl1) 2 0)
                                  " [ "
                                  (rtos echl1 2 4)
                                  " ]"
                                  " "
                          )
           )
           (setq listefen (cons li1 listefen))
    )
    (setq compt (1+ compt))
  )
  (setq viewport1 (getlviewport1 listefen "CHOSISSEZ LES FENETRES A MODIFIER" t))
  (setq comlistefen (length listefen))
  (foreach ele viewport1
    (progn (setq lists1 (cons (- comlistefen (length (member ele listefen))) lists1)))
  )
;;;  (setq listobj (reverse listobj))
  (setq lists1 (reverse lists1))
  (foreach l1 lists1
    (progn (setq viewport    (nth l1 listobj)
                 ech1        (/ 10 (vla-get-customscale (vlax-ename->vla-object (cdr (assoc -1 (entget viewport))))))
                 listecalque nil
                 listesous   nil
           )
;;;           (setq listtest2 (cons (list l1 viewport ech1) listtest2))
;;;           (gc-vpfreeze viewport listiso)
;;;           (gc-vpfreeze viewport listanno)
;;;           (gc-vpfreeze viewport listcote)
           (if (= ech1 2.5)
             (setq echl10 (rtos ech1 2 1))
             (setq echl10 (rtos ech1 2 0))
           )


      
;;;           (cond

             (if(/= (tblsearch "layer" (strcat "H_ISOLATION " echl10)) nil)
                  (setq listesous (cons (strcat "H_ISOLATION " echl10) listesous))
                 )
                 (if(/= (tblsearch "layer" (strcat "H_TEXTE ANNOTATION " echl10)) nil)
                  (setq listesous (cons (strcat "H_TEXTE ANNOTATION " echl10) listesous))
                 )
                 (if(/= (tblsearch "layer" (strcat "H_COTE " echl10)) nil)
                  (setq listesous (cons (strcat "H_COTE " echl10) listesous))
                 )
                 (if(/= (tblsearch "layer" (strcat "H_COTE METAL " echl10)) nil)
                  (setq listesous (cons (strcat "H_COTE METAL " echl10) listesous))
                 )
                 (if(/= (tblsearch "layer" (strcat "H_COTE INTERIEURE " echl10)) nil)
                  (setq listesous (cons (strcat "H_COTE INTERIEURE " echl10) listesous))
                 )
                 (if(/= (tblsearch "layer" (strcat "H_COTE EXTERIEURE " echl10)) nil)
                  (setq listesous (cons (strcat "H_COTE EXTERIEURE " echl10) listesous))
                 )
                 (if(/= (tblsearch "layer" (strcat "H_COTE INTERIEURE VENTE " echl10)) nil)
                  (setq listesous (cons (strcat "H_COTE INTERIEURE VENTE " echl10) listesous))
                 )
                 (if(/= (tblsearch "layer" (strcat "H_COTE EXTERIEURE VENTE " echl10)) nil)
                  (setq listesous (cons (strcat "H_COTE EXTERIEURE VENTE " echl10) listesous))
                 )
                 (if(/= (tblsearch "layer" (strcat "H_COTE INTERIEURE PROCESS " echl10)) nil)
                  (setq listesous (cons (strcat "H_COTE INTERIEURE PROCESS " echl10) listesous))
                 )
                 (if(/= (tblsearch "layer" (strcat "H_COTE EXTERIEURE PROCESS " echl10)) nil)
                  (setq listesous (cons (strcat "H_COTE EXTERIEURE PROCESS " echl10) listesous))
                 )
                 (if(/= (tblsearch "layer" (strcat "H_COTE INTERIEURE STRUCTURE " echl10)) nil)
                  (setq listesous (cons (strcat "H_COTE INTERIEURE STRUCTURE " echl10) listesous))
                 )
                 (if(/= (tblsearch "layer" (strcat "H_COTE EXTERIEURE STRUCTURE " echl10)) nil)
                  (setq listesous (cons (strcat "H_COTE EXTERIEURE STRUCTURE " echl10) listesous))
                 )
                 (if(/= (tblsearch "layer" (strcat "H_COTE AXE " echl10)) nil)
                  (setq listesous (cons (strcat "H_COTE AXE " echl10) listesous))
                 )
                 (if(/= (tblsearch "layer" (strcat "H_COTE NIVEAU " echl10)) nil)
                  (setq listesous (cons (strcat "H_COTE NIVEAU " echl10) listesous))
                 )
;;;           )
           (setq listecalque (vl-remove-if '(lambda (x) (member x listesous)) listisoannocote))

;;;(gc-vpfreeze viewport '("H_ISOLATION 1"                 "H_ISOLATION 2"            ))
      (gc-vpfreeze viewport listecalque)
;;;           (setq listtest (cons (list viewport echl10) listtest))
    )
  )
  (setvar "clayer" cav)
  (princ)
)

 

FREELANCE

Autodesk Architecture 2025 sous windows 11 64

REVIT

24 pouces vertical + 30 pouces horizontal + 27 pouces horizontal

Posté(e)

Salut,

Ce n'est pas spécifique à gc-vpFreeze.

Si la variable système LayoutRegenCtl est à 2 les présentation ne sont pas régénérées donc les modification apportées aux fenêtres flottantes par programmation (sans activer la présentation) ne s'affichent pas.

Donc, soit tu travailles avec LAYOUTREGENCTL à 0 ; soit tu actives chaque présentation pour y modifier les fenêtres comme ci-dessous :

(setq ctab (getvar "ctab"))
(foreach layout	(layoutlist)
  (setvar "ctab" layout)
  (if (setq ss (ssget "_X"
		      (list (cons 0 "VIEWPORT")
			    (cons 410 layout)
			    (cons -4 "<NOT")
			    (cons 69 1)
			    (cons -4 "NOT>")
		      )
	       )
      )
    (repeat (setq i (sslength ss))
      (setq vp (ssname ss (setq i (1- i))))
      (gc-vpfreeze vp listecalque)
    )
  )
)
(setvar "ctab" ctab)

 

Gilles Chanteau - gileCAD - GitHub
Développements sur mesure pour AutoCAD

Posté(e)

Hello Gile

grand merci,

je ne connaissais pas ce parametre  LAYOUTREGENCTL,  au bout de 25 ans j'ai pas encore fouillé tout autocad donc. 

ca marche.

Phil

FREELANCE

Autodesk Architecture 2025 sous windows 11 64

REVIT

24 pouces vertical + 30 pouces horizontal + 27 pouces horizontal

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é