PATRICE69 Posté(e) le 29 avril 2024 Posté(e) le 29 avril 2024 Bonsoir, En LISP, je cherche à lister les calques imprimables ou non imprimable ? Avez-vous cela en stock ? Merci Patrice
(gile) Posté(e) le 30 avril 2024 Posté(e) le 30 avril 2024 Salut, Tu peux savoir si un calque est imprimable avec le groupe DXF 290 ou la propriété IsPlottable (1 = imprimable, 0 = non-imprimable). ((lambda (/ layer name lst) (while (setq layer (tblnext "layer" (not layer))) (setq name (cdr (assoc 2 layer)) lst (cons (cons name (cdr (assoc 290 (entget (tblobjname "layer" name)))) ) lst ) ) ) (reverse lst) ) ) ((lambda (/ layer name lst) (while (setq layer (tblnext "layer" (not layer))) (setq name (cdr (assoc 2 layer)) lst (cons (cons name (getpropertyvalue (tblobjname "layer" name) "IsPlottable") ) lst ) ) ) (reverse lst) ) ) Gilles Chanteau - gileCAD - GitHub Développements sur mesure pour AutoCAD
Luna Posté(e) le 30 avril 2024 Posté(e) le 30 avril 2024 Coucou, Par simple complémentarité avec la réponse de (gile), tu peux également utiliser le Visual LISP avec la propriété "Plottable" : ((lambda (/ layers layer lst) (setq layers (vla-get-Layers (vla-get-ActiveDocument (vlax-get-acad-object)))) (vlax-for layer layers (setq lst (cons (cons (vlax-get layer "Name") (vlax-get layer "Plottable")) lst ) ) ) (reverse lst) )) Dans ce 1er cas de figure tu obtiendras un résultat du genre : (("0" . -1) ("Calque1" . -1) ("Calque2" . 0)) Avec : Citation Plottable = -1 → Calque imprimable Plottable = 0 → Calque non imprimable Tu peux également utiliser la forme contractée des fonctions (vlax-get), mais attention car le résultat est différent du premier : ((lambda (/ layers layer lst) (setq layers (vla-get-Layers (vla-get-ActiveDocument (vlax-get-acad-object)))) (vlax-for layer layers (setq lst (cons (cons (vla-get-Name layer) (vla-get-Plottable layer)) lst ) ) ) (reverse lst) )) Dans ce 2nd cas de figure tu auras plutôt ce résultat : (("0" . :vlax-true) ("Calque1" . :vlax-true) ("Calque2" . :vlax-false)) Soit : Citation Plottable = :vlax-true → Calque imprimable Plottable = :vlax-false → Calque non imprimable Donc cela ne change rien pour le nom des calques évidemment mais en revanche, les résultats imprimable/non imprimable est impacté 🙂 Bisous, Luna
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