PHILPHIL Posté(e) le 22 janvier 2023 Posté(e) le 22 janvier 2023 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
(gile) Posté(e) le 23 janvier 2023 Posté(e) le 23 janvier 2023 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
PHILPHIL Posté(e) le 23 janvier 2023 Auteur Posté(e) le 23 janvier 2023 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
Messages recommandés
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 compteSe connecter
Vous avez déjà un compte ? Connectez-vous ici.
Connectez-vous maintenant