(gile) Posté(e) le 17 novembre 2023 Auteur Posté(e) le 17 novembre 2023 Salut, Le dictionnaire "ACAD_LAYERFILTERS" n'est pas dans le dictionnaire des objets nommés (namedobjdict) il est (s'il y a bien des filtres de calque) dans le dictionnaire d'extension de la table des calques (LayerTable). PS: gc:DictDataList est une fonction aujourd'hui inutile qui était censée agir comme vlax-ldata-list. 1 Gilles Chanteau - gileCAD - GitHub Développements sur mesure pour AutoCAD
PHILPHIL Posté(e) le 17 novembre 2023 Posté(e) le 17 novembre 2023 hello Gile merci. mais j'ai beau chercher, et lu toutes tes explications dans les posts précédents, je trouve pas comment en LISp, Visual lisp accéder a ce dictionnaire. quelle fonction faut il utiliser ? comment récupérer les propriétés de la table "layers" pour avoir le nom du dictionnaire d'extension ( le ENAME si j'ai bien compris ) pour en faire la liste dedans merci Phil FREELANCE Autodesk Architecture 2025 sous windows 11 64 REVIT 24 pouces vertical + 30 pouces horizontal + 27 pouces horizontal
(gile) Posté(e) le 17 novembre 2023 Auteur Posté(e) le 17 novembre 2023 Dans le premier message de ce sujet : ;; gc:GetExtDict (gile) ;; Retourne le dictionnaire d'extension de l'entité (ou nil) ;; ;; Argument : ent (ENAME) (defun gc:GetExtDict (ent) (cdadr (member '(102 . "{ACAD_XDICTIONARY") (entget ent))) ) et ;; gc:GetDictEntries ;; Retourne la liste des entrées du dictionnaire ;; sous forme de paires pointées (key . ename) ;; ;; Argument : dict le dictionnaire (ENAME ou liste DXF) (defun gc:GetDictEntries (dict / result) (and (= (type dict) 'ENAME) (setq dict (entget dict))) (while (setq dict (vl-member-if (function (lambda (x) (= (car x) 3))) (cdr dict))) (setq result (cons (cons (cdar dict) (cdadr dict)) result)) ) (reverse result) ) Ensuite, il suffit de faire: (and ;; ename de la table des calques (setq layerTable (cdr (assoc 330 (entget (tblobjname "layer" "0"))))) ;; ename du dictionnaire d'extension (setq xdict (gc:GetExtDict layerTable)) ;; données DXF du dictionnaire "ACAD_LAYERFILTERS" (setq filterDict (dictsearch xdict "ACAD_LAYERFILTERS")) ;; liste des entrées (setq filters (gc:GetDictEntries filterDict)) ) Gilles Chanteau - gileCAD - GitHub Développements sur mesure pour AutoCAD
PHILPHIL Posté(e) le 17 novembre 2023 Posté(e) le 17 novembre 2023 hello Gile GRAND MERCI 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